编辑

编辑

出于安全原因,我已设法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 是有意义的,但是你应该始终将其限制为特定的一组命令或使用安全的包装脚本!

相关内容