出于安全原因,我已设法PermitRootLogin
在我的sshd_config
文件中禁用。我的新用户位于sudoers文件,但每次我必须使用该sudo bash
命令时,如果我想进行安装和其他系统操作,就必须输入密码。
是否可以自动输入或禁用输入 root 密码,但仍然以 root 身份运行新的用户?
答案1
尝试
user ALL=(ALL) NOPASSWD: ALL
答案2
简而言之:不会。这正是 root/sudo 所要防范的情况。输入用户密码是一种额外的安全措施。
NOPASSWD
您可以使用选项绕过密码限制,/etc/sudoers
但这应该仅有的用于例外情况。
参考:http://www.ducea.com/2006/06/18/linux-tips-password-usage-in-sudo-passwd-nopasswd/
答案3
Craig Watson 完全正确!
虽然有些人坚持认为以非 root 身份工作会增加安全性,但我倾向于反对这种做法,至少在某些情况下是这样!但这在很大程度上取决于你在机器上做什么……
桌面用户通常不需要 root 权限,而使用提升的权限工作确实很危险,因为存在许多可能更容易被利用的攻击媒介。
在 (Web) 服务器上,这取决于:您只是在进行开发工作,例如上传应用程序/编写代码,还是在进行管理工作?在第一种情况下,您可能也不需要 root 权限!
而在 KVM 主机上,95% 的任务都需要 root 权限,因此使用非特权用户非常复杂。通常,这足以加强一般服务器安全性。在这样的系统上,我建议禁用密码验证(至少对于 root 来说),例如通过设置
PermitRootLogin without-password
或者添加基于 PAM 的解决方案,而不是遵循多用户方法。我见过很多系统出于“安全”原因禁用直接 root 登录,而是为 wheel 组用户使用 8 个字符的密码行政。
只要您正确锁定根目录,它就不会带来重大的安全风险。
以下是一些建议(不完整)
- 单用户模式的密码要求
- 设置一个很长的 root 密码(但在使用 IPMI/DRAC 卡进行远程访问时跳过某些特殊字符)
- 禁止基于密码的 root 登录
- 限制 root 登录到特定 IP/管理网络
- 将(管理)服务的可用性限制于某些 IP/管理网络
- 仔细检查您向网络公开的服务,并且只允许那些需要的和适当安全的服务。
编辑
@ Olivier S
出于安全原因,我已设法在 sshd_config 中禁用 PermitRootLogin。
OP 提到了这一点,虽然他问的是怎样禁用 sudo 密码提示,但这都与安全有关!除此之外,我并没有关注 SSH,也没有说不输入密码使用 sudo 总是一个坏主意。尽管问题已经得到解答,但人们仍然应该意识到后果。
仅仅因为按照 X 的方式做某事是一种常见的做法,您总是要质疑这种方式在特定情况下的表现如何。
这种特定情况下的结果是,OP 出于安全原因使用了非特权帐户。现在密码提示令他烦恼,所以他希望禁用它。结果是机器至少就像他直接以 root 身份工作一样不安全!
事实上,对于某些工作来说,使用不带密码的 sudo 是有意义的,但是你应该始终将其限制为特定的一组命令或使用安全的包装脚本!