1

Я хотел бы дать конкретному пользователю возможность войти в систему как любой обычный пользователь (например, не root или daemon) и выполнять команды от имени этого пользователя.

Как я могу сделать это безопасно?

В настоящее время мои права пользователя sudo на bash-скрипт таковы:

if [ "$1" = "run" ]; then

  sudo -u ${2} ${3};

fi

Что работает, но безопасность не была в центре внимания.

Спасибо, парни.

1 ответ1

1

Создайте новый скрипт, /usr/bin/runasuser

#!/bin/sh
newuser="${1}" && shift
/usr/bin/sudo su - "${newuser}" -c "$@"

Сделайте это исполняемым

chmod +x /usr/bin/runasuser

Отредактируйте sudoers с помощью команды visudo и добавьте следующую строку:

alice ALL=(ALL)         /usr/bin/runasuser

Это позволит Алисе запускать что угодно как Боб, если она сделает это:

sudo /usr/bin/runasuser bob /opt/application/for/bob

Предполагая, что ваша среда sudo по умолчанию включает /usr /bin, вы можете просто запустить:

sudo runasuser bob /opt/application/for/bob

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