我想创建一个bash工具来帮助备份我的系统,但是我计划它是模块化的,这样我就可以共享它了。
我计划source
脚本,用户可以下载到一个“插件”文件夹,我希望这些脚本中的一些将使用sudo。现在我知道使用sudo的次数对大多数用户来说意味着不需要每次输入密码,但是我想要格外警惕,并且至少要在每次sudo尝试之间得到确认。这意味着,虽然我不一定需要用户为每个sudo命令键入他们的密码,但我确实希望他们看到、审查并允许每个sudo命令手动进行。
有办法这样做吗?例:
$ script.sh
doing stuff...
about to run `sudo kill -9 938` do you want to proceed? [y/N] y
password: **********
doing other stuff...
about to run `sudo rm -rf ~/.cache` do you want to proceed? [y/N] y
about to run `sudo rm -rf /` do you want to proceed? [y/N] n
skipping.
etc...
finished.
$ _
编辑:我想我没有很好地解释这个问题。我希望创建某种子subshell,其中单词sudo
是一个自定义函数,然后在其中运行一个脚本。在该自定义函数中,我将使用echo
来确保在实际运行原始命令之前所有sudo命令都已注销。
发布于 2020-04-04 10:59:10
通过将这些命令添加到NOPASSWD下的sudoers文件中,我们可以在没有根权限的情况下运行该命令。
尝试以下命令。
sudo visudo
转到最后一行,键入以下命令。
user ALL= NOPASSWD: /bin/bash *.sh
然后保存文件。登录到用户并尝试使用sudo运行脚本,例如
sudo bash script.sh
https://askubuntu.com/questions/1222246
复制相似问题