问题背景
在执行自动化脚本时,经常会遇到为了保证系统安全,使用特定用户进行服务器操作,避免出现服务器安全问题,但是又会带来一些问题,就是执行sudo时可能会要求输入密码,这样就会出现了交互问题,无法实现自动化任务执行。
解决方案
可以通过配置 sudoers 文件允许某些用户运行 sudo 执行特定命令不要求输入密码,既避免安全问题,又避免输入密码。
将用户添加到 sudoers文件,sudoers 文件包含确定用户和组的 sudo 权限的信息,向下滚动到文件的末尾并添加以下行,该行允许用户 “sammery” 使用 sudo 运行任何命令而无需开始询问密码:
sudo vi /etc/sudoers # sudo visudo 也可以
sammery ALL=(ALL) NOPASSWD:ALL
sudo vi /etc/sudoers 可以使用 sudo visudo 代替
用户名(sammery)为自己用户的名字,请按真实情况修改
如果要允许仅运行特定命令而不输入密码,请在 NOPASSWD 关键字后指定命令。
例如,要仅允许使用 mkdir 和 mv 命令:
在/etc/sudoers文件
sudo vi /etc/sudoers
sammery ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/mv
这样只运行用户在运行mkdir 和 mv 命令时不需要输入密码
评论区