我有三个用户:
有两个目录,
我希望我的user_super能够修改这些文件,并能够将其恢复到原始状态。
user_1和user_2不能读取/更改每个其他文件,并被监禁到其根文件夹。
我如何去做呢?
PS:user_super应该没有root权限,user_super会在服务器上运行apache,所以它应该尽可能地靠近www-data(Apache)用户。
在目录上设置组粘贴位(chmod g + s),以便新创build的文件inheritance组所有权和组权限。 这将有助于你处理apache托pipe和多个ftp用户。
我们在apache和ftp-users的服务器上绕过了这个问题,方法是使用mod_itk运行apache,并设置虚拟主机使用ftp所有权。
然后在用户user_super中创build一个组超级组
/root/user_1 (chown -R user_1:supergroup) /root/user_2 (chown -R user_2:supergroup)
这个设置的问题:在大多数实现中,chown只能由超级用户执行。 想要更改他们拥有的文件组的非特权(常规)用户可以使用chgrp。 所以你会认为:完美,我会让user_super将组更改回group user_1或user_2,但chgrp只允许user_super将所有权更改为他所属的一个组。
我想user_super是不是根?
你可以尝试使用sudo。
在sudoers文件中创build条目以允许user-super获取/ root / user-1和/ root / user-2中的文件的所有权,并将所有权归还给用户1和用户2。
然后,user-super会运行第一个sudo chown命令,编辑该文件,然后运行第二个sudo chown命令将其更改回来。 不要让不受限制的sudo chown,而是指定模式。
当设置一个邮件服务器,我需要有一个由虚拟邮箱进程拥有的apache创build邮箱。 所以我所做的是创build一个小脚本来创build脚本,然后将所有权更改为虚拟邮箱进程。 我添加了Apache到sudoers文件,允许它运行脚本。 它运作良好,但为了充分披露,您需要小心地构build脚本,因为安全性错误可能是一个诡计。