没有密码可以以 root 身份运行固定命令的命令?

没有密码可以以 root 身份运行固定命令的命令?

是否可以在 sudoers 中定义一条规则,允许一个用户以 root 身份运行一个明确定义的命令,除了成为正确的用户之外,无需密码或其他身份验证?

是否有其他方法可以解决这个问题(或非常类似的问题)?

使用suid权限位?也许以某种方式使用 ssh 密钥?

答案1

文件sudoers允许指定命令以准许:

username ALL=(root) NOPASSWD: /bin/foo bar baz

username是您要允许的用户,命令位于该行的末尾。如果您为命令指定参数,则用户只能使用这些参数运行该命令,但如果您未在此处指定参数,则用户可以使用他们选择的任何参数运行该命令。您可以指定用逗号分隔的多个命令,或者只是作为单独的行。

编辑sudoers文件visudo(以 root 身份)并以该格式添加一行,并更改适当的详细信息,并且用户将被允许以提升的权限运行您指定的命令。


NOPASSWD:允许用户在没有提示的情况下运行命令。这ALL是一个主机限制,您可能可以忽略它(如果不能的话您就会知道)。(root)意味着他们只能以 root 用户身份运行该命令。


既然你问了,也完全可以这样做ssh,尽管sudo更好。您可以将其放在COMMAND=something行的开头/root/.ssh/authorized_keys并向用户提供与该命令相对应的专用 SSH 密钥。唯一可能的原因是,sudo如果您不希望用户对计算机有任何其他访问权限,或者您不希望他们自己编写命令。

相关内容