由於umask的檔案基本權限是666,是否可以在建立檔案時使檔案具有750權限?
答案1
一般來說,不會。幾乎每個程式都使用mode 進行調用open()
(或creat()
就此而言)0666
,因此無論umask
您應用什麼,您都永遠不會得到0750
.即使是建立可執行文件的連結器也會使用模式開啟輸出文件0666
,然後chmod
再開啟它們:
strace -f -e file gcc bla.c 2>&1 | fgrep a.out
...
[pid 14096] open("a.out", O_RDWR|O_CREAT|O_TRUNC, 0666) = 3
...
[pid 14096] chmod("a.out", 0755) = 0
如果您想要不同的行為,您需要編寫自己的工具或圍繞現有工具進行包裝來執行預期的模式變更。