是否可以使用管理员密码执行 sudo 命令?
例子 :
sudo apt-get update -password is 'root'
这是在 Ubuntu 启动时将命令放入需要 root 权限的应用程序中
答案1
如果您希望在启动时以 root 身份运行特定进程,那么我建议您将其包装在 systemd/init.d 脚本中。对于 systemd,类似下面的操作可能会有效:
[Unit]
Description=Some command
[Service]
User=root
Type=oneshot
ExecStart=/usr/bin/whateverprogram and associated arguments
[Install]
WantedBy=multi-user.target
尽管在上面的例子中我认为用户指令是多余的。
或者,如果不实施某些秘密管理工具(参见 hashicorps vault、ansible 具有类似功能等),您几乎只能选择两个选项:
创建一个 /etc/sudoers.d/somefile,其中包含要以提升的权限运行的所有程序的条目,而无需密码。即。
ALL ALL=/usr/bin/theprogramtorun NOPASSWD
或者如果你根本不关心系统的安全性并且你的用户是 sudoer,你可以尝试编写如下脚本:
echo "thisisaterribleidea" | sudo -S /usr/bin/command
通过命令行以明文形式传递密码
答案2
嗯,最佳做法是:
echo "your password" | sudo --stdin command
这将首先执行命令,然后填充您在 echo 语句中输入的密码。