在Linux或类似Unix的系统上,如何在没有密码的情况下使用sudo命令?
配置步骤
- 备份sudoers文件
sudo cp /etc/sudoers /root/sudoers.bak
- 进入sudoer交互命令
$ visudo
或
$ sudo visudo
- 在
/etc/sudoers
文件中,在名为xiexianbin
的用户添加/编辑以下行,以运行/bin/kill
和systemctl
命令:
xiexianbin ALL=NOPASSWD:/bin/systemctl restart httpd.service,/bin/kill
或
cat >> /etc/sudoers.d/xiexianbin << EOF
xiexianbin ALL = (root) NOPASSWD:ALL
EOF
- 保存退出
测试
运行 /bin/kill
时并不需要输入密码即可杀掉进程:
$ sudo /bin/kill <pid>
重启服务也不需要数据密码
$ sudo /bin/systemctl restart httpd.service
F&Q
执行 sudo 命令报错:
$ sudo xxx
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
su 登录 root 用户,执行命令
chmod 4755 /usr/bin/sudo
chmod 755 /usr