Я писал простой скрипт, который нужно было запускать как «пользователь». Я запускаю его наполовину как сам, и наполовину меньше, когда пользователь su, поэтому, чтобы сэкономить время, я написал его как

sudo -u user ./doStuff

но это не работает должным образом, потому что, когда я вошел в систему как пользователь, эта команда не выполняется, потому что у меня нет разрешений sudo, чтобы сделать ... все, что я уже мог сделать.

Мой вопрос заключается в том, есть ли причина, по которой не каждый пользователь по умолчанию имеет разрешение на sudo как на себя; для простоты таких скриптов? Есть ли какая-то целая система безопасности, которую я пропускаю, которая будет создана этим, или это просто не то, что кто-то потрудился реализовать?

во-вторых, скорее из любопытства, чем из-за реальной необходимости, как изменить файл /etc/sudoers чтобы каждый пользователь по умолчанию мог использовать sudo -u как себя? Я знаю, что мой оригинальный сценарий мог быть написан с помощью проверки, кто пользователь, но я собираюсь написать множество сценариев, подобных этому, для удобства при тестировании, и я хочу вырезать дополнительные шаги, которые я мог бы забыть добавить в каком-то будущем сценарии.

1 ответ1

1

Использование sudo для входа в систему в качестве текущего пользователя, по меньшей мере, не элегантно. Лучшим способом было бы просто проверить, вошли ли вы как user в своем скрипте, и действовать соответствующим образом. Например, если это скрипт bash, сделайте

if [[ $USER != "user" ]]; then
   su user;
fi

В любом случае, если вы действительно хотите это сделать, используйте вместо этого su :

$ whoami
terdon
$ su terdon
Password: 
$ whoami
terdon

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .