抱歉,如果标题有歧义,但是我对 Ubuntu 还很陌生,但刚刚与一组全是 sudo 的“开发人员”一起设置了一个运行它的网络服务器。
目前,用户只能使用绑定到其帐户的密钥通过 SSH 登录。但 user1 可以简单地执行以下操作:
sudo su - user2
并以用户 2 的身份运行,无需密码。有没有办法强制执行与
su - user2
这实际上需要用户 2 的密码?否则,跟踪每个用户的命令以查看谁做了什么有点毫无意义。
谢谢!
答案1
为了防止通过 切换用户sudo su -
,您需要禁用 root 切换到su
任何用户的能力。编辑/etc/pam.d/su
并注释掉此行:
auth sufficient pam_rootok.so
正如上面的评论所说/etc/pam.d/su
,这允许 rootsu
无需密码。
或者,您可以将sudo
使用限制为一组有限的命令,这些命令不包含并强制通过/su
进行用户切换,并在中启用该选项。sudo -i -u
sudo -s -u
targetpw
sudoers
答案2
Sudo 权限只应授予那些可能需要管理机器本身的人。其他权限可以通过组和组权限进行管理。例如,将名为“developer1”的用户添加到 www-data 组:
sudo usermod -a -G www-data developer1
这会将“developer1”添加到 Apache 的 www-data 组。
sudo chgrp -R www-data /var/www
将确保 /var/www 中的所有文件和目录都属于“www-data”组。
sudo chmod -R g+w /var/www
将确保该组对 /var/www 中的所有文件具有写权限
http://www.cyberciti.biz/faq/ubuntu-add-user-to-group-www-data/