1. 程式人生 > >2018-3-29

2018-3-29

特殊權限軟硬鏈接

2.18 特殊權限set_uid

2.19 特殊權限set_gid

2.20 特殊權限stick_bit

2.21 軟鏈接文件

2.22 硬連接文件




2.18 特殊權限set_uid

了解就好

更改root密碼時,使用過passwd命令,看一下passwd在哪還有權限。

技術分享圖片技術分享圖片

是一個紅色的文件,並且權限位前三位不是rwx而是rws第一次見。

rwx分別是可讀可寫可執行。這個s是set_uid的權限。

再linux下passwd支持普通用戶自己改密碼,改密碼就意味著要改密碼的文件。/etc/shadow就是這個文件

技術分享圖片

權限-----,這樣的文件普通用戶為什麽能改?root自己都沒權限。root用戶必定是super管理員(有改權限的權限),就算---也能改。

現在又想讓普通用戶能改密碼,文件又不能讓他寫。所有就有了這個特殊權限set_uid(除了所有者,其他用戶當他去執行帶set_uid權限的這個命令時,執行的那一瞬間就會被賦予這個命令的所有者的權限)也就是普通用戶執行set.就臨時擁有root身份的意思。

要給一個文件設置setuid前提是二進制文件。

昨天講的權限中 9位分3段,u=user g=group o=ohter,分成了這三組。

首先我切換到wt用戶(普通用戶)

技術分享圖片

su - **切換用戶。ls一下/root/目錄

技術分享圖片顯然不行,普通用戶權限不夠。

技術分享圖片

可以看到普通用戶是---,不可寫不可讀不可執行。那先回到root給ls設置一個sd權限,用chmod u+s//u就是user /usr/bin/ls (可以理解為臨時變身root用戶)

技術分享圖片

技術分享圖片

再來看 這個也變紅色了,s也有了。再回到wt用戶看一下,果然能看了,單權限依舊沒變 還是---。

技術分享圖片

也就是ls臨時擁有了root用戶的權限,要去掉他-s就ok技術分享圖片

換一種方法附加sd權限,chomd u=rws /usr/bin/ls

技術分享圖片

s變大S了,是因為這樣沒有x權限了,所以加上就ok

技術分享圖片

又變成小s了。實際上大寫的S也不受影響(因為加了S本身就又執行的內容,所以就算沒x也沒問題)。

sd也可以加目錄上,不過沒什麽意義,目錄不用去執行。

總的來說set_uid就是給一個臨時root的權限,比較方便,像普通用戶也可以去修改root密碼這類的權限。





2.19 特殊權限set_gid

先把上面的ls還原成原來的rwx

然後chmod g+s /usr/bin/ls

技術分享圖片

看一下文件變成了×××的背景,其實set_gid的功能和setuid挺像的,只不過是換了個角色。

原來是普通用戶擁有所有者的身份,現在的普通用戶臨時擁有所屬組的身份。

r-s可以看到所屬組上又個s。

技術分享圖片

對於root 所有者和所屬組都是r-x,所以set_gid也能使wt查看root。

那也可以對目錄設置這個權限。

當給一個目錄設置setgid那這個子文件的子目錄和所屬組,會與剛才創建目錄的所屬組保持一致。




2.20 特殊權限stick_bit

系統又一個目錄有這個權限

技術分享圖片

這個權限最後一個rwt,這個t就是stick_bit。

誰的文件誰做主,防刪除權限,靠他的副級目錄決定。(比如tmp下有wt sxx都再用 防止其他人刪除文件)

技術分享圖片

很簡單 比如

user1可以修改aming的文件,但不能刪除。 所以這個權限就是防刪除位,只有有權限的人才可以刪除。(這個權限就是防刪除,root用戶除外)

把目錄權限改成rwxrwxrwx 777。 那就可以被其他用戶刪除了。

這三個權限大致理解一下就可以了不用深究。









2.21 軟鏈接文件

類似於windows的快捷方式

技術分享圖片

這個bin就是軟連接 其實就是一個軟鏈接,比如/bin/ls 和ls一樣的一個文件。

再文件本身存了另外一個路徑。路徑越長就越大。

lib64裏軟鏈接特別多,綠色的。

技術分享圖片

軟鏈接比較節省空間比拷貝方便。

ln -s 要做的鏈接 目標地 這個格式做軟鏈接。 例:ln -s /tmp/yum.log /root/wt/yum.log

軟連接 還可以連接目錄,同樣的操作格式。相對路徑的做法只會再當前目錄下,移動時可會除出錯紅色閃爍警告。

還可以劃分區。




2.22 硬連接文件

硬鏈接不支持對目錄做硬鏈接,只支持對文件。

兩個文件inode號一樣,相互為硬鏈接,而軟鏈接只是一個快捷方式找不到源時候就會問題,硬鏈接就沒問題相當於多了一個文件。

由於硬鏈接是有著相同 inode 號僅文件名不同的文件,因此硬鏈接存在以下幾點特性:

  • 文件有相同的 inode 及 data block;

  • 只能對已存在的文件進行創建;

  • 不能交叉文件系統進行硬鏈接的創建;

  • 不能對目錄進行創建,只可對文件創建;

  • 刪除一個硬鏈接文件並不影響其他有相同 inode 號的文件。


2018-3-29