1. 程式人生 > >umask和chattr的目錄與文件權限管理

umask和chattr的目錄與文件權限管理

chattr特殊權限

6月6日任務
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 644 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的目錄與文件權限管理