linux檔案許可權系統之初體驗

來源:互聯網
上載者:User

Linux中的一切都是檔案,它的檔案分為以下幾類:

普通檔案:分為純文字檔案(ASCII檔案,一般可以直接讀取的檔案,比如設定檔)、二進位檔案(比如可執行檔),資料格式檔案(比如登陸檔案);

目錄檔案:就是目錄

串連檔案:類似windows的捷徑

裝置檔案:通常在/dev中,又分為塊裝置檔案和字元裝置檔案,塊裝置是以字元塊為傳輸單位,而字元裝置是以單個字元為傳輸單位。

通訊端:  這類檔案通常作用於網路資料連線中,通常放在/var/run目錄中

管道檔案:用於多個進程間的通訊,它是指上是一個檔案緩衝區

 

當我們使用ls –al這條命令列出目錄中的檔案資訊時,我們可以看到它的檔案屬性是以下格

式:-rwxrwxrwx,其中’-’這個表示檔案類型:

【d】表示目錄;【-】表示檔案;【l】表示串連檔案;【b】表示塊裝置檔案;【c】表示字元設

備檔案;

而後面的9個屬性又分為三組,沒三個一組,分別表示使用者,群組和其它。其中【r】表示

可讀;【w】表示可寫;【x】表示可執行。同時,這三種屬性可以分別用數字來表示:

【r】:4;【w】:2;【x】:1

以上所述是檔案的基本許可權,此外,linux下的檔案還有三個特殊的許可權:SUID/SGID/Sticky Bit

SUID:當s許可權取代user的x時,也就是類似-r-s—x—x,稱為set UID,簡稱為SUID,這時,當

使用者執行這個檔案時,就會暫時得到這個檔案擁有者的許可權。

setGID:與SUID類似,只不過它的s是取代群組的x。

SBIT:當t許可權取代其它的x時,就表示SBIT,它只對目錄有效,對檔案沒有任何效果。在具

有SBIT的目錄下,使用者若再該目錄下具有w及x的許可權,則當使用者在該目錄下建立檔案或

目錄時,只有檔案擁有者與root才有許可權刪除。

 

檔案許可權的更改

Chgrp:改變檔案所屬群組

用法:chgrp [-R] dirname/filename;//下列的-R參數統一為目錄下檔案的遞迴

例:chgrp users install.log

 

Chown:改變檔案擁有者

用法:chown [-R] 擁有者檔案或目錄

      Chown [-R] 擁有者:群組 檔案或目錄

例:chown huli install.log

    Chown huli:usersinstall.log

注意:當我們使用cp將自己的檔案拷貝給另一個使用者時,該檔案的擁有者和群組並沒有改

變,因此,要讓這個檔案徹底地屬於這個使用者,還必須修改該檔案的擁有者和群組。

 

Chmod:變更檔屬性

前面已經提到過,r,w,x三個屬性分別對應的數字是4、2、1。而9個屬性又分為三組,那麼

一組的屬性就是這三個屬性的的累加。

例如,當屬性為【-rwxr-x---】時,可知

Owner=rwx=4+2+1=7;group=r-x=4+1=5;others=---=0+0+0=0;

這個檔案的許可權就為750

用法:chmod [-R] xyz 檔案或目錄

其中xyz就是剛剛提到的檔案許可權,如上面的750

例:chmod 777 ~/.bashrc

 

還有一種變更檔許可權的方法。可以使用u,g,o分別表示三組的屬性,a表示all,文法如下:

Chmod [ugoa][+-=] [rwx] 檔案或目錄

參數:

其中u表示使用者,g表示群組,o表示其他,a表示所有,+表示加入屬性,-表示減去屬性

=表示設定屬性。

例:chmod u=rwx,go=rx ~.bashrc

    Chmod a+w~/.bashrc

    Chmod a-x~/.bashrc

 

注意:目錄屬性有一個特別之處,那就是能否進入它與x這個屬性有關

例:cd /tmp

    Mkdir testing

    Chmod 766testing

    Su huli

    Cd testing;//permissiondenied

可以看到,在上面的例子中,我在/tmp下建立了一個目錄,並將目錄的許可權更改為【rwxrw-rw-】

然後將切換到huli這個使用者下,可以看到,該使用者對於這個目錄有讀寫的許可權,但是沒有執

行許可權,這時,我使用cd命令進入這個目錄,會看到permission denied的提示資訊,表示

沒有許可權進入該目錄。這時,如果你將x許可權補上,chmod o+x testing,再使用cd命令,便

可以順利進入該目錄。

由此可知,能否進入該目錄是與x屬性息息相關的。

 

前面提到過SUID/SGID/SBIT這幾個許可權,那麼這裡就理所當然地要涉及到這幾個許可權的設定。

與普通屬性相似,SUID/SGID/SBIT所對應的數字也為4、2、1

例:將檔案的許可權更改為【-rwsr-xr-x】

chmod 4755 test

將檔案的許可權更改為【-rwxr-sr-t】

Chmod 3755 test

由此可知,這三個許可權是設定在最前面。

注意:當一個檔案的許可權為【-rw-rw-rw-】時,我們再來更改這幾個特殊許可權試試看

Chmod 7666 test;ls –l test

可看到,列印出的結果為【rwSrwSrwT】,為什麼是大寫的S和T呢,這是因為檔案原來的基礎屬性中,使用者,群組和其它中都沒有x這個屬性,而SUID表示“該檔案在執行時,具有檔案擁有者的許可權”,但檔案擁有者都無法執行了,又哪來的許可權給別人呢,因此,大寫的S和T都表示空的意思。

 

檔案與目錄的預設許可權

當我們建立立一個檔案或者目錄時,它的預設屬性是什麼呢?這就與umask相關。umask就是“檔案或者目錄的屬性預設值要減掉的許可權”。如果查看umask值和檔案或者目錄的屬性預設值呢?

Umask有兩種方式來查看。

第一種是直接使用umask

0022

第一組數字就是指剛才講到的特殊屬性

第二種是以符號的形式列印unmask  -S

U=rwx,g=rx,o=rx

 

檔案與目錄的屬性預設值也是不一樣的。預設許可權下,檔案是沒有可執行許可權的,也就是

666,【-rw-rw-rw-】;

而由於x與是否進入此目錄有關,因此預設為所有許可權開放,即為777,【drwxrwxrwx】;

當建立立一個檔案或者目錄時,它們的屬性就是上面的預設屬性減去umask的值。

 

檔案的隱藏屬性

檔案有隱藏屬性,在系統安全性方面,該隱藏屬性非常的重要

Chattr:設定檔案隱藏

用法:chattr [+-=] [ASacdistu] 檔案或者目錄名

所有的參數就不一一列舉了,這裡只列舉兩個比較重要的參數

a:設定了a之後,這個檔案只能增加資料,而不能刪除,只有root才能設定這個屬性。

i:它的作用很大,它可以讓一個檔案“不能被刪除、改名、設定串連,也無法寫入或者增加資料”

注意:這兩個屬性是較常用的屬性,而且只有root才能設定

 

lsattr:顯示檔案的隱藏屬性

格式:lsattr [-aR] 檔案或者目錄

-a表示將隱藏檔案的屬性也顯示出來,而-R連同子目錄的屬性也一併列出來。

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.