如何在CentOS Linux上不使用密码进行sudo

时间:2020-01-09 10:39:46  来源:igfitidea点击:

在CentOS Linux系统上如何在没有密码的情况下使用sudo命令?
我以marlena @ my-cloud-server-ip身份登录,并禁用了ssh的root登录。
登录后,如何以root用户身份运行一些命令。
我是使用CentOS Linux 7服务器的唯一系统管理员。
如何在CentOS Linux云服务器下为名为marlena的用户运行或执行不带密码的sudo命令?

sudo(超级用户)只是CentOS Linux系统以另一个用户身份运行命令的工具。
通常以root用户身份。
您可以委派常见任务,例如重新启动服务器或重新启动Apache或使用sudo进行备份,以用于非特权用户。
默认情况下,sudo需要用户在CentOS 7上运行命令之前使用密码进行身份验证。
有时,您可能需要使用root特权运行命令,但是您不想使用sudo命令输入密码。
这对于脚本编写或任何其他目的很有用。
这可以通过编辑/etc/sudoers文件并设置正确的条目来实现。

您需要考虑在CentOS 6或7上允许不使用密码执行sudo命令的任何安全后果。

在CentOS Linux上无密码运行sudo

  • 备份/etc/sudoers文件,运行:sudo cp/etc/sudoers/root/sudoers.bak
  • 在CentOS上编辑/etc/sudoers文件:sudo visudo
  • 在CentOS上运行不带密码的/usr/sbin/reboot命令:marlena ALL = NOPASSWD:/usr/bin/reboot
  • 保存并退出文件。

如何在CentOS上执行所有不带密码的sudo命令

以超级用户身份执行以下命令:

# visudo

或者

$ sudo visudo

追加以下条目以为名为marlena的用户运行不带密码的ALL命令:

marlena ALL=(ALL) NOPASSWD:ALL

在vim中保存并关闭文件。
也可以授予对组名(如sysadm)的访问权限。

sysadm组的任何成员都可以运行命令而无需输入密码。
语法是

%sysadm ALL=(ALL) NOPASSWD: ALL

当然,您可以强制sysadm组仅运行给定命令,例如/usr/sbin/reboot和systemctl:

%sysadm ALL=(ALL) NOPASSWD: /usr/sbin/reboot, systemctl