在终端中执行涉及更改用户的操作

在终端中执行涉及更改用户的操作

我想在终端中做一些涉及改变用户的事情,例如:

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              

相关内容