FS权限场景

FS权限场景

如何实现此文件和文件夹权限场景:

考虑这些文件夹:
文件夹 A:640 root apache /var/www/A/
文件夹 www:640 root apache /var/www/
和这个 linux 用户:
id user1:uid=1000(user1) gid=1000(user1) groups=1000(user1)

我想允许 linux 用户user1读/写访问权限只是到文件夹A,不要更改文件夹 A 的所有者或组。

我尝试过这些场景,但没有一个是理想的:

  • 添加user1到组apache
    缺点:user1将能够读取位于 的其他文件/var/www/
  • user1将 的 home中的文件夹(例如文件夹 B)硬链接/var/www/A/到文件夹 B 而不是 A 并设置适当的权限:
    缺点:硬链接到目录不可能在跨设备上进行。
  • 添加user1sudoers
    缺点: 的复杂性user1,另外,user1可能会因人为错误而破坏文件夹 A 的所有者/组策略和/或权限。

任何想法?

答案1

我假设您想要授予对 /var/www/A 的访问权限,因为您访问的是viauser1管理的内容user1http://您的域名/A?为什么不让 apache 将内容重定向到用户主目录下的目录?

Alias /A/ /path/to/users/homedir/A

这将实现结果,并且不必更改 /path/to/users/homedir/A 的组/用户所有权/权限。

但是如果你想通过文件权限来做到这一点,你将只能实现它经过更改 /var/www 的所有权/权限/var/www/A。

创建一个“新组”(大多数 UNIX 提供groupadd命令),将 apache 和 user1 添加到其中。将 /var/www/A 的组所有权更改为此“新组”(使用chownchgrp)。设置权限以禁止“新组”和“其他用户”对 /var/www 目录 ( chmod 711 /var/www) 的 rw 访问权限,并授予对 /var/www/A ( ) 的“新组”访问权限chmod g+rwx /var/www/A

参考:

Apache 别名指令

答案2

创建一个 group group1,添加apacheuser1to group1,然后将拥有的组更改/var/www/Agroup1using chgrp,如下所示:

# use `-R' if you want to do this recursively, that is grant `group1' access to 
# all sub-directories of `A' as well as access to `A' itself.

# as a regular user with sudo rights:

sudo chgrp -R group1 /var/www/A 

# as root 

chgrp -R group1 /var/www/A 

因此,user1将不会成为 apache 的成员,因此将无法读取/var/www,但仍然能够读取/var/www/A,而 apache 也将能够仍然读取/var/www/A

最后,仔细检查组成员是否具有read/write访问权限,chmod如下所示:

# use `-R' at your own discretion--it acts the same way as `-R' in `chgrp'

# as root 

chmod -R g=rw /var/www/A

# as a regular user with sudo rights

sudo chmod -R g=rw /var/www/A

或类似的东西。

相关内容