天天看點

linux 如何改變檔案屬性與權限1

我們知道檔案權限對于一個系統的安全重要性,也知道檔案的權限對于使用者與群組的相關性, 那如何修改一個檔案的屬性與權限呢?

我們這裡介紹幾個常用于群組、擁有者、各種身份的權限的指令。如下所示:

chgrp  :  改變檔案所屬群組

chown :  改變檔案擁有者

chmod :  改變檔案的權限, SUID, SGID, SBIT等等的特性

1. 改變所屬群組, chgrp

linux 如何改變檔案屬性與權限1

[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' <== 發生錯誤資訊息啰~找不到這個群組名~      
linux 如何改變檔案屬性與權限1

2. 改變檔案擁有者, chown

linux 如何改變檔案屬性與權限1
[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      
linux 如何改變檔案屬性與權限1

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啰!也就是可以使用底下的方式來看:

linux 如何改變檔案屬性與權限1

來實驗一下吧!假如我們要設定一個檔案的權限成為『-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      
[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      

梅花香自古寒來