文件/目錄權限chmodlinux
#查看目錄/文件的權限 [root@linux1 ~]# ls -l /tmp/a/ 總用量 0 drwxr-xr-x. 2 root root 6 10月 24 09:28 2 # drwxr-xr-x 一共有十位數,其中:最前面第一位表示類型 #前三個表明 全部者(user)擁有的權限 #中間三個表明 組羣(group)擁有的權限 #最後三個表明 其餘人(other)擁有的權限 #r表示文件能夠被讀(read) #w表示文件能夠被寫(write) #x表示文件能夠被執行 #-表示相應的權限尚未被授予
須要注意的是:查看文件權限的目錄問題: 若是有文件夾 /a/b/ccentos
那麼執行 ls -l /a/b 查看權限的文件並非b,而是查看的c的權限。安全
ls -l /a 查看的是b文件的權限bash
ls -l /a/b 查看的是c文件的權限服務器
ls -l /a/b/c 查看的是c文件的權限app
#修改權限 drwxr-xr-x. 4 root root 24 10月 25 20:25 a #user=rwx #group=r-x #other=r-x 語法: #chmod u=[選項],g=[選項],o=[選項] 文件/目錄 #實例以下: [root@centos7 tmp]# chmod u=rwx,g=r,o=r a [root@centos7 tmp]# ls -l drwxr--r--. 4 root root 24 10月 25 20:25 a #取消權限 # chmod a-x,u-x,g-x 文件/目錄 #實例以下: [root@centos7 tmp]# chmod u-r,g-r,o-r a [root@centos7 tmp]# ls -l d-wx------. 4 root root 24 10月 25 20:25 a
#rwx:能夠用數字來代替 r----------4 w----------2 x----------1 - -------- 0 #實例 -rw-r--r--. 1 root root 334 10月 25 21:34 a/1.txt #---------(600)全部者有讀和寫的權限 # ------(400)羣組(用戶組)有讀的權限 # ---(400)其餘人只有讀的權限 #因此,能夠標記爲644 若是每位加1 即755 以下設置 [root@centos7 tmp]# chmod 755 a/1.txt [root@centos7 tmp]# ls -l a/1.txt -rwxr-xr-x. 1 root root 334 10月 25 21:34 a/1.txt #這樣子,就把簡單的把執行權限都加上了 #chomd -R 的用法以下,更改當前目錄或子目錄的權限 [root@centos7 tmp]# chmod -R 777 a [root@centos7 tmp]# ls -l /tmp/a 總用量 4 -rwxrwxrwx. 1 root root 334 10月 25 21:34 1.txt drwxrwxrwx. 3 root root 15 10月 25 21:32 b
更改全部者和所屬組chown,chgrpide
#chown 即change owner的縮寫 改變文件全部者屬性 #chown 全部者:所屬組 1.txt 修改所屬組 [root@centos7 a]# chown user:user 1.txt [root@centos7 a]# ls -l 1.txt -rw-r--r--. 1 user user 339 10月 25 22:00 1.txt #chown 能夠加R選項,用來修改目錄及如下的全部文件的權限 [root@centos7 tmp]# ls -l a/ 總用量 4 -rw-r--r--. 1 user user 346 10月 25 22:01 1.txt drwxrwxrwx. 3 user user 15 10月 25 21:32 b #chgrp (change group) #chgrp命令:chgrp命令用來改變文件或目錄所屬的用戶組。該命令用來改變指定文件所屬的用戶組。 格式:chgrp [選項] 組名 文件名 [root@centos7 tmp]# ls -l a -rw-r--r--. 1 user user 346 10月 25 22:01 1.txt [root@centos7 a]# chgrp root 1.txt [root@centos7 a]# ls -l 1.txt -rw-r--r--. 1 user root 346 10月 25 22:01 1.txt
umask測試
umask 每一個用戶都有一個默認的umask值,是用來確認用戶的默認權限。centos7
# 查看umask值 [root@centos7 a]# umask 0022 默認文件權限計算方法 1)假設umask值爲:022(全部位爲偶數) 6 6 6 ==>文件的起始權限值 0 2 2 - ==>umask的值 --------- 6 4 4 2)假設umask值爲:045(其餘用戶組位爲奇數) 6 6 6 ==>文件的起始權限值 0 4 5 - ==>umask的值 --------- 6 2 1 ==>計算出來的權限。因爲umask的最後一位數字是5,因此,在其餘用戶組位再加1。 0 0 1 + --------- 622 ==>真實文件權限 默認目錄權限計算方法 7 7 7 ==>目錄的起始權限值 0 2 2 - ==>umask的值 --------- 7 5 5 #實例一:umask全部位全爲偶數時,多數讀者對這個例子無疑問 [root@oldboy oldboy]# umask 0022 #→umask當前數值 [root@oldboy oldboy]# umask 044 #→更改成044 [root@oldboy oldboy]# umask 0044 [root@oldboy oldboy]# mkdir umask_test #→建目錄測試 [root@oldboy oldboy]# ls -ld umask_test drwx-wx-wx 2 root root 4096 Nov 12 19:21 umask_test #→對應數字權限爲733,是否是符合上面的計算方法? [root@oldboy oldboy]# touch umask_test.txt [root@oldboy oldboy]# ls -l umask_test.txt -rw--w--w- 1 root root 0 Nov 12 19:21 umask_test.txt #→對應數字權限爲622,是否是符合上面的計算方法?
#實例二:umask值的部分或所有位爲奇數時,這個是讀者疑問最大的 #當umask值的其餘屬組位爲奇數時 [root@oldboy oldboy]# umask 0023 [root@oldboy oldboy]# mkdir dir [root@oldboy oldboy]# touch file [root@oldboy oldboy]# ls -l 總計 4 drwxr-xr-- 2 root root 4096 11-15 01:04 dir #→對應數字權限爲754 -rw-r--r-- 1 root root 0 11-15 01:04 file #→對應數字權限爲644 #提示:根據前面的計算方法,當umask爲0023時,dir的權限應該是754,而file的權限應該爲643,可是因爲umask的其餘組位爲奇數,所以最終權限爲其餘組位加1,即643加001(對應實踐結果644)。注意:umask爲偶數的位不要加1。 #實例三:umask值的全部位爲奇數時 [root@oldboy oldboy]# umask 0551 [root@oldboy oldboy]# umask 0551 umask 爲0551 根據掩碼方法計算:目錄權限爲226,文件權限115,而實際文件權限爲226(umask的三個權限位都是奇數,因此,每一個位分別加1就是正確的權限) [root@oldboy oldboy]# mkdir dir5 [root@oldboy oldboy]# touch file5 [root@oldboy oldboy]# ls -l 總計 4 d-w--w-rw- 2 root root 4096 11-15 01:27 dir5 #→目錄對應數字權限爲226 --w--w-rw- 1 root root 0 11-15 01:27 file5 #→目錄對應數字權限爲226 再來一例驗證下: [root@oldboy oldboy]# umask 0333 [root@oldboy oldboy]# umask 0333 umask 爲0333 根據掩碼方法計算:目錄權限爲444,文件權限333,而實際文件權限爲444(umask的三個位都是奇數,因此,每一個位分別加1就是正確的權限) [root@oldboy oldboy]# mkdir dir3 [root@oldboy oldboy]# touch file3 [root@oldboy oldboy]# ls -l|grep 3 dr--r--r-- 2 root root 4096 11-15 01:30 dir3 #→目錄對應數字權限爲444 -r--r--r-- 1 root root 0 11-15 01:30 file3 #→目錄對應數字權限爲444
隱藏權限lsattr_chattrspa
除了設置文件或目錄的讀(r)、寫(w)、執行(x)權限外,對於某些有特殊要求的檔案(如服務器日誌)還能夠追加隱藏權限的設定。
chattr 設置隱藏權限 選項參數有
i:設定文件不能被刪除、更名、設定連接關係,同時不能寫入或新增內容。
a:即append,設定該參數後,只能向文件中添加數據,而不能刪除,多用於服務器日誌文件安全,只有root才能設定這個屬性。
+ :在原有參數設定基礎上,追加參數。
- :在原有參數設定基礎上,移除參數。
lsattr 查看隱藏權限 選項有
-a:顯示全部文件屬性,包括隱藏文件(.)、當時目錄(./)及上層目錄(../)。
-d:僅列示目錄屬性。
-R:遞歸列示目錄及文件屬性。
#實例: #給目錄添加隱藏權限 [root@centos7 a]# chattr +i c #添加權限 [root@centos7 a]# lsattr -d c #查看權限 ----i----------- c #給文件添加隱藏權限 [root@centos7 a]# chattr +i 1.txt [root@centos7 a]# lsattr -d 1.txt ----i----------- 1.txt
上圖顯示沒法修改
[root@centos7 a]# chattr -i 1.txt [root@centos7 a]# lsattr -d 1.txt ---------------- 1.txt 關於其餘用法,詳情請參閱在線幫助man