特殊權限set_uid, 特殊權限set_gid,特殊權限stick_bit,軟鏈接文件, 硬連接文件
特殊權限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,軟鏈接文件, 硬連接文件