如何允许用户创建和删除文件/文件夹,但不修改它们?

如何允许用户创建和删除文件/文件夹,但不修改它们?

我创建了一个名为“app-data”的组和一个文件夹/db-data/archived-data/

我希望 app-data 的成员对 /db-data/ 文件夹拥有所有权限,但我希望同一组用户只能对 /db-data/archived-data/ 文件夹拥有创建和删除访问权限(用户不应该能够修改其中的任何文件或目录。但他们应该能够创建或删除他们想要的任何文件或文件夹。

我们该怎么做呢?我认为这可以通过 ACL 实现,但请随时告诉我我们如何实现这一点?使用任何方法都可以,但我想要这个配置。

请帮忙。

答案1

这绝对是可能的。首先,/db-data将 的组更改为app-data

sudo chgrp -R app-data /db-data

现在设置权限:

sudo chmod -R g+rwx /db-data
sudo chmod -R g-w /db-data/archived-data/*
sudo find /db-data/archived-data -type d -exec 'chmod' 'g+rwx' '{}' ';'
  • sudo chmod -R g+rwx /db-data授予其内部所有内容app-data的完整权限/db-data
  • sudo chmod -R g-w /db-data/archived-data/*删除app-data里面所有内容的写入权限/db-data/archived-data
  • 最后,sudo find /db-data/archived-data -type d -exec 'chmod' 'g+rwx' '{}' ';'恢复app-data每个目录/db-data/archived-data(但是不是这些目录内的文件),这对于app-data创建和删除其中的任何文件或目录是必要的/db-data/archived-data

现在, 中的任何人app-data都可以读取、执行、创建和删除 中的文件或目录/db-data/archived-data(包括深度超过 1 级的子目录;即,app-data将能够在 中创建和删除文件/db-data/archived-data/a/b/)。如果您不想app-data拥有读取和/或执行权限,请将g-w中的sudo chmod -R g-w /db-data/archived-data/*更改g-rw为无读取权限、g-wx无执行权限或g-rwx根本没有权限(如果您在运行命令后执行此find操作,则必须重新运行它)。

最后,请注意如果用户 app-data 创建文件或目录,他/她将能够修改他/她创建的文件/目录(但现有文件仍然不可修改)。

相关内容