9.特殊权限 软连接 硬链接
2019獨角獸企業重金招聘Python工程師標準>>>
6月7日任務
2.18?特殊權限set_uid
2.19?特殊權限set_gid
2.20?特殊權限stick_bit
2.21?軟鏈接文件
2.22?硬連接文件
?
?
2.18?特殊權限set_uid
會發現有些文件的前三位并不是rwx而是rws,而s就代表的set_uid的權限
要更改passwd,就要更改系統文件,而這個系統文件就是/etc/shadow,而shadow是---權限無法更改,所以就用到了set_uid這個權限,他可以讓普通用戶臨時擁有root的權限,來修改passwd
所以set_uid的意思就是:他可以讓普通用戶臨時擁有該命令所有者的身份(u=所有者),有了這個的權限,就可以修改這個帶s的文件
那么給一個文件設置set_uid的前提是這個文件必須是二進制文件、可執行文件
(二進制文件比如ls命令,.txt就不是二進制文件)
su - 可切換用戶
那么如何給一個文件加上set_uid權限呢,寫法如下:
chmod u+s /user/bin/passwd
-s可取消set_uid權限
chmod u-s /user/bin/passwd
實例:
我們先用su - 切換到普通用戶下,并查看/root/,發現查看不了,因為沒有權限
我們把ls加上set_uid權限,然后在查看ls,會發現ls已經變成了rws
?
我們再回到普通用戶下,再查看/root,就會發現可以打開了
注意:目錄頁可以加set_uid,但是沒意義,我們不執行目錄
總結:
set_uid是可以讓普通用戶臨時擁有這個文件所有者身份的權限
對一個文件加set_uid的寫法是:
chmod u+s
chmod u-s 可取消set_uid權限
---------------------------------------------------------------------------------------------------------------------------------------
?
2.19?特殊權限set_gid:
?
set_gid是作用在所屬組者個權限位上的
set _gid是可以讓這個文件臨時擁有所屬組的身份(g=所屬組)
寫法為 chmod g+s
set_gid加在文件上的時候是跟set_uid是一樣的,但是他是可以加在目錄上的
?
實例:
我們新建一個叫111的目錄,給他增加set_gidde quanxian ,更改他的所屬組,我們發現在里面新建的子目錄和子文件就都是wangxin了
然后我們在取消掉set_gid,再給他增加子文件和子目錄,就會發現這時候就都是root了
總結:
作用在文件上時用set_uid類似,可以讓執行這個文件的普通用戶臨時擁有這個所屬組的權限
作用在目錄上時,當你創建子目錄或者子文件,子目錄和子文件的所屬組和該目錄的所屬組保持一致
寫法也是 chmod g+a
取消為 chmod g-a
---------------------------------------------------------------------------------------------------------------------------------------
?
2.20?特殊權限stick_bit:
stick_bit防止別人刪除自己的文件(root用戶除外)
stick_bit通常用在/tmp/下
在一個用戶/tmp/建了一個文件,在另一個用戶/tmp/下是可以看到的,但是不能刪
---------------------------------------------------------------------------------------------------------------------------------------
?
2.21?軟鏈接文件:
?
軟連接相當于Windows的快捷方式,把一個文件的路徑放到另一個目錄下,就可以執行這個目錄的名字,比較節省空間
如圖:
ls就是在bin下的,所以我們執行哪個都可以
那么給一個目錄做軟連接的寫法是:
ln -s /root/123/12/1.txt /tmp/456/45/6.txt
源文件路徑 目的地文件路徑
軟連接不僅可以做文件也可以做目錄,但是最好使用絕對路徑
實例:
假如有一個叫aming的服務一直在往/boot下寫日志(.log),而/boot已經快滿了,再寫就滿了,我們可以這樣做
cp /boot/aming.log /aming.log 先把這個服務的日志復制到根下
rm /boot/aming.log 再把原有這個服務的日志刪掉,讓他往根下面寫,那現在這個服務的原路徑就在跟下了
ln -s /aming.log /boot/aming.log 再把現在這個的源文件路徑軟連接給/boot下就好了
?
---------------------------------------------------------------------------------------------------------------------------------------
?
2.22?硬連接文件:
寫法為ln (源文件絕對路徑) (目的地絕對路徑)
?
不支持對目錄做硬鏈接,硬鏈接只能對文件做硬鏈接
不能跨分區做硬鏈接
硬鏈接可以刪除,因為還有其他iNode使用了這個硬鏈接,
比如創建了一個文件,他跟一個文件有一樣的iNode號,那這兩個文件相互為硬鏈接
硬鏈接相當于是一個文件多了一張皮,我可以刪掉其中一個,或者哪個都無所謂,真正儲存該信息的是inode
相當于備份
?
?
?
轉載于:https://my.oschina.net/u/3866149/blog/1826378
總結
以上是生活随笔為你收集整理的9.特殊权限 软连接 硬链接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker 6 docker运行的底层
- 下一篇: Kubernetes中使用CronJob