linux系統是一個多用戶系統,不一樣的用戶擁有不一樣的權限,爲了保護系統的安全性,linux系統對不一樣的用戶訪問同一文件或者目錄的權限作了不一樣的規定。python
linux中咱們常常使用 ll 或者 ls -l 命令來顯示一個文件的屬性以及文件所屬的用戶和組linux
[root@hbase /]# ll 總用量 110 drwxr-xr-x. 2 root root 4096 9月 27 02:43 bak dr-xr-xr-x. 2 root root 4096 8月 1 19:33 bin dr-xr-xr-x. 5 root root 1024 7月 26 18:03 boot drwxr-xr-x. 18 root root 3760 10月 18 00:14 dev
以上例子中,bin文件的第一個屬性用"d"表示這是一個目錄。數組
linux中第一個字符表明這個文件是一個目錄,文件或者連接文檔等。安全
第一個字符之後的字符中,以三個爲一組,都是以"rwx"三個參數組成且順序不變,分別標識讀,寫和執行。若是沒有權限就會用減號"-"來替代,以下圖:bash
從左至右用0-9這些數字來表示。spa
第0位肯定文件類型,第1-3位肯定屬主(該文件的全部者)擁有該文件的權限。第4-6位肯定屬組(全部者的同組用戶)擁有該文件的權限,第7-9位肯定其餘用戶擁有該文件的權限。code
[root@hbase /]# ll 總用量 110 drwxr-xr-x. 2 root root 4096 9月 27 02:43 bak dr-xr-xr-x. 2 root root 4096 8月 1 19:33 bin dr-xr-xr-x. 5 root root 1024 7月 26 18:03 boot drwxr-xr-x. 18 root root 3760 10月 18 00:14 dev
對於文件來講,它都有一個特定的全部者,也就是這個文件是誰的。同時,linux系統中,用戶是按組分類的,一個用戶屬於一個或多個組。文件全部者之外的用戶又能夠分爲,文件全部者同組用戶和其餘用戶。所以,linux系統按文件全部者,文件全部者同組用戶和其餘用戶來規定不一樣文件的訪問勸降。遞歸
以上代碼中dev文件是一個目錄文件,屬主和屬組,屬主能夠對該目錄進行讀寫執行,與屬主同組的其餘用戶有可讀可執行權限,其餘用戶也有可讀可執行的權限,而對於root用戶來講,通常狀況下,文件的權限對其不起做用。ci
1,chgrp:更改文件屬組文檔
語法:chgrp [-R] 數組名 文件名
-R 遞歸更改文件屬組,
2,chown:更改文件屬主,也能夠同時更改文件屬組
語法:chown [-R] 屬主名 文件名
chown [-R] 屬主名:屬組名 文件名
3,chmod : 更改文件9個屬性
Linux文件屬性有兩種設置方法,一種是數字,一種是符號。
Linux文件的基本權限就有九個,分別是owner/group/others三種身份各有本身的read/write/execute權限。
先複習一下剛剛上面提到的數據:文件的權限字符爲:『-rwxrwxrwx』, 這九個權限是三個三個一組的!其中,咱們可使用數字來表明各個權限,各權限的分數對照表以下:
每種身份(owner/group/others)各自的三個權限(r/w/x)分數是須要累加的,例如當權限爲: [-rwxrwx---] 分數則是:
因此等一下咱們設定權限的變動時,該文件的權限數字就是770啦!變動權限的指令chmod的語法是這樣的:
chmod [-R] xyz 文件或目錄
選項與參數:
舉例來講,若是要將.bashrc這個文件全部的權限都設定啓用,那麼命令以下:
[root@www ~]# ls -al .bashrc -rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc [root@www ~]# chmod 777 .bashrc [root@www ~]# ls -al .bashrc -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
那若是要將權限變成 -rwxr-xr-- 呢?那麼權限的分數就成爲 [4+2+1][4+0+1][4+0+0]=754。
還有一個改變權限的方法呦!從以前的介紹中咱們能夠發現,基本上就九個權限分別是(1)user (2)group (3)others三種身份啦! 那麼咱們就能夠藉由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 文件名 來設定:
[root@www ~]# ls -al .bashrc -rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc [root@www ~]# chmod a+w .bashrc [root@www ~]# ls -al .bashrc -rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
而若是是要將權限去掉而不改變其餘已存在的權限呢?例如要拿掉所有人的可執行權限,則:
[root@www ~]# chmod a-x .bashrc [root@www ~]# ls -al .bashrc -rw-rw-rw- 1 root root 395 Jul 4 11:45 .bashrc