强制位,冒险位详细实验解析!

setuid(4): 设置使文件在执行阶段具有文件所有者的权限. 典型的文件是 /usr/bin/passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.

  setgid(2): 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组.

  sticky bit(1): 该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件
该位置上原已有执行权限。则强制位与冒险位以小写字母的方式表示,否则,以大写字母表示。
实验:
1.强制位(suid)作用
#ls -l /usr/bin/passwd   
-rwsr-xr-x 1 root root 27768 Jul 17 2006 /usr/bin/passwd
普通用户了root权限,可以进行passwd操作,这是默认的
#chmod 766 /usr/bin/passwd
-rwxrw-rw- 1 root root 27768 Jul 17 2006 /usr/bin/passwd
#su student
#passwd

bash: /usr/bin/passwd: Permission denied
#chmod 4766 /usr/bin/passwd     ----恢复正常
实验二:sgid作用(设置在目录上)
实验环境:student用户新建一个目录test,并加上sgid位
# mkdir /tmp/test    (因为根目录 / 下只有/tmp目录有w权限!)
#ls -l /tmp/test
#drwxr-xr-x 2 student Student 4096 Oct 29 13:01 test
#chmod 2755 test
#ls -l /tmp/test
#drwxr-sr-x 2 student Student 4096 Oct 29 13:01 test
#su -
#cd /tmp/test
#touch rootfile
#ls -l rootfile
-rw-r--r-- 1 root Student 0 Oct 29 13:04 rootfile
(可见root创建的文件主属组也和上一级目录 /test 主属组一致!这就是sgid的作用。    变更用户初始化登陆时的属组:usermod -g   groupname username)
实验三:冒险位sticky bit(设置在目录上),一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件.
             X权限:能不能进入指定目录!
实验环境:root用户创建了一个/mnt/share目录,想只想实现其他用户对自己的创建目录能读写操作。
#chmod 777 /mnt/share           一般用户可以互相删除自己或者对方创建的文件  
#chmod 1777 /mnt/share    
#su student
#touch student
#su student1
#touch student1
#ls -l
-rw-r--r-- 1 student Student 0 Oct 29 13:15 student
-rw-r--r-- 1 student1 Student 0 Oct 29 13:15 student1
#rm -f student
rm: cannot remove `student': Operation not permitted
#su student
#rm -f student1
#rm: cannot remove `student'1: Operation not permitted
效果很明显的!
the end!!!

本文出自 “Linux” 博客,谢绝转载!

你可能感兴趣的:(SUID,SGID,Sticky,强制位,冒险位)