Статьи
Форум
Q&A
Полезные коды
Войти
Регистрация
Привет, Гость!
Войти
Войти с VK
Войти с Google
Регистрация
Информация
Вопросы и ответы
Вопрос
0 голосов
1331 просмотр
10.09.2016 / 13:37
aNNiMON
Алиас на переключение пользователя, выполнение команды и продолжение работы в баше с этим пользователем
bash
linux
Ответы на
предыдущий вопрос
помогли лишь частично. Проблема в том, что код выполняется от имени пользователя и потом возвращается обратно к руту.
Мне же нужно по алиасу переключить пользователя, сменить директорию и
остаться этим пользователем
.
Что я ожидаю:
root@vps:~# su - user
user@vps:~$ cd www
user@vps:~/www$
Теперь я нахожусь под пользователем user в папке www.
Чтобы не писать две команды, я хочу объединить их в один алиас:
root@vps:~# magicalias
user@vps:~/www$
Помогите мне это сделать.
Изм.
aNNiMON
от 10.09.2016 / 13:37
Ответы
1 голос
#
10.09.2016 / 16:09
kalterfx
[копировать]
[скачать]
# $1: user
# $2: path
# $3...: extra arguments
function
switchuserpath
(
)
{
local
DESTINATION_PATH
=
"$2"
local
SU_COMMAND_LINE
=
"cd
\"
$DESTINATION_PATH
\"
&& exec
\"
\$
SHELL
\"
"
\
EXTRA_ARGUMENTS
=
(
"
${@:3}
"
)
\
USER
=
"$1"
su
-c
"
$SU_COMMAND_LINE
"
"
${EXTRA_ARGUMENTS[@]}
"
-
"
$USER
"
}
// PS: У меня для
su -
не надо делать лишний переход в
$HOME
. Не знаю почему у меня так (или у вас не так).
Изм.
aNNiMON
от 10.09.2016 / 19:52
0 голосов
#
12.09.2016 / 15:26
Koenig
а нельзя объеденить как в консоли? через &&
Изм.
Koenig
от 12.09.2016 / 15:30
0 голосов
#
10.09.2016 / 15:09
Naik
echo
'alias checkoutuser \'
su
-
$1
;
cd
$HOME
;
\'
' >> ~/.bashrc
Использование
checkoutuser annimon
Не тестит, но думаю идея понятна
Всего: 3
Вопросы и ответы
Топ участников
Последние ответы
Комментарии
Поделиться
Разделы
Авторские статьи
Вопросы и ответы
Полезные коды
Форум
Гостевая книга
Реклама
Мы в соцсетях