1. 程式人生 > >特殊權限set_uid、set_gid、stick_bit 軟鏈接、硬鏈接

特殊權限set_uid、set_gid、stick_bit 軟鏈接、硬鏈接

258866

特殊權限set_uid
以passwd(修改密碼)為例,我們演示一下set_uid
我們先查看一下passwd的權限
ls -l /usr/bin/passwd
技術分享圖片
<br/>分析一下,/etc/passwd的權限為 -rw-r--r-- 也就是說:該文件的所有者擁有讀寫的權限,而用戶組成員和其它成員只有查看的權限。我們知道,在系統中我們要修改一個用戶的密碼,root用戶和普通用戶均可以用/usr/bin/passwd someuser這個命令來修改這個/etc/passwd這個文件,root用戶本身擁有對/etc/passwd的寫權限,無可厚非;那普通用戶呢,這裏就用到了setuid,setuid的作用是“讓執行該命令的用戶以該命令擁有者的權限去執行”,就是普通用戶執行passwd時會擁有root的權限,這樣就可以修改/etc/passwd這個文件了。它的標誌為:s,會出現在x的地方<br/>

我們做個試驗,我們給ls授權set_uid權限試一下
我們先再登錄到一個普通用戶下去
su - yang
然後ls一下/root/
技術分享圖片
·
我們用root用戶給ls加一個s權限
chmod u+s /usr/bin/ls
技術分享圖片
·
然後我們換成普通用戶yang,再ls一下/root/
技術分享圖片
·
現在普通用戶yang可以ls /root/了,但文件權限沒變,普通用戶還是不可讀寫執行
·
我們再把ls的s權限給去掉,再試試
技術分享圖片
技術分享圖片
·
這就是set_uid的用法,及用途
·
·
·
·
·
特殊權限set_gid
set_gid和set_uid幾乎相似,set_uid是修改文件擁有者的s權限,set_gid是修改目錄和文件所屬組的s權限
我們先給ls設置set_gid權限
set_gid g+s /usr/bin/ls
技術分享圖片
`
我們看下用普通用戶能否擁有root組的權限
技術分享圖片
·
他是可以使用root組的權限的
我們給一個目錄設置set_gid權限,修改目錄所屬組,在他下面創建文件和子目錄,是否還會是同組
技術分享圖片
·
創建子目錄和文件,並查看所屬組
技術分享圖片
上面我們可以看到,沒添加set_gid權限前,創建的文件還都是root組的,添加完set_gid權限後添加的文件就是目錄的所屬組了
·
·
·
·
·
特殊權限stick_bit
stick_bit的作用
我們知道/tmp是系統的臨時文件目錄,所有的用戶在該目錄下擁有所有的權限,也就是說在該目錄下可以任意創建、修改、刪除文件,那如果用戶A在該目錄下創建了一個文件,用戶B將該文件刪除了,這種情況我們是不能允許的。為了達到該目的,就出現了stick bit(粘滯位)的概念。它是針對目錄來說的,如果該目錄設置了stick bit(粘滯位),則該目錄下的文件除了該文件的創建者和root用戶可以刪除和修改/tmp目錄下的stuff,別的用戶均不能動別人的,這就是粘滯位的作用
·
我們做個試驗,我們用用戶yang創建一個文件,然後切換到用戶huang,看看能不能刪除掉
技術分享圖片
·
然後後我們使用用戶huang 看看是否能刪除
技術分享圖片
顯然是不能刪除的,但是是可以修改的
·
如何設置stick_bit權限
chmod o+t 目錄
技術分享圖片
·
技術分享圖片
·
·
上三節課用法總結
chmod u+s xxx # 設置setuid權限
chmod g+s xxx # 設置setgid權限
chmod o+t xxx # 設置stick bit權限,針對目錄

·
·
·
·
·
軟鏈接文件
軟鏈接又叫符號鏈接,這個文件包含了另一個文件的路徑名。可以是任意文件或目錄,可以鏈接不同文件系統的文件。(簡單說就是一個快捷方式)
我門先看一下已經存在的軟鏈接的樣子
技術分享圖片
·
前面淺藍色就是軟鏈接,後面綠色是原路徑/文件
·
如何制作軟鏈接
in -s xxx(原地址/文件) xxx(軟鏈接地址/文件)
技術分享圖片
·
·
·
硬鏈接
硬鏈接(hard link, 也稱鏈接)就是一個文件的一個或多個文件名。再說白點,所謂鏈接無非是把文件名和計算機文件系統使用的節點號鏈接起來。因此我們可以用多個文件名與同一個文件進行鏈接,這些文件名可以在同一目錄或不同目錄。但硬鏈接無法為目錄設置,且無法跨分區設置
·
我們制作一個一硬鏈接
in xxx(源文件) xxx(目標文件) 做好後硬鏈接是無法查看誰是原文件的,因為它們的時間,大小都是一樣的
技術分享圖片
·
硬鏈接好比一張皮,可刪除任意一張皮,刪除文件。刪除文件只需將相應的目錄項刪除,該文件的鏈接數減1,如果刪除目錄項後該文件的鏈接數為零,這時系統才把真正的文件從磁盤上刪除。

特殊權限set_uid、set_gid、stick_bit 軟鏈接、硬鏈接