Еще одна интересная идея, которую я услышал сегодня, - это сделать рекурсивный вызов сценария, когда вы запускаете от имени пользователя root и хотите запустить сценарий от имени другого пользователя.См. Пример ниже:
Я запускаю скрипт "my_script" от имени пользователя root и хочу, чтобы скрипт работал от имени пользователя "raamee"
#!/bin/bash
#Script name is: my_script
user=`whoami`
if [ "$user" == "root" ]; then
# As suggested by glenn jackman. Since I don't have anything to run once
# switching the user, I can modify the next line to:
# exec sudo -u raamee my_script and reuse the same process
sudo -u raamee my_script
fi
if [ "$user" == "raamee" ]; then
#put here the commands you want to perform
do_command_1
do_command_2
do_command_3
fi