1. 程式人生 > >特殊權限set_uid, 特殊權限set_gid,特殊權限stick_bit,軟鏈接文件, 硬連接文件

特殊權限set_uid, 特殊權限set_gid,特殊權限stick_bit,軟鏈接文件, 硬連接文件

linux

特殊權限set_uid
特殊權限set_gid
特殊權限stick_bit
軟鏈接文件
硬連接文件


特殊權限set_uid

技術分享

s: set_uid

改密碼的文件:

技術分享

當普通用戶set_uid執行這個命令時,就會臨時擁有root用戶的身份

對一個文件執行set_uid命令,前提是這個文件是一個二進制的文件,而且是一個可執行的文件。


eg:

給ls 加一個set_uid 的權限


首先切換到一個普通用戶下面去:

技術分享


加上s權限

技術分享


再來執行,看能不能查看:

技術分享


看一下權限變了沒有:

技術分享

權限沒變。(只是臨時擁有root用戶身份)


如何去掉:chmod u-s /usr/bin/ls


另一種方式:

技術分享


變成了大寫S,是因為沒有x 權限。

加上x 權限

技術分享

就算是大S,也是能執行的。


set_gid 作用在組權限位上


先把ls 還原成原始的權限:

技術分享

普通用戶臨時擁有所屬組的身份:

技術分享

試驗一下普通用戶能不能看root用戶下子文件和子目錄

技術分享

能看,原因:

是有權限的

技術分享


也可以作用在目錄上:

技術分享


創建一個子文件,子文件所屬組也是user1

技術分享


是不是沒有set_gid 也這樣呢

技術分享

子文件,子目錄所屬組都是user1


把s權限去掉,創建一個新的文件再來看...

技術分享

所屬組變成了root

技術分享

創建目錄也是一樣的, 所屬組也變成了root。


使用 set_gid 創建文件和目錄的權限會跟著父級目錄(剛剛創建gid權限的這個目錄)保持一致


特殊權限stick_bit

技術分享

這個t就叫做stick bit ,防刪除位


創建一個文件server, 隨便寫點東西,權限改成777,再來查看


技術分享


切換到user1下,看能不能改 。可以改,不能刪

技術分享


再創建一個目錄user1, 改成777權限(777權限意味著任何一個用戶都可以去讀,寫,執行)

技術分享


技術分享

user1可以刪文件,也可以刪目錄

技術分享

刪 user1下1.txt 看的不是1.txt的權限,看的是user1的權限,user1的權限是777,所以當然可以刪1.txt

但是加上 stick_bit 防刪除位,雖然可以改,但是就不能刪除了。


軟鏈接文件

文件本身裏面存了一個目錄的路徑

技術分享

什麽樣的文件屬於軟鏈接呢:

ls -l /lib64/

技術分享


把tmp下yum.log 文件做一個軟鏈接到 root下 yum.log


技術分享

ln -s 源文件 目標文件

不僅可以鏈接文件,也可以鏈接目錄:

技術分享


這個是相對路徑,做的這個軟鏈接僅僅是在當前目錄下,這樣做會有一些弊端

假如說把文件copy到另一機器,或者是改了名字,軟鏈接就失效了。

所以,做軟鏈接盡量使用絕對路徑

技術分享

把文件移一個位置,鏈接一直在閃,說明源文件不存在

技術分享

因為當前目錄下沒有yum.log

可以touch一個,touch完了就正常了

技術分享


工作中,常用解決磁盤空間不夠的問題

技術分享


硬鏈接文件

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

軟鏈接很小,硬鏈接很大

技術分享

技術分享

看一下inode 號
技術分享

特性:

刪掉源,軟鏈接失效,硬鏈接不受影響

技術分享

真正的文件存在inode文件中

技術分享

硬鏈接相當於多了一個“皮兒”皮可以刪掉,還有一個皮

不會占雙份空間,因為inode只有一個

不能對目錄做硬鏈接:

技術分享

(上一個目錄和下一個目錄靠 . 和 .. 串起來)


文件做硬鏈接有一個前提:不能跨區域

(因為這兩個分區是存在相同inode文件的。分區之間都有自己獨立的inode體系,分區的時候都創建好了)

技術分享






本文出自 “ServerLooker” 博客,請務必保留此出處http://13279218.blog.51cto.com/13269218/1976386

特殊權限set_uid, 特殊權限set_gid,特殊權限stick_bit,軟鏈接文件, 硬連接文件