我是 Linux 新手,我有一个 CentOS 下的 VPS,并且我有一个 root 用户。我以 myuser 身份登录(我从我的 godaddy 帐户创建),然后输入 sudo su 以 root 身份访问。
现在我想让某人能够在服务器上安装任何他想要的东西,但我不希望他能够输入 sudo su 并获得 root 访问权限。
我确实创建了一个用户 dev1 并将其添加到 visudo 中,如下所示:
root ALL=(ALL) ALL
dev1 ALL=(ALL) ALL
当我以 dev1 身份登录时,我仍然可以输入 sudo su 并获得 root 访问权限,那么我该如何防止这种情况发生?
谢谢
答案1
您不应该将用户“dev1”列为可以在您的服务器上执行所有操作的人,这很危险。相反,您应该允许此用户运行包管理器。为此,您需要在 visudo 中添加如下行
dev1 ALL = NOPASSWD : /usr/bin/yum, /usr/bin/apt-get , /usr/bin/aptitude
(通常在 CentOS 上人们使用 yum,所以我也包含了 yum 的路径,但如果您的 VPS 上没有安装 yum,您可以将其删除)
使用此设置,用户在安装某些东西时将不再被要求输入密码。但如果你想强制他们再次输入密码,你可以使用
dev1 ALL = PASSWD : /usr/bin/yum, /usr/bin/apt-get , /usr/bin/aptitude
最后,为了不为每个用户创建单独的线路,您可以允许“用户”组的所有成员安装程序(当然,您必须信任您的用户或为受信任的用户创建单独的组)
%users ALL = PASSWD : /usr/bin/yum, /usr/bin/apt-get , /usr/bin/aptitude
现在可以按照以下方式进行安装
$ sudo /usr/bin/yum install name_of_a_program