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

изменить пользователя в сценарии bash

У меня есть простой сценарий bash, который отлично работает как обычный пользователь. При запуске из постфикса он работает как никто: никто, что мешает работе многих команд.

Возможно ли, чтобы сценарий изменился на другую учетную запись пользователя во время работы, чтобы разрешить выполнение этих других программ?

Спасибо

Вам нужно будет настроить sudo так что вы можете запустить определенную команду как nobody который будет работать как другой пользователь.

Обычно что-то вроде (в вашем sudoers файл):

nobody ALL=(userTheScriptShouldRunAs) NOPASSWD: /home/userTheScriptShouldRunAs/test.sh

Затем запустите свой скрипт:

sudo -u userTheScriptShouldRunAs /home/userTheScriptShouldRunAs/test.sh

Вы можете установить разрешения программы с помощью Setuid немного:

chown usertorunas filename

chmod ug + s имя файла

Это заставит его работать как пользователь, владеющий файлом.

Однако, как мне напомнил @Jay, для скриптов это не работает. Чтобы запустить сценарий от имени другого пользователя, вам нужно создать небольшую программу как объяснено здесь который МОЖЕТ быть setuid, и вызывает ваш скрипт.