我有一个需要使用 sudo 运行的命令,但首先我需要脚本来 su 到管理员帐户并请求密码。
目前,只有当我以新用户身份调用第二个脚本时,我才能使其正常工作,如下所示:
启动.sh
#!/bin/bash
# how can we just put the script here instead of a separate file?
su -c "sudo -S ./.launchStage2.sh" -m admin_user
.launchStage2.sh
#!/bin/bash
source /root/pyusb/bin/activate
cd /root/pyusb
python stormLauncher.py
deactivate
cd ~
有没有办法删除第二个脚本并从第一个脚本中运行它?额外的:)目前它要求输入密码两次,一次用于 su,一次用于 sudo,有没有办法只要求一次?
编辑:我不希望我的常规用户帐户位于 中sudo
,而是希望使用需要时使用的单独管理员帐户。主要原因是我是课堂实验室的老师,如果学生以某种方式访问我的常规帐户,他们仍然不会有 sudo。不确定这是否合理,但这是我的组织的 IT 部门向我推荐的,而不是这个问题的一部分。
答案1
该脚本可以调用自身:
if ! [ admin_user = "$USER" ] && ! [ root = "$USER" ]; then
su -c "$0" -m admin_user
elif ! [ root = "$USER" ]; then
sudo "$0"
else
source /root/pyusb/bin/activate
# [...]
fi