1. 程式人生 > >文件的特殊權限set_uid set_gid stick_bit

文件的特殊權限set_uid set_gid stick_bit

chmod 權限 特殊權限

1.set_uid權限

系統中有一個地方用到了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