我們知道檔案權限對于一個系統的安全重要性,也知道檔案的權限對于使用者與群組的相關性, 那如何修改一個檔案的屬性與權限呢?
我們這里介紹幾個常用于群組、擁有者、各種身份的權限的指令。如下所示:
chgrp ?: ?改變檔案所屬群組;
chown : ?改變檔案擁有者;
chmod : ?改變檔案的權限, SUID, SGID, SBIT等等的特性。
1. 改變所屬群組chgrp
[root@www?~]#?chgrp?[-R]?dirname/filename?...
選項與參數:
-R:進行遞歸(recursive)的持續變更,亦即連同次目錄下的所有檔案、目錄都更新成為這個群組之意。常常用在變更某一目錄內所有的檔案之情況。
范例:
[root@www?~]#?chgrp?users?install.log? [root@www?~]#?ls?-l? -rw-r--r--?1?root?users?68495?Jun?25?08:53?install.log? [root@www?~]#?chgrp?testing?install.log? chgrp:?invalid?group?name?`testing'?<p>免費視頻教程推薦:<a href="https://www.php.cn/course/list/33.html" target="_blank">linux視頻教程</a></p><p><strong>2.?改變檔案擁有者chown</strong></p><pre class="brush:php;toolbar:false">[root@www?~]#?chown?[-R]?賬號名稱?檔案或目錄? [root@www?~]#?chown?[-R]?賬號名稱:組名?檔案或目錄
選項與參數:?
-R : 進行遞歸(recursive)的持續變更,亦即連同次目錄下的所有檔案都變更。
范例:將install.log的擁有者改為bin這個賬號:
[root@www?~]#?chown?bin?install.log? [root@www?~]#?ls?-l? -rw-r--r--?1?bin?users?68495?Jun?25?08:53?install.log
范例:將install.log的擁有者與群組改回為root:?
[root@www?~]#?chown?root:root?install.log? [root@www?~]#?ls?-l? -rw-r--r--?1?root?root?68495?Jun?25?08:53?install.log
3. 改變權限chmod
權限的設定方法有兩種, 分別可以使用數字或者是符號來進行權限的變更。
3.1 數字類型改變檔案權限
Linux檔案的基本權限就有九個,分別是owner/group/others三種身份各有自己的read/write/execute權限。
舉例:檔案的權限字符為?-rwxrwxrwx ?這九個權限是三個三個一組的!其中,我們可以使用數字來代表各個權限,各權限的分數對照表如下:
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的語法是這樣的:
[root@www?~]#?chmod?[-R]?xyz?檔案或目錄
選項與參數:?
xyz : 就是剛剛提到的數字類型的權限屬性,為 rwx 屬性數值的相加。
-R : 進行遞歸(recursive)的持續變更,亦即連同次目錄下的所有檔案都會變更。
舉例來說,如果要將.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 啰!所以你需要下達:
[root@www?~]#?chmod?754?filename
3.2 符號類型改變檔案權限
還有一個改變權限的方法呦!從之前的介紹中我們可以發現,基本上就九個權限分別是(1)user (2)group (3)others三種身份啦!那么我們就可以藉由u, g, o來代表三種身份的權限!此外, a 則代表 all 亦即全部的身份!那么讀寫的權限就可以寫成r, w, x啰!也就是可以使用底下的方式來看:
來實驗一下吧!假如我們要設定一個檔案的權限成為『-rwxr-xr-x』時,基本上就是:
o?user?(u):具有可讀、可寫、可執行的權限; o?group?與?others?(g/o):具有可讀不執行的權限。
所以就是:
[root@www?~]#?chmod?u=rwx,go=rx?.bashrc
注意喔!那個 u=rwx,go=rx 是連在一起的,中間并沒有任何空格符!
[root@www?~]#?ls?-al?.bashrc? -rwxr-xr-x?1?root?root?395?Jul?4?11:45?.bashrc
那么假如是『 -rwxr-xr– 』這樣的權限呢?可以使用『 chmod u=rwx,g=rx,o=r filename 』來設定。此外,如果我們知道原先的文件屬性,而我只想要增加.bashrc這個檔案的每個人均可寫入的權限, 那么我就可以使用:
[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
相關文章教程推薦:linux視頻教程