如何在Linux系统下无需输入密码即可运行需root权限的脚本
操作步骤
- 先获取两个必要的绝对路径,避免相对路径导致免密规则不生效:
- 执行
which python3获取Python3解释器的绝对路径,示例输出为/usr/bin/python3 - 执行
readlink -f 你的script.py实际存放路径获取脚本的绝对路径,示例输出为/home/zhangsan/tools/script.py
- 执行
- 编辑sudoers配置文件,必须使用visudo命令编辑,直接修改文件若出现语法错误会导致sudo命令完全失效:
执行sudo visudo - 在配置文件末尾添加一行免密规则,格式为:
你的系统用户名 ALL=(ALL) NOPASSWD: Python3绝对路径 脚本绝对路径
示例(用户名为zhangsan的场景):zhangsan ALL=(ALL) NOPASSWD: /usr/bin/python3 /home/zhangsan/tools/script.py - 保存退出配置文件:
若默认编辑器为nano,按Ctrl+O回车确认保存,再按Ctrl+X退出
若默认编辑器为vi/vim,按Esc后输入:wq回车退出 - 修改自定义快捷键的触发命令为上述带sudo的完整绝对路径命令,示例:
sudo /usr/bin/python3 /home/zhangsan/tools/script.py
安全提示:不要直接给Python3解释器全局配置免密sudo权限,必须限定仅搭配指定脚本路径使用,避免被恶意利用产生安全风险。配置完成后可先在终端直接运行修改后的完整sudo命令验证,无需输入密码即可运行脚本即为配置成功。
内容的提问来源于stack exchange,提问作者Stone Garden
相关产品推荐
相关产品推荐

