Linux笔记之身份与权限3:文件的特殊权限

来源:互联网 发布:ubuntu sys time.h 编辑:程序博客网 时间:2024/06/16 19:59

权限除了rwx外还有其他的特殊权限

PART_1:SUID

SUID:让执行者临时拥有属主的权限(只对拥有执行权限的二进制程序有效)

例:所有用户都可以通过passwd命令来修改自己的密码,但密码保存在了/etc/shadow文件里,而文件的默认权限是000,也就是除了属主root外其他用户没有任何对该文件操作的权限,但如果对passwd命令加上SUID权限位,那么就可以让普通用户临时获得程序所有者root的身份来更改密码信息到shadow文件里了,可以看到:

[root@okaka Desktop]# ls -l /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27832 Jan 30  2014 /usr/bin/passwd

里面的s权限就是SUID了

SetGID针对文件

1.    只有可执行文件才能设置SGID权限

2.    命令执行者要对该文件拥有x权限

3.    命令在执行时,组身份升级为该文件的所属组

4.    SetGID权限与SetUID一样,只在文件(程序)执行过程中有效


举例mlocate 命令

mlocate命令通过查找/var/lib/mlocate/mlocate.db文件中的缓存数据来查找文件位置,但是可以看出,/var/lib/mlocate/mlocate.db文件的other权限是---,普通用户没有rwx权限

bl@ubuntumma:~$ ls -l /usr/bin/mlocate

-rwxr-sr-x 1 root mlocate 39520 Jun 20  2013 /usr/bin/mlocate

 

bl@ubuntumma:~$ ls -l /var/lib/mlocate/mlocate.db

-rw-r----- 1 root mlocate 1889860 Aug 26 06:34 /var/lib/mlocate/mlocate.db

普通用户bl执行mlocate时,会得到mlocate文件的组权限,也就是说bl临时变成了mlocate文件所属组(mlocate组)的成员,而/var/lib/mlocate/mlocate.db文件的所属组也是mlocate组,并且/var/lib/mlocate/mlocate.db组权限是r--,也就是mlocate组的成员都可以查看/var/lib/mlocate/mlocate.db文件。这样,普通用户bl就可以通过mlocate命令查看/var/lib/mlocate/mlocate.db文件鸟。



PART_2:SGID

和SUID类似,SGID是让执行者临时拥有所属组的权限(只对拥有执行权限的二进制程序有效)


SetGID针对目录

1. 普通用户bl需要拥有目录 testDir/的rx权限

2. bl在testDir/中的有效组会变成testDir/目录的所属组(testGroup)

3. bl在testDir/中新建文件的默认组都会属于testGroup,而不是bl的所属组

SetGID基本没鸟用,不用,不用

设置SetGID

2代表SGID

chmod 2755 文件名

chmod g+s 文件名



原创粉丝点击