我需要执行以root身份运行所需的命令。
我读过一些关于在脚本中使用硬编码密码的帖子可能不安全,但实际上我并不在意,因为无论如何我都在为用户提供root密码。它是一个剥离系统,只有2个用户:客户端和root用户,所以请避免警告我安全问题,请继续并提供快速而肮脏的解决方案。
对于这个bash脚本,我需要 使用su获取超级用户, 那么“我的命令”, 然后退出。
我不希望终端提示自己输入密码,而是读取我在脚本中提供的密码并运行命令。不提示用户输入是优先事项。
或者,也许我可以安装sudo,但有没有机会在没有任何密码提示的情况下运行命令(编辑sudoers或其他东西)? 使用期望怎么样?
更新:我忘了说这也是便携式的SO,用于USB记忆棒(也许后来也用于CDLive),如你所知,在这种发行版中提供了root密码如果用户需要。前面提到的命令是一些应用程序安装的软件包扩展,只有root有权执行这样的命令(我不得不说它不是apt-get install或rpm命令,所以不要担心这个)。
答案 0 :(得分:1)
如果您希望命令在没有密码的情况下可运行,请在/etc/sudoers
文件中将特定命令设置为runnable,无密码(仅将参数限制为您希望的特定参数)允许,如果您的用例允许该限制)。
这就像为相关的sudoers条目设置NOPASSWD:
标志一样简单。
如果你真的,真的不关心安全性,它可能就像这样简单:
%admin ALL=(ALL) NOPASSWD: ALL
(将具有sudo功能的用户放入admin
UNIX组)
......或者,如果你做了关心,你可以做一些具体的事情:
someuser ALL = NOPASSWD: /usr/local/sbin/my_admin_command
请注意,如果这些命令在没有用户的情况下运行,它们也可能没有分配TTY;在这种情况下,您必须确保您的sudoers
文件不包含(经常出现的默认情况下)行:
Defaults requiretty
...或者授予权限的行特别放弃了此默认值的效果。