1. 程式人生 > >Linux學習-umask詳解

Linux學習-umask詳解

命令 add 屬於 用戶組 pad upa rwx lin val

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詳解