我正在使用whiptail创建一个虚拟机配置脚本,希望在用户登录后自动启动。问题是,我不希望用户是根用户,但是,因为用户将需要能够更改的东西,如主机名,ip地址,添加目录等,他们将需要sudo特权,以便脚本真正做它的工作。
到目前为止,我所做的是创建一个使用我的whiptail shell脚本的用户:
adduser -M -s /scripts/whiptail_config.sh user1我还使用visudo向sudoers添加了user1
user1 ALL=(root) NOPASSWD: /scripts/whiptail3_config.sh我已经更改了/etc/init/tty1.conf,让该用户自动登录:
exec /sbin/getty -8 38400 tty1 -a user1 至此,我的whiptail_config.sh shell脚本在启动和强制登录后加载正常。但是,在脚本中实际需要sudo访问权限的任何内容都会错误地显示Permission denied...消息。
我想做的事情是可能的吗?有没有我没有考虑过也应该考虑的替代方案?谢谢!
发布于 2016-08-10 07:20:04
如果/scripts/whiptail3_config.sh不执行sudo,那么它就没有权限。您可以让脚本检查它运行时所使用的uid,并对其自身执行sudo。
就像这样
#!/bin/bash
[ $UID != 0 ] && exec sudo $0 "$@"
# the rest of the script...发布于 2016-08-10 06:43:57
你在哪里使用sudo?无处可去。直接从inittab运行脚本。
https://stackoverflow.com/questions/38858782
复制相似问题