我將從事一個網路項目,因此www
裡面有一個 - 資料夾$HOME
。我希望該資料夾user
在屬於 group 時由其擁有www-data
。我發出:
mkdir $HOME/www
chmod g+rxs,u+rwx,o-rwx $HOME/www
chown user.www-data $HOME/www
然後ls -alh | grep www
給出:
drwxr-s--- 2 user www-data 4,0K Aug 10 17:33 www
此外,我希望設定預設權限,而不管建立進程的權限如何。所以我這樣做:
setfacl -m d:u::rwx,d:g::rx,d:o::- $HOME/www
然後getfacl $HOME/www
給出:
# file: www
# owner: user
# group: www-data
# flags: -s-
user::rwx
group::r-x
other::---
default:user::rwx
default:group::r-x
default:other::---
現在我cd
進入新建立的資料夾出現問題:
touch testfile
然後ls -alh | grep testfile
給出:
-rw-r----- 1 user www-data 0 Aug 10 17:44 testfile
正如您所看到的,該組www-data
由於該setgid
位而被繼承。但目錄中的預設 ACL$HOME/www
並未繼承(正如我所期望的那樣)。$HOME
與$HOME/www
- 相比具有不同的預設 ACL,但我希望手動覆蓋子目錄預設 ACL 的工作方式非常簡單。
我希望其中的子目錄和檔案$HOME/www
具有上面給出的預設權限。我在這裡缺少什麼?
答案1
預設情況下,檔案沒有執行權限。目錄確實如此。嘗試建立一個目錄,它應該具有預期的權限。文件應獲得預期的預設權限減去執行權限。