пользователь без пароля с помощью ` sudo su -`

Я хочу, чтобы на моем сервере fox пользователь мог быть / сменить пользователя и быть пользователем42 без пароля ( fox у пользователя нет пароля, если он входит в систему с помощью ключей SSH) ::

srv6:/etc# grep user42 /etc/sudoers
fox     ALL=(ALL:ALL) NOPASSWD: /bin/su user42
srv6:/etc# 

Он хорошо работает, если они делают sudo su user42 :

fox@srv6:~$ sudo su user42
user42@akd6:/home/fox$ 

Но если я попробую, очистить оболочку с помощью sudo su - user42 NOPASSWD не работает

fox@srv6:~$ sudo su - akd
[sudo] password for fox: 
0
задан 10 July 2020 в 10:50
1 ответ

Это не сработает, потому что sudo su - user42 не соответствует тому, что вы предоставили в своем правиле. Это правило не содержит тире - и поэтому не отображается.

Как насчет того, чтобы сделать что-то вроде:

fox ALL=(user42) NOPASSWD: ALL

предоставить fox право делать что-либо как user42 без пароля,

а затем sudo -ui user42, где -i будет

-i, --login Запустить оболочку, указанную записью базы данных паролей целевого пользователя, в качестве оболочки входа в систему. Это означает, что файлы ресурсов для входа в систему, такие как .profile или .login будет прочитан оболочкой.

Я считаю, что это и есть желаемый вами результат.

3
ответ дан 10 July 2020 в 08:04

Теги

Похожие вопросы