文件的特殊權限set_uid set_gid stick_bit
系統中有一個地方用到了suid,/usr/bin/passwd 。
[root@wangshaojun-01 ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
set UID 對文件來說有這樣的限制和功能
1.僅對二進制程序有效
2.執行者對該程序具有x權限
3.本權限僅在執行程序的過程中有效
4.執行者具有該程序所有者的權限。
5.僅對文件有效,對目錄無效
實例:
給ls命令增加 suid 權限。臨時擁有root的權限。
chmod u+s /usr/bin/ls
su - user1
ls /root/
2.set_gid權限
set GID 對文件來說有這樣的限制和功能
1.僅對二進制文件有效
2.執行者對於該程序來說具有x權限
3.執行者在執行過程中將會獲得該程序用戶組的支持
set GID 對目錄來說 有這樣的限制和功能
1.用戶對該目錄具有r和x權限,才能進入該目錄
2.用戶在此目錄下的有效用戶組,將會變成該目錄的用戶組
3.用戶擁有w權限的時候,用戶所創建的新文件的用戶組於目錄的用戶組相同
如果兩個用戶同時共享一個目錄,
1.首先把用戶ab加入到同一用戶組下,
2.創建目錄,設定2770權限,必須設定SGID權限,否則用戶a創建的文件,用戶b以其他人的身份只具備r權限
實例:
沒有設置SGID的情況下,所有者和所屬組都是user1
# mkdir /tmp/111 && chmod 777 /tmp/111
# su - user1
$ cd /tmp/111/
$ mkdir dir1 && touch file1
$ ll
設置SGID之後,創建的文件和目錄,所屬組就會臨時擁有root的權限。
3.stick_bit權限
防刪除位。/tmp目錄被設置了這個權限。
sticg_bit 對目錄來說 有這樣的限制和功能
1.僅對目錄有效,對文件無效
2.當用戶對此目錄具有wx權限,即具有寫入的權限
3.當用戶在該目錄下創建文件或目錄時,僅自己與root才有權利刪除該文件。
實例:
沒有設置SBIT的權限下,普通用戶可以刪除權限為777的文件。
設置完SBIT之後,普通用戶無法刪除。
4.特殊權限與umask
umask的最前面一位,是特殊權限位。
4為SUID
2為SGID
1為SBIT
實例:
設置一個文件,權限為SUID 和 755權限。
# chmod 4755 1.txt
文件的特殊權限set_uid set_gid stick_bit