Linux学习之路高级权限
注: 文章仅为作者学习笔记,不足之处请多指教
一、高级权限
(一)高级权限有哪些
1、冒险位(SETUID)
- 冒险位,指文件操作者(用户)临时拥有文件拥有者的权限
- 冒险位,一般针对的是命令或者脚本文件
- 冒险位,用字母表示是s或S;数字表示是4
- 冒险位的设置: chmod u+s 文件名 或者 chmod 4xxx 文件名
2、强制位(SETGID)
- 强制位,一般针对的是目录
如果一个目录拥有强制位,那么任何用户在该目录里所创建的任何文件的属组都会继承该目录的属组。/dir1---->admin yunwei—>/dir1/file1 - 强制位,用字母表示是s或S;数字表示是2
- 强制位的设置: chmod g+s 文件名 或者 chmod 2xxx 文件名
3、粘滞位(STICKY)
- 粘滞位,一般针对的是公共目录
如果一个公共目录拥有粘滞位,那么该目录下的文件,只有root和文件的创建者可以删除,其他人只能自己管
理自己。(A用户不能删除B用户创建的文件)
控制删除!针对公共目录–>任何人都可以使用 - 粘滞位,用字母表示是t或T;数字表示是1
- 粘滞位的设置: chmod o+t 文件名 或者 chmod 1xxx 文件名
(二)高级权限设置
1、冒险位举例
#需求:
#给一个vim命令设置冒险位,目的是任何人拿vim去修改文件可以临时获得文件拥有者的权限
which vim /usr/bin/vim
ll /usr/bin/vim
chmod u+s /usr/bin/vim
或者
chmod 4755 /usr/bin/vim
ll /usr/bin/vim
#测试验证,普通用户使用vim修改一个本没有权限修改的文件:
ll /etc/passwd
su - user01
vim /etc/passwd
#验证是否可以修改成功,如果可以,说明user01用户临时拥有了/etc/passwd文件拥有者的权限
2、强制位举例
#需求:
#给目录dir2设置一个强制位,测试是否任何人在该目录里创建的文件属组都是该目录的属组
ll -d dir2
#给dir2增加强制位:
chmod g+s dir2
#给dir2目录设置权限,让其他人可以写
chmod o+w dir2
ll -d dir2
#测试普通用户user01在dir2目录里创建文件的属组是否是dir2的属组
su - user01
touch /tmp/dir2/file1
ll /tmp/dir2/file1
3、粘滞位举例
#需求:
#在创建一个公共目录/tmp/dir3,要求所有人都可以在该公共目录里创建、删除文件;但是只能自己管理自己,不能删除别人 的文件
mkdir /tmp/dir3
chmod 777 /tmp/dir3
chmod o+t /tmp/dir3 #
或者一步到位:
chmod 1777 /tmp/dir3
ll -d /tmp/dir3