sudo su -p
сохранит среду вызывающего пользователя, за некоторыми исключениями. Исключения можно найти на справочной страницеsu
, но соответствующая часть —:
-m, -p, --preserve-environment
Preserve the entire environment, i.e. it does not set HOME,
SHELL, USER nor LOGNAME. This option is ignored if the option
--login is specified.
Если у вашего пользователя была оболочка входа в систему , вам нужно будет ввести свой cmd как:su --shell=/bin/bash locked
или sudo -u locked /bin/bash
, при условии, что оболочка по умолчанию, указанная для целевого пользователя, указана в/etc/shell
.
(Обратите внимание, что после длинной опции --shell
стоит знак равенства.)
Однако:
Смысл наличия пользователя без оболочки входа в систему именно в том, что этот пользователь не может войти в систему каким-либо образом, будь то непосредственно при запуске сеанса или через другую учетную запись пользователя. Как ни странно, это именно то, чего вы пытаетесь достичь.
чтобы получить доступ к этому пользователю (при условии, что у него есть оболочка входа в систему, переключившись на его профиль, как показано выше, вам обычно потребуются привилегии sudo
или, по крайней мере, возможность использовать su
cmd...