天天看點

RHCE 學習筆記(6)權限管理

rhel裡面執行ls指令時,可以看見第一個字母來判斷類型。

常見的類型有 

d (目錄)

- (普通檔案)

c (裝置檔案 字元型)

b (裝置檔案,塊檔案)

l ( 軟連接配接,快捷方式)

例如,目錄和普通檔案

RHCE 學習筆記(6)權限管理

裝置檔案

RHCE 學習筆記(6)權限管理

軟連接配接

RHCE 學習筆記(6)權限管理

裝置檔案,塊檔案(硬碟)

RHCE 學習筆記(6)權限管理

首先看看如何更改檔案的所有者 chown, -r表示遞歸的處理所有的子目錄和子檔案,-v表示輸出詳細的變化結果

RHCE 學習筆記(6)權限管理

更改檔案或者目錄的組

RHCE 學習筆記(6)權限管理

具體的權限可以通過中間9位2進制數值來設定,分别代表u(所有者),g(組)和 o (其他人)的 r (讀)w(寫)x(執行)權利

可以用 rwxrwxrwx來表示對應擁有的權限,如果沒有權限,标記-

RHCE 學習筆記(6)權限管理

簡單的例子,可以用u+或者g-來添加或删除權限

a=u+g+o

RHCE 學習筆記(6)權限管理

值得注意的是對于目錄的權限設定,必須至少具有讀和執行的權限才能正常通路。如果隻具有x,那麼隻能cd 進去,但是無法ls内容。

例如,新建立的xx目錄,預設是755權限

RHCE 學習筆記(6)權限管理

去掉其他使用者的讀權限以後

RHCE 學習筆記(6)權限管理

beanxyz使用者可以cd該目錄,但是無法讀取内容

RHCE 學習筆記(6)權限管理

改回來就回複正常通路了

RHCE 學習筆記(6)權限管理

前面說了預設建立的檔案權限是644,目錄權限是755, 這是怎麼回事呢,這是通過umask過濾造成的。

檔案的預設權限本應該是666,而目錄是777,umask的預設值為0022,通過對應位的過濾,就變成了644和755.

1

2

3

4

<code>檔案  (666)           110 110 110</code>

<code>umask(222)            000 010 010</code>

<code>-----------------------------------------------</code>

<code>                        </code><code>110 100 100 (644)</code>

<code>目錄     (777)        111 111 111</code>

<code>umask    (222)         000 010 010</code>

<code>------------------------------------------------</code>

<code>                        </code><code>111 101 101 (755)</code>

類似的給定一個需要的預設權限,如何倒推回去?

比如我需要建立的預設檔案和目錄權限都是444,那麼我的umask應該是多少?

如下所示,對于檔案而言,每個使用者的第三位本身就是沒有權限的,是以不論是否過濾,都是0,對于umask而言,第三位的部分是0 是1都不影響結果; umask可以是333,323,222,223,232,332等等任意組合

對于目錄而言,結果是唯一,隻能是333;

綜上所述,umask的選擇應該是333

<code>檔案    (666)       110 110 110</code>

<code>umask(???)          011 011 011</code>

<code>                     </code><code>100 100 100 (444)</code>

<code>目錄      (777)        111 111 111</code>

<code>umask    (???)          011 011 011 ( 333)</code>

<code>                        </code><code>100 100 100 (444)</code>

權限設定還有兩個特殊的屬性位, s位和t位;

s位位于二進制的可執行程式的u位的時候,簡稱suid,這個時候其他人執行這個程式,具有和所有者相同的權限;

例如使用者可以通過passwd更改自己的密碼,而實際的密碼是儲存在/etc/shadow中的,使用者執行passwd的時候其實是通過所有者root的權限對shadow檔案進行了修改

RHCE 學習筆記(6)權限管理

s位位于目錄的g位的時候,簡稱guid,這個時候的作用是所有新建立的子目錄和檔案會自動的繼承這個組

例如建立一個testgroup組,加到test目錄上

RHCE 學習筆記(6)權限管理

然後修改g位

RHCE 學習筆記(6)權限管理

建立新檔案和目錄

RHCE 學習筆記(6)權限管理

檢視屬性

RHCE 學習筆記(6)權限管理

最後還有一個特殊的屬性位是t 位,他一般是位于目錄的o位置,鎖定檔案不可删除。隻有root和所有者可以删除。比如系統自帶的/tmp就是這樣

RHCE 學習筆記(6)權限管理

簡單的記憶 suid 4, sgid 2, sbit 1

是以,如果将一個可執行檔案設定為 -rwsr-xr-x,可以标記為4755

最後看看隐藏的特殊屬性

chattr 可以設定一些特設性質,比如+a 隻能增加不可減少

RHCE 學習筆記(6)權限管理

+i 不可對檔案進行任何修改

RHCE 學習筆記(6)權限管理

lsattr可以檢視特殊屬性

RHCE 學習筆記(6)權限管理

繼續閱讀