感谢支持
我们一直在努力

Linux文件的特殊权限

对于Linux的文件权限,除了常用的【读r 写w 执行x】外还有强制位与冒险位的特殊权限。


=============================================文章一:


—————————-
强制位:uid,gid;主要用于文件及目录
冒险位:sticky 只用于目录,多数是共享目录.
目录也是文件,严格意思上讲文件应该有四组权限(12位)
强制/冒险 | 宿主 | 组 | 其它
===========================================
sst rwx rwx rwx



强制位:使普通用户也能使用超级用户的命令(相当于尚方宝剑)
用于文件的:
[root@clone bin]# find / -perm 4555
/usr/sbin/sendmail
/sbin/pwdb_chkpwd
/sbin/unix_chkpwd
[root@clone bin]# ls -l /usr/sbin/sendmail
-r-sr-xr-x 1 root root 452204 Sep 17 2003 /usr/sbin/sendmail
用于组的:
[root@clone bin]# find / -perm 2555
/usr/bin/wall
[root@clone bin]# ls -l /usr/bin/wall
-r-xr-sr-x 1 root tty 6444 Aug 29 2001 /usr/bin/wall
冒险位:防止用户删除其它用户资料(自己的资料自己删除,超级用户除外)
[root@clone bin]# ls -l /
drwxrwxrwt 10 root root 4096 Oct 18 14:27 tmp
注:
S:表示该位没有x位;
s: 表示该位有x位
T:表示该位没有x位;
t: 表示该位有x位

设置s u i d /    g u i d
命令                           结果                                            含义
chmod 4755            -rwsr-xr-x                 suid、文件属主具有读、写和执行的权限,所有其他用户具有读和执行的权限
chmod 6711            -rws–s–x                 suid、sgid、文件属主具有读、写和执行的权限,所有其他用户具有执行的权限
chmod 4511            -rwS–x—x               suid、文件属主具有读、写的权限,所有其他用户具有执行的权限
上面的表中有具有这样权限的文件:rwS –x — x,其中S为大写。它表示相应的执行权限位并未被设置,这是一种没有什么用处的suid设置可以忽略它的存在。
注意,chmod命令不进行必要的完整性检查,可以给某一个没用的文件赋予任何权限,但 chmod 命令并不会对所设置的权限组合做什么检查。因此,不要看到一个文件具有执行权限,就认为它一定是一个程序或脚本。

用户可以用chmod指令来为文件设置强制位与冒险位。
set uid:chmod u+s 文件名
set gid:chmod g+s 文件名
sticky:chmod o+t 文件名
强制位与冒险位也可以通过一个数字加和,放在读写执行的三位数字前来指定。
4(set uid)
2(set gid)
1(sticky)

=============================================文章二:


目录也是一种文件 []


目录上的读写执行权限与普通文件有所不同:


读:用户可以读取目录内的文件


写:单独使用没有作用。与执行权限连用可以在目录内添加与删除文件。


执行:用户可以进入目录,调用目录内的资料


*** 除了读写执行权限以外,ext2,ext3文件系统还支持强制位(setuid 和setgid)与冒险位(sticky)的特别权限。


*** 针对u,g,o,分别有set uid,set gid,及sticky。


*** 强制位与冒险位添加在执行权限的位置上。


如果该位置上原已有执行权限。则强制位与冒险位以小写字母的方式表示,否则,以大写字母表示。


*** set uid与set gid在u和g的x位置上各采用一个s,sticky使用一个t。


***


*** 默认情况下,用户建立的文件属于用户当前所在的组。


*** 目录上设置了setgid,表示在此目录中,任何人建立的文件,都会属于目录所属的组。


***


*** 默认情况下,如果一个目录上有w和x权限,则任何人可以在此目录中建立与删除文件。


*** 一旦目录上设置了冒险位,则表示在此目录中,只有文件的拥有者、目录的拥有者与系统管理员可以删除文件。


*** 在可执行文件上,用户可以添加set uid和set gid。


*** 默认情况下,用户执行一个指令,会以该用户的身份来运行进程。


*** 指令文件上的强制位,可以让用户执行的指令,以指令文件的拥有者或所属组的身份运行进程。


*** 用户可以用chmod指令来为文件设置强制位与冒险位。


– set uid:chmod u+s 文件名


– set gid:chmod g+s 文件名


– sticky:chmod o+t 文件名


*** 强制位与冒险位也可以通过一个数字加和,放在读写执行的三位数字前来指定。


– 4(set uid)


– 2(set gid)


– 1(sticky)


设置s u i d / g u i d


命令 结果 含义


chmod 4755 -rwsr-xr-x suid、文件属主具有读、写和执行的权限,所有其他用户具有读和执行的权限


chmod 6711 -rws–s–x suid、sgid、文件属主具有读、写和执行的权限,所有其他用户具有执行的权限


chmod 4511 -rwS–x—x suid、文件属主具有读、写的权限,所有其他用户具有执行的权限


上面的表中有具有这样权限的文件:rwS –x — x,其中S为大写。它表示相应的执行权限位并未被设置,这是一种没有什么用处的suid设置可以忽略它的存在。


注意,chmod命令不进行必要的完整性检查,可以给某一个没用的文件赋予任何权限,但 chmod 命令并不会对所设置的权限组合做什么检查。因此,不要看到一个文件具有执行权限,就认为它一定是一个程序或脚本。


关于Linux下粘贴位(sticky位)


要删除一个文件,你不一定要有这个文件的写权限,但你一定要有这个文件的上级目录的写权限。也就是说,你即使没有一个文件的写权限,但你有这个文件的上级目录的写权限,你也可以把这个文件给删除,而如果没有一个目录的写权限,也就不能在这个目录下创建文件。


如何才能使一个目录既可以让任何用户写入文件,又不让用户删除这个目录下他人的文件,sticky就是能起到这个作用。stciky一般只用在目录上,用在文件上起不到什么作用。


在一个目录上设了sticky位后,(如/home,权限为1777)所有的用户都可以在这个目录下创建文件,但只能删除自己创建的文件(root除外),这就对所有用户能写的目录下的用户文件启到了保护的作用。

赞(0) 打赏
转载请注明出处:服务器评测 » Linux文件的特殊权限
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏