Скрипт с изменением текущего пользователя
Скрипт с изменением текущего пользователя
Здравствуйте!
Есть необходимость в рамках одного скрипта устанавливать пакеты под другим пользователем:
запускаю, например, скрипт от user_0, потом в скрипте надо выполнить действия от user_1. Делаю так:
#!/bin/sh
# Какие-то действия от user_0
sudo su - user_1
echo user_1 login
exit
# Какие-то действия от user_0
В итоге получаю только выполнение sudo su - user_1 и система переходит в режим ожидания команд под пользователем user_1.
Как правильно написать такой скрипт?
Есть необходимость в рамках одного скрипта устанавливать пакеты под другим пользователем:
запускаю, например, скрипт от user_0, потом в скрипте надо выполнить действия от user_1. Делаю так:
#!/bin/sh
# Какие-то действия от user_0
sudo su - user_1
echo user_1 login
exit
# Какие-то действия от user_0
В итоге получаю только выполнение sudo su - user_1 и система переходит в режим ожидания команд под пользователем user_1.
Как правильно написать такой скрипт?
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Скрипт с изменением текущего пользователя
Doddger писал(а): В итоге получаю только выполнение sudo su - user_1 и система переходит в режим ожидания команд под пользователем user_1.
Код: Выделить всё
olej@nvidia ~/2016_WORK/in.WORK/bash $ cat ./scr1
# действия user_1 :
whoami
su -c ./scr2 -m olga
# действия user_1 :
whoami
Код: Выделить всё
olej@nvidia ~/2016_WORK/in.WORK/bash $ cat ./scr2
# действия user_2 :
whoami
exit
Код: Выделить всё
olej@nvidia ~/2016_WORK/in.WORK/bash $ ./scr1
olej
Пароль:
olga
olej
Re: Скрипт с изменением текущего пользователя
Спасибо, примерно это мне и надо.
Re: Скрипт с изменением текущего пользователя
А как можно использовать окружение пользователя user_1?
Т.е. при использовании su -c ./src -m user_1 команда whoami возвращает user_1, но HOME = /home/user_0. Получается, что когда требуется доступ к домашней директории, возникает ошибка из-за отсутствия прав доступа.
Т.е. при использовании su -c ./src -m user_1 команда whoami возвращает user_1, но HOME = /home/user_0. Получается, что когда требуется доступ к домашней директории, возникает ошибка из-за отсутствия прав доступа.
Re: Скрипт с изменением текущего пользователя
Надо просто убрать параметр -m
Кто сейчас на конференции
Сейчас этот форум просматривают: Google [Bot] и 4 гостя