Назад | Перейти на главную страницу

Можно ли в Linux выполнить одноразовый вход под другим пользователем, переопределив его оболочку по умолчанию?

Как root я хотел бы войти в систему как пользователь службы (jenkins - сервер CI) и управлять файлами с помощью настроек пользователя, группы и umask.

Обычно я бы (как root) делал sudo -i -u jenkins, или даже su - jenkins. Однако оболочкой по умолчанию для Дженкинса является / bin / false, которая немедленно закрывается.

Есть ли способ войти в систему как Jenkins, но указать другую оболочку для использования? Мне действительно нужно менять оболочку Дженкинса в /etc/passwd/?

su в linux поддерживает установку оболочки с помощью --shell вариант

su jenkins --shell=/bin/bash

Чтобы это работало, вам нужно будет выполнить su как root. На странице руководства:

       If the target user has a restricted shell (i.e. the shell field of
       this users entry in /etc/passwd is not listed in /etc/shell), then
       the --shell option or the $SHELL environment variable wont be taken
       into account, unless su is called by root.

Вы читали страницу руководства (или --help вывод) в su команда?

su -s /bin/bash -

Как насчет:
su - jenkins -c /bin/bash

или

sudo -u jenkins /bin/bash