我使用我希望在用户登录后自动启动的whiptail创建虚拟机配置脚本。问题是,我不希望用户成为root用户但是,因为用户需要能够更改主机名,IP地址,添加目录等内容,所以他们需要sudo权限才能让脚本真正完成它的工作。
我到目前为止所做的是创建了一个使用我的whiptail shell脚本的用户:
adduser -M -s /scripts/whiptail_config.sh user1
我还使用user1
将sudoers
添加到visudo
:
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...
消息。
我期待做什么?有没有我考虑过并且应该考虑的替代方案?谢谢!
答案 0 :(得分:0)
你在哪里使用sudo?无处。 直接从inittab运行脚本。
答案 1 :(得分:0)
如果/scripts/whiptail3_config.sh
没有做sudo,那么它就没有权限。你可以让脚本检查它运行的uid和sudo自己。
像
这样的东西#!/bin/bash
[ $UID != 0 ] && exec sudo $0 "$@"
# the rest of the script...