为新用户设置用户权限

为新用户设置用户权限

我想在我的 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 手册页。

相关内容