我想在我的 CentOS 6 服务器中添加一个新用户(我们称他为 Barry)。我创建了用户帐户 Barry,并将他添加到我创建的名为 webusers 的组中,如下所示:
groupadd webusers
useradd -G webusers Barry
passwd Barry
现在我已经有一个设置了密码并添加到组中的用户帐户,我想授予该组写入 nginx 配置文件的权限,重新启动 nginx,以及在 /var/www/ 中执行他们需要执行的任何操作,例如创建文件/目录等。
nginx 配置文件位于此处:
/webservers/nginx/conf/nginx.conf
要重新启动 nginx,我希望 webusers 组能够运行以下命令:
/etc/init.d/nginx restart
我想授予他们读写此目录的权限:
/var/www/
chmod 对我来说看起来非常令人困惑,我以前从来没有使用过它,而且我对系统管理还不太熟悉。
答案1
对于 nginx conf 文件,只需使其可组写入:
chgrp webusers /webservers/nginx/conf/nginx.conf
chmod 664 /webservers/nginx/conf/nginx.conf
要允许 webusers 组重新启动服务,最简单的方法是使用sudo
。如果尚未安装,请使用以下命令进行安装(以 root 身份):
yum install sudo
然后使用以下命令编辑 /etc/sudoers:
visudo
添加一些条目,例如:
Cmnd_Alias NGINX=/sbin/service nginx restart
%webusers ALL = NGINX
这将允许 webusers 组的成员运行该命令sudo service nginx restart
。
对于 /var/www 你需要添加组写入和将 setgid 位添加到目录以确保新文件具有组 webusers:
chgrp -R webusers /var/www
chmod 2775 /var/www
答案2
这是一本很棒的入门书关于 unix 权限(并使用 chmod/chown/etc)。听起来您希望/var/www
由 webusers 组拥有并拥有 g+s 权限。您可能希望阅读 umask 并考虑让这些用户使用umask 002
此共享目录。
/etc/init.d/nginx
需要 root 权限,因为它需要绑定到端口 80,为此您需要使用 sudo。应该有大量资源可用于设置 sudo,包括 sudoers 手册页。