1. 程式人生 > >java程式設計師菜鳥進階(十七)linux基礎入門(五)linux檔案/目錄的許可權和歸屬管理

java程式設計師菜鳥進階(十七)linux基礎入門(五)linux檔案/目錄的許可權和歸屬管理


在linux中的每一個檔案或目錄都包含有訪問許可權,這些訪問許可權決定了誰能訪問和如何訪問這些檔案和目錄。相應的每一個檔案和目錄都有所屬的屬主和屬組,合理的設定檔案和目錄的屬組和屬主在檔案/目錄管理中佔據著很重要的地位,所以,今天我就和大家一起來看一下有關檔案/目錄的許可權和歸屬的相關設定

 


做個廣告:我參加CSDN舉辦的部落格之星評選,希望得到大家的支援!


投票地址:點我投票




一. 訪問許可權


在linux中使用者對檔案和目錄的訪問許可權包括:讀取、寫入、可執行三種許可權,每一種許可權都代表使用者執行不同的操作。

 

1.讀取:允許檢視檔案內容、顯示目錄列表等操作,簡單來說,就是隻能看,其他什麼也幹不了。字母r表示

2.寫入:允許修改檔案內容,允許在目錄中新建、移動、刪除檔案或子目錄。字母w表示

3.可執行:允許執行程式、切換目錄。字母x表示

4.無許可權(自定義):什麼許可權都沒有,連檢視內容都不行

 

二.歸屬(所有權)


所謂歸屬即為檔案屬於哪個使用者或者使用者組。


屬主:擁有該檔案或目錄的使用者帳號(本檔案所屬的使用者)

屬組:擁有該檔案或目錄的組帳號(本使用者所屬的組)

 

在上面我們知道每一個使用者都有它自身的讀、寫和執行許可權。這樣也就形成了,linux使用者有三套許可權控制。第一套許可權控制訪問自己的檔案許可權,即所有者許可權。第二套許可權控制使用者組訪問其中一個使用者的檔案的許可權。第三套許可權控制其他所有使用者訪問一個使用者的檔案的許可權,這三套許可權賦予使用者不同型別(即所有者、使用者組和其他使用者)的讀、寫及執行許可權就構成了一個有9種類型的許可權組。簡單以一個例子看一下這9種類型的許可權組:

 

[[email protected] ~]# ls -l install.log
  -rw-r--r--  1    root    root   34298    04-02   00:23   install.log


分析:

1.  ls –l 命令以長格式的形式檢視當前目錄下所有檔案,包括隱藏的,當後面跟的是檔案時,即為檢視檔案的詳細資訊(許可權資訊)

2.  “-rw-r--r--”部分的第一個字元表示檔案型別,可以是d(目錄)、b(塊裝置檔案)、c(字元裝置檔案),減號“-”(普通檔案)、字母“l”(連結檔案)等

3.  “-rw-r--r--”除了第一個字元外,其餘部分指定了檔案的訪問許可權,分別代表屬主許可權、屬組許可權、普通使用者許可權。每類使用者許可權佔三個字元,分別代表是否具有“讀-寫-執行”許可權,有相應的許可權即用相應的字母表示

4.   r、w、x、- 許可權字元還可分別表示為8進位制數字4、2、1、0(為什麼用八進位制數表示呢?大家可以想想。)

 

三. 相關命令


1. 設定檔案/目錄的許可權:chmod命令


(1)格式1:chmod   [ugoa]  [+-=] [rwx]  檔案或目錄...


解釋:

1.    u、g、o、a 分別表示屬主、屬組、其他使用者、所有使用者 ,即為你要設定的使用者物件是誰,可以同時設定,也可以單獨為每一型別設定。

2.    +、-、= 分別表示增加、去除、設定許可權

3.    Rwx即為對應的許可權字元(讀寫執行)。

 

(2)格式2:chmod nnn 檔案或目錄...

 

解釋:


1.nnn代表3位八進位制數,每一位分別代表屬主、屬組、其他使用者對該檔案的許可權和。所謂許可權和即為相應使用者對該檔案能否讀、寫、執行許可權相加的值。

比如;屬主對某檔案設定可讀(4)、不可寫(0)、可執行(1),這樣第一個n就可設定為4+1=5.

2.這種格式命令相對來說可以快速設定某一檔案的許可權。


(3)補充:常用命令選項


-R:遞迴修改指定目錄下所有檔案、子目錄的許可權

 

(4)例子:

重新設定aa.txt檔案的許可權,為屬主使用者新增執行許可權,去除其他使用者的讀取許可權


[[email protected] ~]# chmodu+x,o-r  aa.xtx
[[email protected] ~]# ls-l aa.xtx
-rwxr----- 1 root root 29588 05-12 06:19 aa.xtx
—— 重新設定aa.xtx檔案的訪問許可權,恢復為“rwxr-xr-x”
[[email protected] ~]# chmod755 aa.xtx
[[email protected] ~]# ls-l aa.xtx
-rwxr-xr-x 1 root root 29588 05-12 06:19 aa.xtx
—— 使用遞迴的方式將“/usr/src/”目錄中所有子目錄、檔案的許可權都設定為“rw-r--r--”
[[email protected] ~]# chmod-R 644 /usr/src/
——“nnn”為需要設定的具體許可權值,如“755”、“644”等


 

2. 設定檔案/目錄的歸屬chown命令


格式:chown  屬主   檔案或目錄

chown  :屬組  檔案或目錄

chown  屬主:屬組  檔案或目錄

 

常用命令選項-R:遞迴修改指定目錄下所有檔案、子目錄的歸屬

相對於修改許可權來說,設定檔案和目錄的歸屬就相對來說簡單了,下面我們來看一個例子:

 

設定檔案afile的屬主為使用者st01

# chown st01 afile

設定檔案afile的屬組為使用者組class1

# chown :class1 afile

設定檔案afile的屬主為st03,並設定檔案的屬組為class2

# chown st03:class2 afile