我为 myuser 创建了一个别名
alias up='sudo apt update && sudo apt -y upgrade && sudo apt -y autoremove'
它存储在用户的.bashrc文件。我尝试修改 sudoers 文件,在其末尾插入以下行:
myuser ALL=(ALL) NOPASSWD: up
visudo
但是给出了语法错误。如何让我的别名在没有 root 密码的情况下运行?
答案1
如果你想在没有密码的情况下运行所有 sudo 命令,你可以使用它。
myuser ALL=(ALL) NOPASSWD:ALL
如果你想将其限制为只有几个命令,你可以使用它。
myuser ALL=(ALL) NOPASSWD: /usr/bin/apt,/usr/bin/command
答案2
我想它不起作用,因为 :up 是一个别名,而不是文件的路径。别名在执行之前会被 shell 捕获并展开。
要获得您想要的行为,您必须使用:
myuser ALL=(ALL) NOPASSWD: /usr/bin/apt
(仔细检查它是否是 APT 的正确路径,我现在没有任何基于 apt 的发行版。)
但你想做的是一场等待发生的灾难,至少如果你不省略“sudo apt -y autoremove”。应谨慎使用自动删除,并检查计划删除的内容,因为它有时会删除必要的软件包,并真正扰乱您的系统(我经历了惨痛的教训)