一、 命令格式
Linux既然每個文件或目錄都有自己的權限屬性,那么如何來修改他們的權限屬性呢,在學命令之前先了解一下Linux命令的格式:
[-選項]:就是用來調整命令功能的。
[參數]:命令操作的對象。
二、修改文件基本權限的命令
想要改文件的權限,只有管理員root和所有者才能修改
1、chmod:更改文件9個屬性
Linux文件屬性有兩種設置方法,一種是數字,一種是符號。
Linux文件的基本權限就有九個,分別是owner/group/others三種身份各有自己的read/write/execute權限。
① 數字改變文件權限(常用)
我們可以使用數字來代表各個權限,各權限的分數對照表如下:
- r:4
- w:2
- x:1
每種身份(owner/group/others)各自的三個權限(r/w/x)分數是需要累加的,例如當權限為: [-rwxrwx---] 分數則是:
- owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1 = 7
- others= --- = 0+0+0 = 0
所以等我們設定權限的變更時,該文件的權限數字就是770啦!變更權限的指令chmod的語法是這樣的:
chmod [-R] xyz 文件或目錄
- xyz : 就是剛剛提到的數字類型的權限屬性,為 rwx 屬性數值的相加。
- -R : 進行遞歸(recursive)的持續變更,亦即連同次目錄下的所有文件都會變更
② 符號類型改變文件權限
我們就可以藉由u, g, o來代表三種身份的權限!
此外, a 則代表 all 亦即全部的身份!那么讀寫的權限就可以寫成r, w, x!也就是可以使用底下的方式來看:
chmod | u g o a |
+(加入) -(除去) =(設定) |
r w x |
文件或目錄 |
如果我們需要將文件權限設置為 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 來設定。
例:
注意:如果一個目錄有寫的權限,其他用戶對於這個目錄下的文件也可以刪除。
2、chown:更改文件屬主,也可以同時更改文件屬組
注意:這個命令只有管理員root才可以操作。而且系統里是必須存在這個用戶。
語法:
chown [–R] 屬主名: 文件名
chown [-R] 屬主名:屬組名 文件名
3、chgrp:更改文件屬組。
語法:
chgrp [-R] 屬組名 文件名
參數選項
- -R:遞歸更改文件屬組,就是在更改某個目錄文件的屬組時,如果加上-R的參數,那么該目錄下的所有文件的屬組都會更改。
4、umask設置預設的權限掩碼
Linux umask命令指定在建立文件時預設的權限掩碼,在學習這個命令之前,先了解一下默認的所有者和所屬組是哪來的?
一個文件創建的時候所有者和所屬組是哪來的?
所有者:誰創建的文件誰就是這個文件的所有者。
所屬組:就是這個文件創建者的缺省組,每個用戶只能有一個缺省組。
顯示新建文件的缺省權限。
創建一個目錄的時候查看發現 權限跟缺省權限是一致的,但是在test目錄里創建一個文件后,查看文件缺省權限跟默認缺省權限不一致,這個是為什么呢?
rwxr-xr-x
rw-r--r-- 對比發現都少了一個x可執行權限,這是因為在Linux里缺省權限創建的文件是不可具有可執行權限的。
單獨執行 umask 發現現實出 0022 ,這是什么意思呢?
022是權限掩碼意思,真正的權限是777-022=755 寫出來就是rwxr-xr-x.
如果我們自己要是想修改這個缺省權限,該怎么修改的。
先把想修改的權限格式表示出來,算出對應的數字,再用777-對應的數字就可以,例如: