1. 程式人生 > >chown、chgrp和chmod的用法

chown、chgrp和chmod的用法

原來 參數 文件 更改 進行 span deb 執行 spa

對於文件來說,它都有一個特定的所有者,也就是對該文件具有所有權的用戶。

同時,在linux系統中,用戶是按組分類的,一個用戶屬於一個或多個組。

文件所有者以外的用戶又可以分為文件所有者的同組用戶和其他用戶。

因此,linux系統按文件所有者、文件所有者同組用戶和其他用戶來規定了不同的文件訪問權限。

在以下實例中,chen文件,屬主和屬組都為guest,屬主有可讀、可寫和可執行權限,同組用戶擁有可讀、可執行權限,其他用戶擁有可讀權限。

但:對於root用戶來說,一般情況下,文件的權限對其不起作用。

guest@debian:~$ ls -l chen
-rwxr-xr-- 1 guest guest 0 Apr  6 02:44 chen

更改文件屬性

1、chown:更改文件屬主,也可以同時更改文件屬組

語法:

chown [-R] 屬主名 文件名
chown [-R] 屬主名:屬組名 文件名

參數選項:

-R:遞歸更改文件屬組,就是在更改某個目錄文件的屬主時,如果加上-R的參數,那麽該目錄下的所有文件的屬主都會被更改。

用法:

#查看原文件的屬主和屬組
root@debian:/home/guest# ls -l chen
-rwxr-xr-- 1 guest guest 0 Apr  6 02:44 chen

#更改屬主為root
root@debian:/home/guest# chown root chen
root@debian:/home/guest# ls -l chen
-rwxr-xr-- 1 root guest 0 Apr  6 02:44 chen

#更改屬主為guest
root@debian:/home/guest# chown guest chen
root@debian:/home/guest# ls -l chen
-rwxr-xr-- 1 guest guest 0 Apr  6 02:44 chen

#同時更改屬主和屬組都為root
root@debian:/home/guest# chown root:root chen
root@debian:/home/guest# ls -l chen
-rwxr-xr-- 1 root root 0 Apr  6 02:44 chen

#僅更改屬組為guest
root@debian:/home/guest# ls -l chen
-rwxr-xr-- 1 root root 0 Apr  6 02:44 chen
root@debian:/home/guest# chown :guest chen
root@debian:/home/guest# ls -l chen
-rwxr-xr-- 1 root guest 0 Apr  6 02:44 chen

2、chgrp:更改文件屬組

語法:

chgrp [-R] 屬組名 文件名

參數選項:

-R:遞歸更改文件屬組,就是在更改某個目錄文件的屬組時,如果加上-R的參數,那麽該目錄下的所有文件的屬組都會更改。

root@debian:/home/guest# ls -l chen
-rwxr-xr-- 1 root root 0 Apr  6 02:44 chen
root@debian:/home/guest# chgrp guest chen
root@debian:/home/guest# ls -l chen
-rwxr-xr-- 1 root guest 0 Apr  6 02:44 chen

3、chmod:更改文件的九個屬性

linux文件屬性有兩種設置方法,一種是數字,另一種是符號。

linux文件的基本權限就有九個,分別是owner/group/others三種身份各有自己的read/write/execute權限。

文件權限的字符為:-rwxrwxrwx 有九個權限,三個為一組,共三組。

其中,我們可以使用數字來代表各個權限,各權限的分數對照表如下:

r:4

w:2

x:1

每種身份(owner/group/others)各自的三個權限(r/w/x)分數是需要累加的,例如當權限為:

[-rwxr-xr-x]的分數則是:

owner=r+w+x=4+2+1=7

group=r-x=4+0+1=5

other=r-x=4+0+1=5

所以該文件權限數字就是755。

chmod的用法:

chmod [-R] xyz 文件或目錄

選項與參數:

xyz:就是剛剛提到的數字類型的權限屬性,為rwx屬性數值的相加。

-R:進行遞歸(recursive)的持續變更,亦即連同次目錄下的所有文件或目錄都會變更。

chmod的用法:

1、通過數字類型改變文件/文件夾的權限

把以下文件夾one的權限從原來的777更改為755,並連同one目錄下的所有文件和文件夾都一起改變。

root@debian:/home/guest# ls -l
total 4
-rwxr-xr-- 1 root guest    0 Apr  6 02:44 chen
drwxrwxrwx 4 root root  4096 Apr  6 03:23 one
root@debian:/home/guest#
root@debian:/home/guest# ls -l one
total 8
drwxrwxrwx 2 root root 4096 Apr  6 03:23 two
drwxrwxrwx 2 root root 4096 Apr  6 03:23 two2
-rwxrwxrwx 1 root root    0 Apr  6 03:23 two.txt
root@debian:/home/guest#
root@debian:/home/guest# chmod -R 755 one
root@debian:/home/guest# ls -l
total 4
-rwxr-xr-- 1 root guest    0 Apr  6 02:44 chen
drwxr-xr-x 4 root root  4096 Apr  6 03:23 one
root@debian:/home/guest#
root@debian:/home/guest# ls -l one
total 8
drwxr-xr-x 2 root root 4096 Apr  6 03:23 two
drwxr-xr-x 2 root root 4096 Apr  6 03:23 two2
-rwxr-xr-x 1 root root    0 Apr  6 03:23 two.txt

2、通過符號類型改變文件/文件夾的權限

[-rwxrwxrwx] 總共九個權限,每三個為一組,分別為屬主、屬組和其他用戶。

屬主使用u(user)表示,屬組使用g(group)表示,其他使用o(other)表示,而使用a(all)則表示所有身份(包含u、g和o)。

用法:

           u         +(加入)        r                
chmod      g         -(減去)        w              文件或目錄
           o         =(設定)        x
           a

如下,使用符號類型更改文件/文件夾的權限。

root@debian:/home/guest# ls -l
total 0
-rw-r--r-- 1 root root 0 Apr  6 03:35 Mr_chan
root@debian:/home/guest#
root@debian:/home/guest# chmod u+x,g+w,o+x Mr_chan
root@debian:/home/guest# ls -l
total 0
-rwxrw-r-x 1 root root 0 Apr  6 03:35 Mr_chan

權限可以增加,也可以減少,如下是去掉所有用戶的執行權限。

root@debian:/home/guest# ls -l
total 0
-rwxrw-r-x 1 root root 0 Apr  6 03:35 Mr_chan
root@debian:/home/guest# chmod a-x Mr_chan
root@debian:/home/guest#
root@debian:/home/guest# ls -l
total 0
-rw-rw-r-- 1 root root 0 Apr  6 03:35 Mr_chan

chown、chgrp和chmod的用法