我想在终端中做一些涉及改变用户的事情,例如:
sudo su
do something
do something
exit
do something
do something
sudo su
do something
do something
exit
我尝试过做一些需要 root 权限的事情,像这样:
#!/bin/bash
sudo su
mkdir -pv /mnt/directory
exit
但它不起作用。该mkdir
命令不是由 root 执行的。它给我发送了“权限被拒绝”的消息,因为脚本不是以 root 身份运行的。
有可能做这样的事吗?如果可以,怎么做?
编辑
如果我的问题不清楚,我很抱歉。我的意思是让脚本在后台更改用户,只需为所有需要 root 权限的命令输入一次密码即可。sudo
为每个需要 root 权限的命令添加密码不是我的意思。
答案1
您可以将命令添加sudo
到所有命令前面。请确保以 root 身份运行脚本,非特权用户将根据需要加入
#/bin/bash
do-something-neat # Run as invoking user (root)
sudo -u randomuser do-something-else # Run as "randomuser" user
make potato --type=Mashed # Run as invoking user (root)
./servePotato.sh # Run as invoking user (root)
sudo -u randomuser eat MashedPotato.o # Run as "randomuser" user
sudo -u fishy echo "I wanted potato!" # Run as "fishy" user