chmod、chown、umask、lsattr和chattr命令

9月14日任務centos

2.14 文件和目錄權限chmodbash

2.15 更改全部者和所屬組chowncentos7

2.16 umaskspa

2.17 隱藏權限lsattr/chattr3d

 

文件/目錄權限 chmod

預備知識

  • 全部者user:擁有該文件/目錄的用戶code

  • 所屬組group:擁有該文件/目錄的羣組同步

ls命令查看文件、目錄的詳細信息時,其第一個字段例如"-rwxr--r--.",將除首尾外的9位每3位爲一組,ast

分別是其全部者(u)、所屬組(g)、其餘用戶(o)對該文件/目錄的權限。class

幾種具體用法(例rwxr-xr-x)

注意,使用表示式方式修改權限,-不要寫,如g=r-x是錯誤的寫法!!須要寫成g=rx!!test

 

數字/表達式轉換

  • r - 讀權限 - 4

  • w - 寫權限 - 2

  • x - 執行權限 - 1

重要參數: -R

  • chmod -R 權限 DIR

一次性修改目錄及其下屬文件、目錄的權限

[root@centos7 test]# ll
總用量 0
----------. 1 root root 0 ... file1
----------. 1 root root 0 ... file2
-rwxrwxrwx. 1 root root ... file3
# 數字形式
[root@centos7 test]# chmod 755 file1
# 表達式形式
[root@centos7 test]# chmod u=rwx,g=rx,o=rx file2
# 刪減形式
[root@centos7 test]# chmod g-w,o-w file3

[root@centos7 test]# ll
總用量 0
-rwxr-xr-x. 1 root root 0 ...  file1
-rwxr-xr-x. 1 root root 0 ... file2
-rwxr-xr-x. 1 root root 0 ... file3

修改文件、目錄的全部者/所屬組 chown

chown命令能夠只修改全部者,也能夠只修改所屬組,也能夠同時修改其所屬主和所屬組。以下方的幾個重要用法

幾個具體用法

說明:

  • 只修改全部者:chown castiel file1

  • 只修改所屬組:chown :castiel file2

  • 同時都修改:chown castiel:castiel file3

重要參數:-R

一次性修改目錄及其內的文件目錄的全部者、所屬組:chown -R DIR

[root@centos7 test]# ls -l
總用量 0
-rw-r--r--. 1 root root 0 ... file1
-rw-r--r--. 1 root root 0 ... file2
-rw-r--r--. 1 root root 0 ... file3

[root@centos7 test]# chown castiel file1
[root@centos7 test]# chown :castiel file2
[root@centos7 test]# chown castiel:castiel file3

[root@centos7 test]# ls -ll
總用量 0
-rw-r--r--. 1 castiel root    0 ... file1
-rw-r--r--. 1 root    castiel 0 ... file2
-rw-r--r--. 1 castiel castiel 0 ... file3
[root@centos7 test]# ls -l
總用量 0
drwxr-xr-x. 2 root root 6 ... dir1
-rw-r--r--. 1 root root 0 ... file1
[root@centos7 test]# ls -ld /test/
drwxr-xr-x. 3 root root 31 ... /test/

[root@centos7 test]# chown -R castiel /test/

# /test目錄以及內部的文件目錄的全部者被一次性改變!
[root@centos7 test]# ls -l
總用量 0
drwxr-xr-x. 2 castiel root 6 ... dir1
-rw-r--r--. 1 castiel root 0 ... file1
[root@centos7 test]# ls -ld /test/
drwxr-xr-x. 3 castiel root 31 ... /test/

默認權限 umask

root用戶的umask值爲0022,普通用戶的umask值爲0002。 系統默認建立的權限是跟系統設置的umask值有關的!

對於root用戶

  • 默認的目錄權限爲:0777-0022=0755(rwxr-xr-x);

  • 默認的文件權限爲:0666-0022=0644(rw-r--r--)。

計算方法是先將數字轉換爲rwx再進行計算。

 

同理,對於普通用戶

  • 默認的目錄權限爲0775;

  • 默認的文件權限爲0664。

修改umask值,默認建立的文件/目錄的權限也會隨之變化!

 

隱藏權限 lsattr/chatter

查看隱藏權限:lsattr

默認查看一個目錄下的文件或子目錄的隱藏權限;若是要查看目錄自己須要加上-d參數!

  • lsattr -R DIR

能夠一次性查看目錄及其下層文件、目錄的隱藏權限

修改隱藏權限:chattr

  • chattr +i file 沒法修改文件(也不能追加)

  • chattr +a file 沒法修改文件,可是能夠追加內容

沒法修改的具體表現爲:沒法刪除、修改內容、追加內容、重命名、修改時間。a參數可追加內容,i參數不可追加,其餘方面全部都相同。

重要參數:-R

  • chattr -R DIR

一次性修改目錄及其下屬文件、目錄的隱藏權限!

chattr權限對於目錄有一點不一樣:對於目錄中已經存在的文件,能夠進行修改;目錄中不存在的新建的文件將沒法建立

(可是對於設置+a參數的目錄,能夠執行追加建立新文件,但沒法刪除)!

 

拓展:其餘chattr可用參數

  • A 設置了該參數的文件或目錄的atime不可修改

  • s 數據會自動同步寫入磁盤

  • c 自動壓縮該文件,讀取時自動解壓

 

補充知識點:目錄必須須要x權限才能執行:要在目錄下建立、修改文件,必須先進入該目錄!!

[root@centos7 ~]# chattr +a 111
[root@centos7 ~]# echo "1" >> 111/1.txt
[root@centos7 ~]# echo "1" > 111/2.txt
[root@centos7 ~]# rm -f 111/1.txt
rm: 沒法刪除"111/1.txt": 不容許的操做

[root@centos7 ~]# chattr +i 111/
[root@centos7 ~]# touch 111/3.txt
touch: 沒法建立"111/3.txt": 權限不夠
[root@centos7 ~]# echo "111" >> 111/3.txt
-bash: 111/3.txt: 權限不夠
相關文章
相關標籤/搜索