Linux:如何创建超级用户?

Linux:如何创建超级用户?

我有三个用户:

  • 用户_1,
  • user_2,以及
  • 用户_超级。

有两个目录,

  • /root/user_1(chown -R 用户_1:用户_1)
  • /root/user_2(chown -R 用户_2:用户_2)

我希望我的 user_super 能够修改这些文件并能够将其恢复为原始文件。

user_1 和 user_2 无法读取/更改彼此的文件,并且被限制在各自的根文件夹中。

我该怎么办?

PS:user_super 应该没有 root 权限,user_super 将在服务器上运行 apache,因此它应该尽可能接近 www-data(Apache)用户。

答案1

在目录上设置组粘性位 (chmod g+s ),以便新创建的文件继承组所有权和组权限。如果您正在处理 apache 托管和多个 ftp 用户,它将有所帮助。

我们通过使用 mod_itk 运行 apache 并将 vhosts 设置为使用 ftp 所有权权限运行,在 apache 与 ftp-users 中的服务器上规避了这个问题。

答案2

创建一个包含用户 user_super 的超级组,然后

/root/user_1 (chown -R user_1:supergroup)
/root/user_2 (chown -R user_2:supergroup)

此设置存在问题:在大多数实现中,chown 只能由超级用户执行。希望更改其拥有的文件组的无特权(普通)用户可以使用 chgrp。因此,您可能会想:太好了,我将让 user_super 将组改回组 user_1 或 user_2,但 chgrp 仅允许 user_super 将所有权更改为他所属的一个组。

我猜 user_super 不是 root?

答案3

您可以尝试使用 sudo。

在 sudoers 文件中创建条目,以允许超级用户拥有 /root/user-1 和 /root/user-2 中文件的所有权,并将所有权交还给用户 1 和用户 2。

然后,超级用户将运行第一个 sudo chown 命令,编辑文件,然后运行第二个 sudo chown 命令将其改回。不允许无限制的 sudo chown,但要指定模式。

在设置邮件服务器时,我需要让 apache 创建由虚拟邮箱进程拥有的邮箱。因此,我所做的就是创建一个小脚本,该脚本将创建脚本,然后将所有权更改为虚拟邮箱进程。我将 apache 添加到 sudoers 文件中,允许它运行该脚本。它运行良好,但为了全面披露,您需要在构建脚本时小心谨慎,因为安全错误可能会造成严重后果。

相关内容