授予用户一些 root 权限(特别是 apache 文件和命令)的最佳方法

授予用户一些 root 权限(特别是 apache 文件和命令)的最佳方法

我写了一个shell脚本(这个)来启动一个新的网站项目。它必须由一个用户执行(他是否获得 root 权限并不重要,因为这个用户就是我)。

如您所见,用户必须能够:

  1. 编辑/etc/hosts;
  2. 添加新文件到/etc/apache2/sites-available/
  3. /var/www/在;中创建一个新目录(带有 ln)
  4. 执行a2ensite命令;
  5. 执行service apache2 reload命令;

所有这些操作都需要以 root 身份执行。但是是否可以向普通用户授予执行此操作的权限?为此,我是否需要更改该文件的所有者或用户组或两者,我该如何执行此操作?

答案1

这通常是使用 完成的sudo。在现代系统上,您可以添加文件来/etc/sudoers.d添加新权限。

# Rules for running am apache script.
User_Alias APACHE = yourUser
Cmnd_Alias APACHE = /usr/local/sbin/your_script
APACHE ALL = NOPASSWD: APACHE 

鉴于您是用户,您可能希望将您的帐户添加到/etc/sudoers为管理员定义的组中。在 Debian 或 Ubuntu 系统上,这是admin.其他发行版使用不同的值。这是 Ubuntu 对管理员组的定义。

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

sudo附带详细的手册页。您可能需要查看sudosudoers和的手册页visudo。如果您已对手册页建立索引,则可以使用命令获取 sudo 相关手册页的列表man -k sudo

相关内容