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