權限管理命令
我們先簡單的回憶下之前將的權限問題:
權限:所有者(u),所屬組(g),其他人(o)
操作權限:讀(r),寫(w),執行(x)
1.chmod 改變文件或目錄權限
注:只有文件所有者和root才能更改權限
語法:chmod [-選項][{ugoa}{+-=}{rwx}][文件或目錄]
//這裏的a就是all就是所有人
或chmod [-選項][mode=421][文件或目錄]
選項:-R 遞歸修改(修改該目錄下所有目錄或文件的權限)
chmod [-選項][]mode=421][文件或目錄]是通過數字來表示權限:
r:4 w:2 x:1 ----> rwx:7 rw-:6 r--:4 r-x:5 -wx:3 -w-:2 --x:1 ---:0
例如:chmod 640 suolong 就是將suolong目錄的權限屬性改成 drw-r-----
也可以用chmod o+w suolong來更改suolong目錄的權限,更改了其他人的權限,加入了寫權限
權限解讀:
對於文件來說:r可以查看文件內容 cat/more/head/tail/less
w可以修改文件內容 vim
x可以執行文件 script command
對於目錄來說:r可以列出目錄中內容 ls
w可以在目錄中創建或刪除文件 touch/mkdir/rmdir /rm
x可以進入目錄 cd
注:對文件有w權限,並不不能對其刪除,只有當對該文件所在目錄擁有w權限才能對該文件進行刪除。另外r和x權限對於一個目錄來說基本是成對出現的
2.chown change file ownership 改變文件或目錄的所有者
語法:chown [用戶][文件或目錄]
例:chown yanghong suolong 將suolong目錄的所有者權限改爲用戶yanghong
3.chgrp change file group ownership 改變文件或目錄的所屬組
語法:chgrp [用戶組][文件或目錄]
例:chgrp yanghong suolong 將目錄suolong的所屬組改爲yanghong用戶組
4.umask the user file-creation mask 顯示設置文件的缺省權限
語法:umask [-S][權限數]
-S以rwx權限形式顯示新建文件缺省權限
不加-S是以數字形式顯示新建文件缺省權限
缺省權限即爲默認權限,在不設置的前提下,目錄和文件的缺省權限如下:
目錄:rwx r-x r-x
文件:rw- r-- r--
umask的具體用法:
(1)先來看下輸入umask -S 會返回什麼結果
Linux的文件或目錄默認權限在不做修改的情況下都是這個。現在我們分別創建一個文件或目錄,來看一看他們的權限。
輸入 mkdir wanmeishijie 結果如下
我們看到該新建目錄的權限確實是rwxr-xr-x。接下來創建一個文件。
輸入 touch csgo 之後結果如下:
我們會看見新建文件的權限並不是rwxr-xr-x而變成了rw-r--r--。我們仔細觀察會發現,在文件的默認權限中所有權限人都沒有x這個權限,這是因爲在Linux中,文件的默認權限是不允許出現x的,即不能創建一個可執行文件。這是爲了保護我們的系統,以免受到病毒木馬的攻擊
(2)再來看下直接輸入umask會出現什麼
同樣Linux的文件或目錄默認權限在不做修改的情況下,輸入umask返回的都是0022。首先第一個0的意思是特殊權限,這個會在我後面的文章中詳細論述,現不做敘述。後面的022即爲ugo的權限。按之前的數字表示權限來說022代表的權限應該是 ----w--w-和之前說好的rwxr-xr-x完全不一樣。這是爲什麼?我們可以來列個式子看一下:
777 rwx rwx rwx
022 --- -w- -w-
----------------------------
755 rwx r-x r-x 目錄
rw- r-- r-- 文件
這樣我們可以發現022(即我們將在umask後輸入的數字)其實和我們全權限777成一個異或關係,即相同爲0不同爲1.而文件則在該條件下刪除x權限。
那如果我們想把默認權限改爲700我們應該輸入umask數字幾呢?同樣我們可以列式:
777 rwx rwx rwx
---------------------------------
700 rwx - - - --- 目錄
rw- --- --- 文件
根據異或關係後我們可以推出:
777 rwx rwx rwx
077 --- rwx rwx
-----------------------------
700 rwx - - - --- 目錄
rw- --- --- 文件
例如: