日期:2014-05-16  浏览次数:20597 次

Linux中的文件特殊权限

?

linux中除了常见的读(r)、写(w)、执行(x)权限以外,还有3个特殊的权限,分别是suid、sgid和sticky bit

1、suid、sgid

先看个实例,查看你的/usr/bin/passwd 与/etc/passwd文件的权限

?

[root@MyLinux ~]# ls -l /usr/bin/passwd /etc/passwd
-rw-r--r-- 1 root root  1549 08-19 13:54 /etc/passwd
-rwsr-xr-x 1 root root 22984 2007-01-07 /usr/bin/passwd

?

众所周知,/etc/passwd文件存放的各个用户的账号与密码信息,/usr/bin/passwd是执行修改和查看此文件的程序,但从权限上看,/etc/passwd仅有root权限的写(w)权,可实际上每个用户都可以通过/usr/bin/passwd命令去修改这个文件,于是这里就涉及了linux里的特殊权限setuid,正如-rwsr-xr-x中的s

suid就是:让普通用户拥有可以执行“只有root权限才能执行”的特殊权限,sgid同理指”组“

作为普通用户是没有权限修改/etc/passwd文件的,但给/usr/bin/passwd以suid权限后,普通用户就可以通过执行passwd命令,临时的拥有root权限,去修改/etc/passwd文件了

2、sticky bit (粘贴位)

再看个实例,查看你的/tmp目录的权限