Linux學習-umask詳解
例如:我們發現
root用戶下,touch a ,文件a的默認權限是644
普通用戶下,touch b ,文件b的默認權限是664
644和664我們並沒有設置,其中的關鍵因素就是umask
分析:
目錄 | 文件 | |
最高權限 | 777 rwxrwxrwx | 666 rw-rw-rw- |
命令umask可以查看當前用戶的umask值 (查看umask只看後三位,總共是4位)
root | 普通用戶 | |
umask | 022 | 002 |
結合上述的舉例得知:
默認權限=最高權限-umask( 644=666-022 // 664=666-002 )
但是:
當umask為011,創建文件的默認權限應該是655,但是實際運行的時候默認權限是 666
666 -> rw-rw-rw-
011 -> -----x--x
相減得:
666 <- rw-rw-rw-
(這個特殊情況僅出現在文件,因為文件[二進制文件除外]沒有x執行權限)
所以,查看文件的umask時我們要特別註意是否有奇數位(x表示1)
umask + 數值 修改當前用戶的umask 如:umask 044
不過這樣設置的umask會在用戶重新登錄的時候恢復原來的值,我們可以把修改的umask保存在~/.bashrc
***************************
vim ~/.bashrc
在文件末尾添加umask 044
保存退出
重新登錄用戶則保存成功
***************************
案例:
劉關張三兄弟都屬於shu這個附加用戶組,有一個共享目錄,叫shuguo,三兄弟在shuguo下所創建的文件,相互之間可以修改.其他人無任何權限,三兄弟創建的文件,只能自己刪除.(利用umask值默認設置權限)
groupadd shu
useradd -G shu liubei
useradd -G shu guanyu
useradd -G shu zhangfei
mkdir shuguo
chgrp shu shuguo/ /*shuguo目錄所屬組改成shu*/
chmod g+s shuguo/ /*使劉關張創建的文件屬於shu*/
chmod o+t shuguo/ /*使劉關張創建的文件只能自己刪除*/
chmod g+w shuguo/ /*使劉關張可以修改和執行shuguo下的文件*/
umask 006
Linux學習-umask詳解