天天看點

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

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

常見的類型有 

d (目錄)

- (普通檔案)

c (裝置檔案 字元型)

b (裝置檔案,塊檔案)

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

例如,目錄和普通檔案

<a href="http://s3.51cto.com/wyfs02/M01/57/5C/wKioL1SY8ceR4ZVdAADMrkkhPa8939.jpg" target="_blank"></a>

裝置檔案

<a href="http://s3.51cto.com/wyfs02/M01/57/5E/wKiom1SY8R-AaZovAABJjBHTsqs564.jpg" target="_blank"></a>

軟連接配接

<a href="http://s3.51cto.com/wyfs02/M02/57/5C/wKioL1SY8cqj5ajDAABnAy4ooZI544.jpg" target="_blank"></a>

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

<a href="http://s3.51cto.com/wyfs02/M02/57/5E/wKiom1SY8SPwQ0LBAABXm2TYFPo445.jpg" target="_blank"></a>

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

<a href="http://s3.51cto.com/wyfs02/M02/57/5F/wKiom1SY_tyju1BoAACb5nCc26s598.jpg" target="_blank"></a>

更改檔案或者目錄的組

<a href="http://s3.51cto.com/wyfs02/M02/57/5F/wKiom1SY_p7gMMBxAAB7QQaN8NU896.jpg" target="_blank"></a>

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

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

<a href="http://s3.51cto.com/wyfs02/M00/57/5F/wKiom1SY_qCwsmWOAABOi9CKToA768.jpg" target="_blank"></a>

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

a=u+g+o

<a href="http://s3.51cto.com/wyfs02/M01/57/5D/wKioL1SY_0vhOpH-AADKBDEClkU746.jpg" target="_blank"></a>

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

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

<a href="http://s3.51cto.com/wyfs02/M01/57/5F/wKiom1SY_qOQEAK3AABOdHh-MGU170.jpg" target="_blank"></a>

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

<a href="http://s3.51cto.com/wyfs02/M02/57/5D/wKioL1SY_0-RNd4qAABjssCx_30393.jpg" target="_blank"></a>

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

<a href="http://s3.51cto.com/wyfs02/M02/57/5F/wKiom1SY_qeTGMP2AABhcGRVnH4485.jpg" target="_blank"></a>

改回來就回複正常通路了

<a href="http://s3.51cto.com/wyfs02/M02/57/5F/wKiom1SY_qmQG0_RAABbJdhJbIY716.jpg" target="_blank"></a>

前面說了預設建立的檔案權限是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檔案進行了修改

<a href="http://s3.51cto.com/wyfs02/M00/57/60/wKiom1SZCEaSSWvzAACdFBgpxyw322.jpg" target="_blank"></a>

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

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

<a href="http://s3.51cto.com/wyfs02/M00/57/5E/wKioL1SZCPLC_S9AAACnUUkYbIk152.jpg" target="_blank"></a>

然後修改g位

<a href="http://s3.51cto.com/wyfs02/M00/57/60/wKiom1SZCEryHaeeAABod9NMLtw006.jpg" target="_blank"></a>

建立新檔案和目錄

<a href="http://s3.51cto.com/wyfs02/M01/57/5E/wKioL1SZCPXSXk0iAABFjvRX26E297.jpg" target="_blank"></a>

檢視屬性

<a href="http://s3.51cto.com/wyfs02/M01/57/5E/wKioL1SZCPfC_UsJAABzAEqkWFk023.jpg" target="_blank"></a>

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

<a href="http://s3.51cto.com/wyfs02/M01/57/60/wKiom1SZCE_BgRPqAABOpQqRIw0952.jpg" target="_blank"></a>

簡單的記憶 SUID 4, SGID 2, SBIT 1

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

最後看看隐藏的特殊屬性

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

<a href="http://s3.51cto.com/wyfs02/M00/57/60/wKiom1SZCyrSZ2u1AAEF4k3EoRI160.jpg" target="_blank"></a>

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

<a href="http://s3.51cto.com/wyfs02/M02/57/60/wKiom1SZC0rxOEgKAACfSTJK43M299.jpg" target="_blank"></a>

lsattr可以檢視特殊屬性

<a href="http://s3.51cto.com/wyfs02/M00/57/60/wKiom1SZC2yw0d9hAABLZAX28OE409.jpg" target="_blank"></a>

本文轉自 beanxyz 51CTO部落格,原文連結:http://blog.51cto.com/beanxyz/1593816,如需轉載請自行聯系原作者

繼續閱讀