文件與目錄的默認權限與隱藏權限
01. 文件默認權限:umask
文件的權限可使用chmod來改變,可是咱們默認建立文件的權限是什麼?那就是與umask這個有關了。下來咱們學習這個指令php
1.1 簡單使用umasklinux
[root@iZbp13q6hd8z3xaagcmz6gZ /]# umask 0022 [root@iZbp13q6hd8z3xaagcmz6gZ /]# umask -S u=rwx,g=rx,o=rx [root@iZbp13q6hd8z3xaagcmz6gZ /]#
查閱的方式有倆種,一種是直接輸入umask,就能夠看到數字體態的權限設置分數。一種則是假如-S這個選項,就會以符號類型的方式來顯示出權限了。shell
1.2 解釋爲何會有四組數字
咱們的文件權限會有十個字符,第一字符表明文件類型,剩餘九個字符分爲三組,分別爲擁有者(owner),羣組(group),其餘人(others)
可是在這裏第一組是特殊權限用的,後邊的三組纔是咱們的須要學習的權限。安全
1.3 文件和目錄的默認權限
在默認權限的屬性上,目錄和文件是不同的,由於X權限對於目錄是很是重要的!沒有X權限就表明沒法進入這個目錄工做。可是文件則不須要這個權限,由於文件一般是用在於數據的記錄,因此就不須要。學習
- 文件的默認權限:-rw-rw-rw-
- 目錄的默認權限:drwxrwxrwx
1.4 解釋umask數字的含義
umask的分數指的是該默認值須要減掉的權限,r,w,x分別是4,2,1分。
在1.1中咱們知道umask爲0022,第一個值咱們暫時無論,第二個值爲0,也就是user並沒減去任何權限,不過group和others的權限都減去了2(也就是w這個權限)那麼當這個用戶建立文件和目錄的權限分別就是測試
- 文件:(-rw-rw-rw-)- (-----w–w-)= -rw-r–r--
- 目錄:(drwxrwxrwx)- (d----w–w-)= drwxr-xr-x
1.5 實戰檢測1.4 推測的準確性
實戰的檢測證實了咱們的推理是正確的字體
[root@iZbp13q6hd8z3xaagcmz6gZ learn]# umask 0022 [root@iZbp13q6hd8z3xaagcmz6gZ learn]# ll -d test* -rw-r--r-- 1 root kaka 0 Aug 15 11:19 test1 drwxr-xr-x 2 root kaka 4096 Aug 15 11:19 test2 [root@iZbp13q6hd8z3xaagcmz6gZ learn]#
1.6 umask的利用與重要性
想象一個情況那就是你跟你的工做夥伴在一個目錄下工做,而後你建立的文件你的工做夥伴只有讀的權限,沒有寫的權限。那是否是你建立一個問價,你就得修改一下文件的權限。在不知道umask這個指令以前或許是,可是如今能夠一鍵設置,哈哈
處理這個問題很簡單的啦!那就是說只要保證咱們的文件權限爲664就能夠了唄!
那麼咱們的umask的數值就應該是002了,而不是022.ui
1.7 如何設置umask
umask後邊直接跟上數值就能夠了url
[root@iZbp13q6hd8z3xaagcmz6gZ learn]# umask 002 [root@iZbp13q6hd8z3xaagcmz6gZ learn]# touch test;ll test -rw-rw-r-- 1 root kaka 0 Aug 16 10:49 test [root@iZbp13q6hd8z3xaagcmz6gZ learn]#
1.8 umask默認值的注意點
爲了安全考慮root用戶爲022,其餘用戶爲002spa
例題1:假設你的 umask 爲 003 ,請問該 umask 狀況下,建立的文件與目錄權限爲?
- 文件:(-rw-rw-rw)- (--------wx) = -rw-rw-r–
- 目錄:(drwxrwxrwx)- (d-------wx) = drwxrwxr–
02. 文件隱藏屬性
文件除了有那三個權限以外,還有隱藏的屬性,下面看一下
2.1 chattr設置文件隱藏屬性
- :+ 增長某一個特殊參數,其餘本來存在參數則不動。
- :- 移除某一個特殊參數,其餘本來存在參數則不動。
- := 設置必定,且僅有後面接的參數
參數:
a :當設置 a 以後,這個文件將只能增長數據,而不能刪除也不能修改數據,只有root 才能設置這屬性
i :這個 i 可就很厲害了!他可讓一個文件「不能被刪除、更名
[root@iZbp13q6hd8z3xaagcmz6gZ learn]# chattr +a kaka.php [root@iZbp13q6hd8z3xaagcmz6gZ learn]# lsattr kaka.php -----a-------e-- kaka.php
2.2 查看文件的隱藏屬性
lsattr 文件名
2.3 注意點
只要設置了隱藏屬性,無論任何用戶都沒法逃脫這個屬性的做用。root用戶也是
03. 文件特殊特權:SUID, SGID, SBIT
文件權限重要的有三個,那就是rwx這三個權限,可是在測試目錄的時候會發現,咱們有的目錄跟文件的權限是有點怪怪的,下面咱們來看一下
[root@iZbp13q6hd8z3xaagcmz6gZ /]# ls -ld tmp drwxrwxrwt. 13 root root 4096 Aug 16 03:38 tmp [root@iZbp13q6hd8z3xaagcmz6gZ /]# ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd
文件權限不該該只有rwx,這裏怎麼會有特殊權限,t跟s
- SUID
當s這個標誌出如今文件擁有者的x權限上時,例如passwd這個文件的權限狀態–rwsr-xr-x,此時就被稱爲set uid,簡稱爲SUID的特殊權限- SUID權限僅對二進制程序有效
- 執行者對於該程序須要具備x的可執行權限
- 本權限僅在執行該程序的過程當中有效
- 執行者將具備該程序擁有者的權限
白話文簡單的說一下,在linux中全部帳號的密碼都記錄在/etc/shadow這個文件中,這個文件的權限爲---------- 1 root root 866 Aug 13 15:28 /etc/shadow,意思是這個文件僅有root可讀,且僅有root能夠強制寫入,既然這個文件只有root能夠修改,那麼另一個用戶是否能夠修改呢!咱們使用另外一個用戶輸入passwd這個指令,通常的使用者固然能夠修改本身的密碼了
這裏是否是有點矛盾了,明明/etc/shadow就不能讓其餘用戶去存取,爲何其餘用戶能夠修改,這就是SUID的功能了
- dmtsai 對於 /usr/bin/passwd 這個程序來講是具備 x 權限的,表示 dmtsai 能執行
passwd; - passwd 的擁有者是 root 這個賬號;
- dmtsai 執行 passwd 的過程當中,會「暫時」得到 root 的權限;
- /etc/shadow 就能夠被 dmtsai 所執行的 passwd 所修改。
但若是 dmtsai 使用 cat 去讀取 /etc/shadow 時,他可以讀取嗎?由於 cat 不具備 SUID 的權
限,因此 dmtsai 執行 「cat /etc/shadow」 時,是不能讀取 /etc/shadow 的。
注意點:SUID對於目錄來講是無效的
- SGID
- SBIT 因爲這裏的的幾個特權會在後邊進行詳細介紹,這裏就先暫時只寫這一個,後邊在返回來補充