标签:info 五个 root fifo 用户 lock 硬链接 常用 ola
对于权限,有点绕,因为文件的权限和目录的权限是有一些区别的。
在Linux中,有5种权限,分别是,r、w、x、s、t。
下面依次讲解权限位:
对于文件,可读权限:
用八进制表示:4
可以对读取文件里的内容
对于目录,可读权限:
对于文件,可写权限:
用八进制表示:2
可以对文件进行更改
对于目录,可写权限:
对于文件,可写权限:
用八进制表示:1
可以执行该文件(脚本或命令)
对于目录,可写权限:
这是一个特殊的权限位,
对于文件,Setuid:
Setuid最常用的是配合执行权限x使用,例如,系统中内置命令passwd,它默认是带有s权限位,passwd命令的主要功能是修改用户的密码,而修改密码的流程是:
/etc/passwd
文件对应的用户条目中。/etc/shadow
文件中。/etc/passwd
和 /etc/shadow
文件在普通用户尝试执行passwd,该passwd的所有者是root并且设置了Suid,因此passwd以root身份执行。
当你查看进程时,你会发现,进程不是普通用户,而是passwd工具的所有者(root)
这是一个特殊的权限位,
对于目录,Setgid:
当一个目录拥有sgid权限时,其他用户在该目录下创建文件或目录后,它会继承目录的id,即创建的文件或目录的属组为父目录的属组。
[root@self data]# mkdir project
[root@self data]# chmod 2777 project/
[root@self data]# ls -lh
total 0
drwxrwsrwx 2 root root 6 Apr 20 23:42 project
[root@self data]# su bob
[bob@self data]$ mkdir project/test_for_bob
[bob@self data]$ ls -lh project/
total 0
drwxrwsr-x 2 bob root 6 Apr 20 23:42 test_for_bob
这是一个特殊的权限位,
对于目录粘滞位:
/tmp
目录就是使用了粘滞位t,其作用是,在该目录下创建文件或目录后,仅允许其作者(所有者)进行删除操作。其他用户无法删除。
例如:lrwxrwxrwx. 1 root root 7 Oct 3 02:33 bin -> usr/bin
第一个字符的含义:
-
:常规文件b
:块特殊文件c
:字符特殊文件C
:高性能(”连续数据“)文件d
:目录D
:门(Solaris 2.5及以上版本)l
:符号链接M
:离线(”前已“)文件(Cray DMF)n
:网络专用文件(HP-UX)p
:FIFO(命名管道)P
:断开(Solaros 10及以上)s
:套接字?
:其他文件第二个字符的含义:
r
:属主的读权限第三个字符的含义:
w
:属主的写权限第四个字符的含义:
x
:属主的执行权限
S
:设置了SUID,没有执行权限s
:设置了SUID,具有执行权限第五个字符的含义:
r
:属组的读权限第六个字符的含义:
w
:属主的写权限第七个字符的含义:
x
:属组执行权限
S
:设置了SGID,没有执行权限s
:设置了SGID,具有执行权限第八个字符的含义:
r
:其他人的读权限第九个字符的含义:
w
:其他人的写权限第十个字符的含义:
x
:其他人的执行权限T
:设置了粘滞位,没有执行权限t
:设置了粘滞位,具有执行权限第十一个字符的含义:
.
:没有任何其他替代访问方法的SELinux安全上下文(没有设置ACL)+
:具有任何其他组合访问方法的SELinux安全上下文(设置了ACL)第二十一个字符的含义:链接文件的源文件
umask是一个内置命令。其作用是指定创建的文件或目录的默认权限。
使用方法:umask [-S|-p] [mode]
-S
:打印出字符权限位-p
:打印八进制数权限位(默认)使用不加任何参数的umask会打印出八进制的权限:默认0022
。
例如:手动更改,可使用八进制,也可以使用字符表示
[root@localhost data]# umask
0022
[root@localhost data]# mkdir test_dir
[root@localhost data]# touch test_txt
[root@localhost data]# ls -lh
total 0
drwxr-xr-x 2 root root 6 Apr 21 01:34 test_dir
-rw-r--r-- 1 root root 0 Apr 21 01:34 test_txt
[root@localhost data]# rm -rf *
[root@localhost data]# umask 0777
[root@localhost data]# mkdir test_dir
[root@localhost data]# touch test_txt
[root@localhost data]# ls -lh
total 0
d--------- 2 root root 6 Apr 21 01:37 test_dir
---------- 1 root root 0 Apr 21 01:37 test_txt
注意:尽管你的umask设置为0000,后续创建文件的权限依然是666。出于安全着想,执行权限必须手动添加。所以你会看到,目录权限为777,而文件权限为666
标签:info 五个 root fifo 用户 lock 硬链接 常用 ola
原文地址:https://www.cnblogs.com/liuhedong/p/10739718.html