Linux權限管理——基本權限

修改權限命令chmod

chmod  [選項]  模式  文件名
選項:-R遞歸修改權限

模式:

模式分爲兩類:

1.ugoa

字母依次代表所屬人,所屬組,其他人和所有人(全部人)。

在這個模式下,使用+-增加或者刪除某個權限即可。

例如:

chmod u+x 文件名

意思即爲所屬人增加執行權限。

這種模式使用的並不常見,需要事先知道文件的權限。

2.421模式

意思即爲用數字421表示權限,r爲4,w爲2,x爲1。

某個組的權限用他們的權限的和表示。

例如,修改所屬人的權限爲7,即所屬人的權限爲rwx。

因爲4,2,1分別代表二進制數字,所以求和並不會產生歧義。

這個模式是常用的修改權限模式。


常用的權限:

777 最高權限

644 普通文件權限

755 執行文件權限

等等。


權限的作用:

權限對於文件和目錄具有不同的作用,雖然好像都是rwx,但是對於文件和目錄的作用的表現形式是不同的。

我們知道,Linux文件系統存儲文件會在表中創建一個項,這個表叫Inode Table。

其他的字段在這裏我都不關注,只關注inode-no編號和pointer兩個字段。


存儲的文件會大致是這樣的形式。

目錄內容指向文件,文件內容指向某一塊區域,包含實際內容。


所以對於文件,權限的作用如下:

r: 讀取文件內容

w: 編輯,新增,修改文件內容

x: 執行文件

需要注意的是,對於文件,即使有w權限,我們也無法刪除這個文件,只能對文件內容進行修改。


對於目錄:

r:可以查詢目錄下包含哪些文件

w:可以修改目錄結構。例如刪除某個文件,創建某個文件

x:進入目錄


到這裏我們就知道了,權限對於文件來說,就是操作文件本身,x就是進入pointer去執行。

所以r,w都只能對文件本身進行修改,而刪除文件等是修改了上一級目錄的結構。

對於文件來說:最高權限爲x。

對於目錄來說:最高權限爲w。



權限我們知道如何設置了。那麼我們需要對用戶進行分類分組等等操作。

修改文件所有者:chown(change owner)

chown 用戶名 文件名
修改文件所屬組:chgrp(change group)

chgrp 組名 文件名



默認權限

在linux中,一個剛剛創建的文件,使用touch創建出來的文件是有一個默認權限的,即爲644。

在windows系統中,也是存在默認權限的,windows系統中使用的是繼承權限,繼承上一級目錄中的權限。


在Linux中如何查看默認權限呢?

使用umask命令即可查看默認權限。

[root@localhost ~]# umask
0022
這個是什麼意思呢?

第一個0:文件特殊權限

第二個0:讀權限

第一個2:寫權限

第二個2:執行權限。


再其次我們需要只要一些規則:

對於文件:

1.默認不能建立執行文件

2.默認文件最大權限爲666

對於目錄:

1.默認最大權限爲777


到這裏我們還是不知道默認權限是怎麼來的?

實際上默認權限是當前文件最大權限與umask設置的權限做邏輯異或運算得到的權限。

例如:

對於文件默認爲666。即4+2,4+2,4+2。在二進制中即爲110,110,110。

而umask設置的默認權限爲022。二進制即爲000,010,010。

做邏輯異或運算得到什麼呢?

最終就得到110,100,100.也就是644。可以簡單的理解爲減法。

同樣的,目錄得到的默認權限即爲111,101,101.也就是755。


我們可以修改umask的值來測試是否如此。

原本:

[root@localhost ~]# mkdir test
[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1209 Apr 25 11:20 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 May  3 16:18 test
[root@localhost ~]# 
修改:

[root@localhost ~]# umask 0000
[root@localhost ~]# umask
0000
[root@localhost ~]# mkdir test2
[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1209 Apr 25 11:20 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 May  3 16:18 test
drwxrwxrwx. 2 root root    6 May  3 16:20 test2
[root@localhost ~]# 
最後得到的test2目錄爲777。


使用umask修改的值爲臨時修改,如果要永久修改,可以到/etc/profile文件下進行修改。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章