1. 程式人生 > >Linux真小白入門教程第十三集——檔案許可權及安全性

Linux真小白入門教程第十三集——檔案許可權及安全性

ls命令可檢視檔案許可權

輸出結果的第一個欄位即描述了檔案和目錄許可權的編碼

第一個字元代表了物件的型別:

-代表檔案

d代表目錄

l代表連結

c代表字元型裝置

b代表塊裝置

n代表網路裝置

 

後面的三組字元,每組都定義了三種訪問許可權

r 代表物件可讀

w 代表物件可寫

x 代表物件可執行

 

若沒有某種許可權,該許可權位置會出現單破折線代替,分別為(物件的屬主,物件的屬組,系統其他使用者

w位置被取代,說明其他使用者沒有寫的許可權

 

umask命令可以用來顯示和設定所建立檔案和目錄的預設許可權

0022的第一位代表了一項特別的安全特性,叫做“黏著位”(後續會講到這個東西)

後面三位表示檔案或者目錄對應的umask八進位制值,將每一個八進位制位其轉化為3位二進位制

三位的八進位制數分別代表了屬主、屬組和其他使用者的讀寫許可權,例如664代表了屬組和屬主成員都有讀和寫的許可權,而其他使用者只有讀的許可權。

掩碼:指的是一串二進位制數字,通過與目標數字的按位操作達到遮蔽指定位而實現需求。

Linux系統上預設的八進位制umask值為022,但umask值只是個掩碼它會遮蔽掉不想授予該安全級別的許可權

對於檔案來說,全許可權是666,所有使用者都有讀和寫的許可權

對於目錄來說,全許可權是777,所有使用者都有讀寫和執行的許可權

所以檔案一開始是666,減去umask值022後,剩下的檔案許可權就變成了644。

在大多數的Linux的發行版中,umask值通常會設定在/etc/profile啟動檔案

可以用umask命令為預設umask設定指定一個新值

將umask設定為026後,檔案的許可權變為640

將umask設定成026後,目錄的許可權變為751

 

chmod命令可以用來改變檔案和目錄的安全性設定

chmod options mode file

mode引數可以使用八進位制模式或符號模式進行安全性設定

八進位制模式直接使用希望賦予檔案的標準3位八進位制許可權碼即可。

符號模式則更加複雜

[ugoa ]

[+-=]

[rwxXstugo]

 

第一組符號:u代表使用者,g代表組,o代表其他,a代表上述所有

第二組符號:+表示像在現有許可權上增加許可權,-代表在現有許可權上移除許可權,=表示將許可權設定為後面的值

第三組符號:表示代表作用到設定上的許可權

 X:如果物件是目錄或者它已有執行許可權,賦予執行許可權。 s:執行時重新設定UID或GID。 t:保留檔案或目錄。 u:將許可權設定為跟屬主一樣。 g:將許可權設定為跟屬組一樣。 o:將許可權設定為跟其他使用者一樣。

u-x 移除了屬主已有的執行許可權ls的 -F 引數可以再具有執行許可權的檔名後加一個星號*(這裡被移除了)

 

改變所屬關係

chown命令用來改變檔案的屬主

chgrp命令用來改變檔案的預設屬組

命令格式如下

chown options owner[.group] file

chown也可以同時改變屬主和屬組

也可以只改變屬組

(注意:只有root使用者能改變檔案的屬主,任何屬主都可以改變檔案的屬組但前提是屬主必須是原屬組和目標屬組的成員

 

chgrp命令可以改變檔案或目錄的預設屬組

此時使用者賬戶必須是檔案的屬主,除了能夠更換屬組之外,還得是新組的成。這是Linux共享檔案的一個途徑。

 

共享檔案在Linux上的實現方式是建立組

建立新檔案時,Linux會用預設的UID和GID給檔案分配許可權,如果想讓其他人也能夠訪問檔案,要麼改變其他使用者所在組的訪問許可權,要麼就給檔案分配一個包含其他使用者的新預設組

chmod命令修改SGID或者SUID都可以實現大範圍環境中建立文件並將文件與人共享。

SGID位強制某個目錄下建立的新檔案或目錄都沿用該父目錄的屬組,而不是建立這些檔案的使用者的屬組。這可以為系統的使用者之間共享檔案提供一個簡便的途徑。