LINUX檔案許可權

2021-09-20 01:50:03 字數 3941 閱讀 3862

系統環境:centos linux release 7.3.1611 x86_64 gnu/linux

linux檔案的基本屬性共有9個,分別對應u|g|o組別的r|w|x屬性,如下例所示:

# ll rainbow.html 

-rw-r--r-- 1 rethink rethink 207988 aug 11 13:35 rainbow.html

[檔案屬性] [連線數] [屬主] [屬組] [檔案大小] [修改日期] [檔名]

檔案屬性的第一位表示此檔案的型別,常見的型別如下:

[d]  表示為目錄

[-] 表示為檔案

[l] 表示為link file 鏈結檔案

[b] 表示為裝置檔案中可供儲存的介面裝置

[c] 表示為裝置檔案中的序列介面裝置,如滑鼠、鍵盤等

接下來的屬性中,將三個劃分一組,共三組,每組均為[rwx-]引數的組合,其中[r]表示可讀(read),[w]表示可寫(write),[x]表示可執行(excute)。

rainbow.html檔案為例:

第一組為檔案擁有者的許可權(u),檔案擁有者rethink的許可權為rw-,即讀寫許可權;

第二組為與檔案擁有者同組的使用者許可權(g),同組使用者只有讀許可權,檢視某個使用者的屬組可以使用以下方法:

# id dockerroot

uid=997(dockerroot) gid=994(dockerroot) groups=994(dockerroot)

# cat /etc/passwd | grep dockerroot

dockerroot:x:997:994:docker user:/var/lib/docker:/sbin/nologin

第三組為其他非本使用者組的許可權(o);

更改檔案屬組:chgrp

改變檔案所屬使用者組很簡單,直接使用chgrp命令即可,chgrp是"change group"的縮寫,要注意,修改後的使用者組名稱必須在/etc/group檔案中存在,不然就會顯示錯誤。

# ll rainbow.html 

-rw-rw-r-- 1 rethink rethink 21 oct 1 11:47 rainbow.html

# chgrp test1 rainbow.html

'檔案屬組已被改變'

# ll rainbow.html

-rw-rw-r-- 1 rethink test1 21 oct 1 11:47 rainbow.html

注意:如果是遞迴更改目錄的屬組,則需要加上-r引數,即將子目錄下所有的檔案和目錄的屬組都更新為此使用者組。

chgrp -r rain/
更改檔案屬主:chown和上乙個命令相對應,chown是"change owner"的縮寫。要注意,修改後的使用者必須是已在/etc/passwd中存在,不然就會顯示錯誤。接上乙個例子:

# chown test1 rainbow.html 

'檔案屬主已由rethink變為test1'

# ll rainbow.html

-rw-rw-r-- 1 test1 test1 21 oct 1 11:47 rainbow.html

注意:如果是遞迴更改目錄的屬主,則需要加上-r引數,即將子目錄下所有的檔案和目錄的屬主都更新為此使用者。

一般來說,chgrp命令用來修改屬組,chown命令用來修改屬主。但其實用chown乙個命令就夠了,它的完整命令格式為:

chown/chgrp  引數 屬主:屬組  檔案或目錄名
用冒號連線新的屬組和屬主,二者之一可以為空,但是冒號不能省略,比如:

# ll rainbow.html 

-rw-rw-r-- 1 test1 test1 21 oct 1 11:47 rainbow.html

'同時修改屬組和屬主'

# chown test12:test12 rainbow.html

# ll rainbow.html

-rw-rw-r-- 1 test12 test12 21 oct 1 11:47 rainbow.html

'只修改屬組,注意冒號不能省略'

# chown :dockerroot rainbow.html

# ll rainbow.html

-rw-rw-r-- 1 test12 dockerroot 21 oct 1 11:47 rainbow.html

補充:chown命令支援的引數有:

-c或--changes  效果類似"-v"引數,但僅回報更改的部分。 

-f或--quite或--silent  不顯示錯誤資訊。

-h或--no-dereference  之對符號連線的檔案作修改,而不更動其他任何相關檔案。

-r或--recursive  遞迴處理,將指定目錄下的所有檔案及子目錄一併處理。

-v或--version  顯示指令執行過程。

--dereference  效果和"-h"引數相同。

--reference=《參考檔案或目錄》  把指定檔案或目錄的擁有者與所屬群組全部設成和參考檔案或目 錄的擁有者與所屬群組相同。

--version  顯示版本資訊。

更改檔案屬性:chmod使用chmod命令用來改變檔案的屬性,設定方法支援使用數字或者是符號。

使用數字型別改變檔案許可權

檔案的可讀、可寫和可執行許可權可以用數字表示,即:

r:4

w:2x:1

將同屬組的3個檔案屬性代表的數字相加,如當檔案屬性為[-rwxrw-r--],則可以表示為:

u(owner)=r+w+x=4+2+1=7

g(group)=r+w=4+2=6

o(other)=r=4

當設定的屬性更改時,該檔案屬性對應的數字就是764,命令格式為:

chmod [-r] 764 filename
使用符號型別改變檔案許可權

下圖中,a 表示all ,即u|g|o三者的並集,我們可以通過運算符號來修改檔案屬性。

例如,我們要把rainbow.html檔案的許可權屬性設定為-rwxr-xr-x,應該這樣做:

chmod u=rwx,go=rx rainbow.html
如果想增加rainbow.html檔案的寫入許可權,去除原有的執行許可權,應該這樣做:

chmod a+w,a-x rainbow.html
【to be continue...】

Linux檔案許可權

linux使用者分為 擁有者 組群 group 其他 other linux系統中,預設的情況下,系統中所有的帳號與一般身份使用者,以及root的相關資訊,都是記錄在 etc passwd檔案中。每個人的密碼則是記錄在 etc shadow檔案下。此外,所有的組群名稱記錄在 etc group內!圖...

Linux檔案許可權

linux使用者分為 擁有者 組群 group 其他使用者 other linux系統中,預設的情況下,系統中所有的帳號與一般身份使用者,以及root的相關資訊,都是記錄在 etc passwd檔案中。每個人的密碼則是記錄在 etc shadow檔案下。此外,所有的組群名稱記錄在 etc group...

linux檔案許可權

檔案的許可權由三個部分組成 u user g group o other 每個部分的許可權又分別 r 4讀 w 寫2 x 執行1 下面以 var www資料夾設定許可權,了解如何設定檔案許可權 chmod a x var www 所有人都可進入 chmod a x var www 所有人都不可進入 ...