首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sudo登录后运行bash whiptail脚本

使用sudo登录后运行bash whiptail脚本
EN

Stack Overflow用户
提问于 2016-08-10 03:19:05
回答 2查看 153关注 0票数 0

我正在使用whiptail创建一个虚拟机配置脚本,希望在用户登录后自动启动。问题是,我不希望用户是根用户,但是,因为用户将需要能够更改的东西,如主机名,ip地址,添加目录等,他们将需要sudo特权,以便脚本真正做它的工作。

到目前为止,我所做的是创建一个使用我的whiptail shell脚本的用户:

代码语言:javascript
复制
adduser -M -s /scripts/whiptail_config.sh user1

我还使用visudosudoers添加了user1

代码语言:javascript
复制
user1 ALL=(root) NOPASSWD: /scripts/whiptail3_config.sh

我已经更改了/etc/init/tty1.conf,让该用户自动登录:

代码语言:javascript
复制
exec /sbin/getty -8 38400 tty1 -a user1 

至此,我的whiptail_config.sh shell脚本在启动和强制登录后加载正常。但是,在脚本中实际需要sudo访问权限的任何内容都会错误地显示Permission denied...消息。

我想做的事情是可能的吗?有没有我没有考虑过也应该考虑的替代方案?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-10 07:20:04

如果/scripts/whiptail3_config.sh不执行sudo,那么它就没有权限。您可以让脚本检查它运行时所使用的uid,并对其自身执行sudo。

就像这样

代码语言:javascript
复制
#!/bin/bash
[ $UID != 0 ] && exec sudo $0 "$@"
# the rest of the script...
票数 0
EN

Stack Overflow用户

发布于 2016-08-10 06:43:57

你在哪里使用sudo?无处可去。直接从inittab运行脚本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38858782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档