![如何创建一个目录,其中用户只能删除自己的文件,但一个用户可以删除任何人的文件?](https://linux22.com/image/203428/%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95%EF%BC%8C%E5%85%B6%E4%B8%AD%E7%94%A8%E6%88%B7%E5%8F%AA%E8%83%BD%E5%88%A0%E9%99%A4%E8%87%AA%E5%B7%B1%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%8C%E4%BD%86%E4%B8%80%E4%B8%AA%E7%94%A8%E6%88%B7%E5%8F%AF%E4%BB%A5%E5%88%A0%E9%99%A4%E4%BB%BB%E4%BD%95%E4%BA%BA%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%9F.png)
考虑以下设置:
# two users in groups sales
useradd edwin
useradd santos
groupadd sales
usermod -aG sales edwin
usermod -aG sales santos
# two users in group account
useradd serene
useradd alex
groupadd account
usermod -aG account serene
usermod -aG account alex
# every group has its own directory with full access
mkdir -p ./groups/sales ./groups/account
cd ./groups
chown :account ./account
chown :sales ./sales
chmod g+rwx ./account ./sales
任务规定:
用户只能删除自己的文件,但alex是总经理,因此用户alex有权删除所有用户的文件。
现在用户应该只能删除自己的文件,所以我这样做:
chmod +t /groups/account /groups/sales
但现在我有一个问题。 Alex 是管理员,应该能够删除任何人的(!) 文件。所以我举例来说:
setfactl -a u:alex:rwx /groups/sales /groups/account
但这没有帮助:
[root@localhost groups]# getfacl sales/
# file: sales/
# owner: root
# group: sales
# flags: --t
user::rwx
user:alex:rwx
group::rwx
mask::rwx
other::r-x
[root@localhost groups]# sudo -u edwin touch sales/file
[root@localhost groups]# sudo -u alex rm -f sales/file
rm: cannot remove 'sales/file': Operation not permitted
是否可以将粘性标志应用于除一名用户之外的所有用户?
答案1
唯一缺少的部分是 Alex 应该拥有该目录
chown alex ./groups/sales ./groups/account