umask和chattr的目錄與文件權限管理
2.14 文件和目錄權限chmod
2.15 更改所有者和所屬組chown
2.16 umask
2.17 隱藏權限lsattr/chattr
2.14 文件和目錄權限chmod
chmod 修改文件或目錄的權限
文件和目錄有三個權限位
[root@xiang-2 src]# ll 456.txt
-rw-r--r-- 1 root root 10608 6月 5 14:16 456.txt
第一段的為所屬主的權限,第二段所屬組的權限,第三段其他人的權限
可讀r 可寫w 可執行x
權限數字表示:r=4 w=2 x=1
如-rw-r--r-- 1 root root 10608 6月 5 14:16 456.txt的權限表示為:
chmod = change mode
chmod 選項 -r 遞歸修改一個目錄下所有的文件權限變更
[root@localhost src]# ll -la jiaoben/ 總用量 20 drwxr-xr-x 2 xiang xiang 73 6月 6 16:05 . drwxr-xr-x. 3 root root 21 6月 6 16:05 .. -rw-r--r-- 1 xiang xiang 63 6月 4 17:58 1.py -rw-r--r-- 1 xiang xiang 38 6月 4 17:57 2.py -rw-r--r-- 1 xiang xiang 112 6月 4 17:59 2.pyc -rw-r--r-- 1 xiang xiang 112 6月 4 18:13 2.pyo -rw-r--r-- 1 xiang xiang 278 6月 6 15:57 jisuan.py [root@localhost src]# chmod 755 -R jiaoben/ 遞歸修改成755權限位 [root@localhost src]# ll -la jiaoben/ 查看修改後的權限,所屬主可讀可寫可執行,所屬組可讀可執行,其他用戶可讀可執行 總用量 20 drwxr-xr-x 2 xiang xiang 73 6月 6 16:05 . drwxr-xr-x. 3 root root 21 6月 6 16:05 .. -rwxr-xr-x 1 xiang xiang 63 6月 4 17:58 1.py -rwxr-xr-x 1 xiang xiang 38 6月 4 17:57 2.py -rwxr-xr-x 1 xiang xiang 112 6月 4 17:59 2.pyc -rwxr-xr-x 1 xiang xiang 112 6月 4 18:13 2.pyo -rwxr-xr-x 1 xiang xiang 278 6月 6 15:57 jisuan.py
2.15 更改所有者和所屬組chown
chown = change owner
chown 所有者:所屬組 文件或目錄
chgrp 所屬組 文件或目錄
創建一個用戶用於給予權限
[root@localhost src]# useradd xiang [root@localhost src]# ll 總用量 0 drwxr-xr-x 2 root root 73 6月 6 16:05 jiaoben [root@localhost src]# chgrp xiang jiaoben [root@localhost src]# ll 總用量 0 drwxr-xr-x 2 root xiang 73 6月 6 16:05 jiaoben 所屬組權限變更 [root@localhost src]# chown xiang:root jiaoben [root@localhost src]# ll 總用量 0 drwxr-xr-x 2 xiang root 73 6月 6 16:05 jiaoben 所屬主和所屬組變更 [root@localhost src]# ll -la jiaoben/ 總用量 20 drwxr-xr-x 2 xiang root 73 6月 6 16:05 . drwxr-xr-x. 3 root root 21 6月 6 16:05 .. -rw-r--r-- 1 root root 63 6月 4 17:58 1.py -rw-r--r-- 1 root root 38 6月 4 17:57 2.py -rw-r--r-- 1 root root 112 6月 4 17:59 2.pyc -rw-r--r-- 1 root root 112 6月 4 18:13 2.pyo -rw-r--r-- 1 root root 278 6月 6 15:57 jisuan.py [root@localhost src]# chown xiang:xiang -R jiaoben [root@localhost src]# ll -la jiaoben/ 目錄下所有的文件和目錄權限發生變更 總用量 20 drwxr-xr-x 2 xiang xiang 73 6月 6 16:05 . drwxr-xr-x. 3 root root 21 6月 6 16:05 .. -rw-r--r-- 1 xiang xiang 63 6月 4 17:58 1.py -rw-r--r-- 1 xiang xiang 38 6月 4 17:57 2.py -rw-r--r-- 1 xiang xiang 112 6月 4 17:59 2.pyc -rw-r--r-- 1 xiang xiang 112 6月 4 18:13 2.pyo -rw-r--r-- 1 xiang xiang 278 6月 6 15:57 jisuan.py
2.16 umask
默認權限umask
[root@localhost src]# umask
0022
默認022表示創建時所屬主給全部權限,所屬組給可讀可執行權限,其他人同樣是可讀可執行權限
目錄的x權限和文件的權限表示意義不同,目錄表示可進入瀏覽,默認有x權限,文件默認沒有x權限
系統的默認umask設置
777 - 022 = 755 rwxrwxrwx - (----w--w-) = rwxr-xr-x 文件的權限計算
666 - 022 = 644 rwxrwxrwx - (----w--w-) = rwxr-xr-x 目錄的權限計算
例如umask修改為003,創建文件時默認不會給予可執行權限
777 - 003 = 774 rwxrwxrwx - (-------wx) = rwxrwxr-- 默認使用777(rwxrwxrwx)權限位來計算
666 - 003 = 664 rw-rw-rw- - (-------wx) = rw-rw-r-- 默認使用666(rw-rw-rw-)權限位來計算
2.17隱藏權限lsattr_chattr
chattr 選項 +i 文件 +i表示給文件加上只讀的權限,不可寫、不可改名、不可刪除
lsattr 查看特殊權限位
[root@localhost src]# chattr +i 1.txt
[root@localhost src]# vim 1.txt
~
-- 插入 -- W10: 警告: 正在修改一個只讀文件 不可更改文件內容
[root@localhost src]# mv 1.txt 2.txt
mv: 無法將"1.txt" 移動至"2.txt": 不允許的操作 不允許給文件改名
[root@localhost src]# lsattr 1.txt
----i----------- 1.txt
[root@localhost src]# rm -rf 1.txt
rm: 無法刪除"1.txt": 不允許的操作 不可刪除
[root@localhost src]# chattr -i 1.txt 去掉特殊權限
[root@localhost src]# chattr +a 1.txt 只可追加文件內容,不可更改、不可刪除、不可重命名
[root@localhost src]# lsattr 1.txt
-----a---------- 1.txt
[root@localhost src]# chattr +i jiaoben/ 給目錄加上i權限
[root@localhost src]# lsattr -d jiaoben/ 查看目錄本身的隱藏權限
----i----------- jiaoben/
[root@localhost src]# rm -rf jiaoben/ 刪除測試
rm: 無法刪除"jiaoben/1.py": 權限不夠
rm: 無法刪除"jiaoben/2.py": 權限不夠
rm: 無法刪除"jiaoben/2.pyc": 權限不夠
rm: 無法刪除"jiaoben/2.pyo": 權限不夠
rm: 無法刪除"jiaoben/jisuan.py": 權限不夠
[root@localhost src]# chattr +a jiaoben/ 給目錄添加只能追加的隱藏權限
[root@localhost src]# touch jiaoben/123.txt 向目錄中追加新文件及新內容
[root@localhost src]# vim jiaoben/123.txt
ergdg
~
~
"jiaoben/123.txt" 1L, 6C 已寫入
E207: 無法刪除備份文件
請按 ENTER 或其它命令繼續
[root@localhost src]# cat jiaoben/123.txt 會有提示,但修改內容已經保存
ergdg
umask和chattr的目錄與文件權限管理