如何在Linux或者Unix上不带密码的情况下运行sudo命令
时间:2020-01-09 10:42:21 来源:igfitidea点击:
在Linux或者类似Unix的系统上,如何在没有密码的情况下使用sudo命令?
我以tom @ my-cloud-server-ip身份登录,并禁用了ssh的root登录。
登录后,如何以root用户身份运行一些命令。
我是使用服务器的唯一系统管理员。
如何在Debian/Ubuntu/CentOS Linux云服务器下为名为Tom的用户运行或者执行不带密码的sudo命令?
sudo(超级用户可以)不过是Linux或者类Unix系统以另一个用户身份运行命令/程序的工具。
通常作为root用户或者另一个用户。
您可以委派常见任务,例如重新启动服务器或者重新启动Apache或者使用sudo进行备份,以用于非特权用户。
默认情况下,sudo需要用户在运行命令之前使用密码进行身份验证。有时您可能需要以root特权运行命令,但是您不想使用sudo命令输入密码。这对于脚本编写或者任何其他目的很有用。这可以通过编辑/etc/sudoers文件并设置正确的条目来实现。 您需要考虑允许不使用密码执行sudo命令的任何安全后果。
如何在没有密码的情况下运行sudo命令:
- 通过输入以下命令来备份/etc/sudoers文件:
sudo cp/etc/sudoers/root/sudoers.bak
- 通过输入visudo命令来编辑/etc/sudoers文件:
sudo visudo
- 在/etc/sudoers文件中,按如下所示在用户的Hyman文件中追加/编辑行以运行/bin/kill和systemctl命令:
Hyman ALL = NOPASSWD: /bin/systemctl restart httpd.service, /bin/kill
- 保存并退出文件。
如何不使用密码执行所有sudo命令?
以root用户身份执行以下命令:
# visudo
或者
$ sudo visudo
追加以下条目以为名为tom的用户运行不带密码的ALL命令:
tom ALL=(ALL) NOPASSWD:ALL
这是我的示例配置文件:
如何为tom用户执行不带密码的sudo
保存并关闭文件。
现在,您可以以root用户身份运行任何命令:
$ sudo /etc/init.d/nginx restart $ sudo /sbin/reboot $ sudo apt-get install htop ## get root shell ## $ sudo -i
请确保只有汤姆才能通过ssh键登录。
如何测试?
只需运行/bin/kill即可杀死没有密码的任何进程:
[Hyman@server ]$ `sudo /bin/kill pid-here`
或者
[Hyman@server ]$ `sudo /bin/systemctl restart httpd.service`