Linux日記Day3---Linux的檔案屬性與目錄配置

sunddenly發表於2014-09-17

Linux最優秀的地方之一,就在於它的多使用者、多工環境。為了讓使用者具有較安全的管理機制,檔案的許可權管理是很重要的。Linux通常將檔案的訪問方式分為分為三個類別,分別是owner/group/other,而且具有read/write/excute等許可權。在Linux下面這麼多的目錄/檔案,到底代表什麼意義呢?下面我們就來一一介紹。

一、使用者與使用者組

1. 檔案擁有者(使用者)

由於Linux是多使用者、多工的系統,可能常常會多人同時使用主機工作,考慮到每個人的隱私權以及每個人喜好的工作環境,“檔案擁有者”(owner)就相當重要了。例如,將電子郵件轉存為檔案後,放在你自己的主資料夾下,這個時候,就把該檔案設定成“只有檔案擁有者,才能檢視與修改這個檔案的內容”。即使其他人知道您擁有這個檔案,但由於該檔案設定了適當的許可權,他們也無法知道該檔案的內容。

2. 使用者組

使用者組(group)就是具有相同特徵的使用者(user)的集合體;比如有時我們要讓多個使用者具有相同的許可權,比如檢視、修改某一檔案或執行某個命令,這時我們需要使用者組,我們把使用者都定義到同一使用者組,我們通過修改檔案或目錄的許可權,讓使用者組具有一定的操作許可權,這樣使用者組下的使用者對該檔案或目錄都具有相同的許可權,這是我們通過定義組修改檔案的許可權來實現的。

首先說明一點:檔案所有者使用者組本身沒有什麼關係,比如使用者組可以是root,但是檔案所有者為user1;

案例分析:

(1)一個檔案的檔案所有者為user1,使用者組為root,當前登入使用者為user1,

如果想要讓檔案的所有者變成root,能成功嗎?不能

(2)一個檔案的檔案所有者為user1,使用者組為root,當前登入使用者為root,

    如果想要讓檔案的所有者變成root,能成功嗎?

總結一點:改檔案的所有者、使用者組應該是root使用者的職責;

再說明一點:一個使用者總會歸屬於一個或多個使用者組,一個使用者組裡可以有多個使用者,比如root使用者歸屬於root使用者組,但是我們也可以建立一個使用者user1,既歸屬於group1使用者組,又歸屬於group2使用者組;

3.  其他人

在Linux中,任何一個檔案都具有“使用者、使用者組和其他人”三個許可權。我們可以用圖1.1來解釋。此時,以圖中的王三毛為例,王三毛這個“檔案”擁有者王三毛,它屬於王大毛這個使用者組,而張小豬相對於王三毛,則只是一個其他人而已。

image

圖 1.1

解釋:root是Linux和unix系統中的超級管理員使用者帳戶,該帳戶擁有整個系統至高無上的權力,所有物件他都可以操作。

二、Linux檔案許可權

1. Linux檔案屬性

開啟終端,執行ls命令,查詢檔案資訊如下圖所示

clip_image002

注:“連線”的含義:指佔用的節點(i-node即I節點),新建的目錄其下含有“.和..”兩個目錄,連線為2,再新增子目錄,會依次增加連線數,但增加的檔案不會增加連線數。

2. Linux 檔案許可權屬性

範例:若有一個檔案的屬性為“-rwxr-xr—”,注意下面的數字表示第幾位,不表示許可權編碼。

說明如下: [-] [r w x] [r  -  x] [r  -  -]

                 1   2 3 4   5 6 7    8 9 0

1:表示這個檔名為目錄檔案(上面為檔案)。

234:擁有者的許可權(上面為可讀可寫可執行)。

567:使用者組使用者許可權(上面為可讀可執行)。

890:其他使用者許可權(上面為僅可讀)。

(1) 上面的屬性情況表示一個檔案、這個檔案的擁有者可讀、可寫、可執行。但同使用者組的人可讀與執行非同使用者組的使用者僅可讀的意思

(2) 除此之外,需要特別注意的是x。若檔名為一個目錄的時候,x與目錄的關係相當重要,如果在該目錄下不能執行任何命令的話,那麼自然也就無法進入了,因此,請特別注意,如果想要開放某個目錄讓一些人進來的話,請記住,開放該目錄的x屬性。至於目錄的許可權相關說明,我們會在下面繼續介紹。

3. 更改檔案許可權

3.1 檔案許可權三劍客:chgrp , chown , chmod

·chgrp 更改所屬組chgrp [-R] 組名 DIR/FILE(-R 遞迴子目錄下所有檔案、目錄都更新成此組)

                            把DIR或FILE給組名

·chown 更改所有者:chown [選項] 使用者[ . 組] file/dir

                             選項:-V 顯示chown命令所做工作

                                     -R 同上,句點可用“:”代替

·chmod 更改許可權:chmod [-R]nnn 檔案或目錄

注意:shell 檔案用VI編輯後,許可權會改變,需要更改許可權。

3.2 修改許可權的方式

檔案屬性的改變使用chmod命令,但是,屬性的設定方法有兩種,分別可以使用數字或者是符號。

(1) 數字型別改變檔案許可權

Linux檔案的基本屬性有9個,分別是owner/group/others組別的read/write/ excute屬性,先複習一下剛剛上面提到的資料: 

–rwx rwx rwx

這9個屬性是三個一組。其中,可以使用數字來表示各個屬性,各屬性的對照表如下:

許可權代表數:       r→4;   w→2;  x→1

同一組owner/group/others的3個屬性r/w/x是需要累加的,例如當屬性為 [-rwxrwx---] 則是:

owner = rwx = 4+2+1 = 7

group = rwx = 4+2+1 = 7

others= --- = 0+0+0 = 0

所以,等一下設定屬性的更改時,該屬性的數字就是770。

更改屬性的命令chmod的語法是這樣的:

[root@linux ~]# chmod [-R]xyz 檔案或目錄

引數:

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

-R : 進行遞迴( recursive )的持續更改,即連同子目錄下的所有檔案、目錄都更新成為這個使用者組。常常用在更改某一目錄的情況。

(2) 符號型別改變檔案許可權
還有一個改變屬性的方法。從之前的介紹中可以發現,基本上就9個屬性,分別是 (1)user (2)group (3)others三組。我們就可以通過u, g, o來表示三組的屬性。此外,a表示all,即全部的三組。讀寫屬性可以寫成r, w, x。也就是可以使用下面的方式來看:

假如我們要“設定”一個檔案的屬性為“- rwx r-x r-x”,基本上就是:
  user (u):具有可讀、可寫、可執行的許可權。
  group與others (g/o):具有可讀與執行的許可權。
  所以就是: chmod  u=rwx,go=rx  .bashrc
# 注意。那個 u=rwx,go=rx 是連在一起的,中間並沒有任何空格。

相關文章