linux文件权限之文件的强制位、冒险位

       上篇跟大家分享了linux的ugo权限,今天跟大家扩展一下,大家在工作中一定有些困惑比如说是否可以让普通用户可以临时以root用户的权限去执行?是否可以让一个企业不同部门的人在做一个共同的项目的时候可以享有系统的权限?还有一种场景,在企业里面公司各部门既要共享数据每个人相互之间也不可以删除彼此的数据?带着这些疑惑大家看看我的讲解来理解这些特殊的需求.


强制位
1.用户的强制位(二进制文件 命令 ) setuid
设置文件的强制位后 普通用户可以临时以该命令文件的拥有人的权限执行该命令 该权限对应于u的x位 设置后x-->s

which  passwd    查看二进制命令的绝对路径
/usr/bin/passwd

查看
ll /usr/bin/passwd
-rwsr-xr-x

取消
chmod u-s /usr/bin/passwd

设置
chmod u+s /usr/bin/passwd

ll /bin/mkdir
-rwxr-xr-x. 1 root root 49384 4月  17 2012 /bin/mkdir

chmod u+s /bin/mkdir

ll -d test/
drwxrwxr-x. 2 root redhat 4096 11月  4 12:02 test/

2.组的强制位
组的强制位针对目录设置有效,对应UGO中的G(x--->s)
目录设置了组的强制位后,其他任何人在此目录下创建文件或目录的组都是此目录的组

不论是用户的强制位还是组的强制位,如果显示s表示强制位有效 如果显示S表示强制位无效

查看
ll

设置
chmod g+s /test

取消
chmod g-s /test

3.冒险位
冒险位针对目录设置有效 对应UGO中的O(x--->t) 目录有7的权限 但是t位是保护位
目录设置冒险位后 其他人可以查看别人创建的文件 但不可以修改和删除

查看
ll  /tmp

设置
chmod o+t  /tmp

取消
chmod o-t /tmp



setuid --->u+s     4
setgid --->g+s     2
sticky --->o+t     1

4666 ----> 4设置setuid 666-->ugo

umask查看
root用户
umask --->0022

普通用户
umask --->0002

设置umask  777


最后给大家分享一下uamsk码,umask影响的是创建文件或目录的默认权限


默认情况下root用户的umas为0022:
文件的最大权限为666

目录的最大权限为777


普通用户的umask为0002
文件的最大权限为666

目录的最大权限为777


root用户
创建文件
rw-rw-rw-   --->666
----w--w-   --->022
rw-r--r--   --->644

文件基数展开跟umask减法=默认创建的文件权限

普通用户
创建文件
rw-rw-rw-   --->666
-------w-   --->002
rw-rw-r--   --->664

创建目录
rwxrwxrwx   ---->777
-------w-   ---->002
rwxrwxr-x   ---->775

在cat /etc/profile文件定义系统的umask