Как выполнить сценарий оболочки в другом пользователе, не вводя пароль

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

Непротестированный.

find /files -type d | while read -r dir
do
    base="000000${dir##*/}"
    new="/files/namespaced/${base: -9:3}/${base: -6:3}/${base: -3}"
    mkdir -p "$new"
    mv "$dir/*" "$new"
    rmdir "$dir"
done

Другой способ получить новое имя каталога:

new=$(echo "$dir" | sed 's|...$|/&|;s|\(.*\)/\(.*\)/\(...\)$|\1/namespaced/000000\2/\3|; s|\(.*\)/.*\(...\)\(...\)/\(...\)$|\1/\2/\3/\4|' "$dir")
4
задан 29 March 2012 в 10:19
3 ответа

Для этого вы можете использовать sudo . Во-первых, вам нужно изменить файл / etc / sudoers , чтобы добавить правило, позволяющее пользователю hudson стать другим пользователем для рассматриваемого сценария. Предположим, у вас есть учетная запись user1 , для которой необходимо запустить /usr/local/bin/my_script.sh .

Запустите visudo , чтобы изменить ] sudoers файл и добавьте подобное:

hudson ALL=(user1) NOPASSWD: /usr/local/bin/my_script.sh

Затем используйте следующую команду sudo , чтобы запустить сценарий из hudson:

sudo -u user1 /usr/local/bin/my_script.sh

Это очень важно, чтобы вы используйте visudo , чтобы изменить файл sudoers , чтобы проверить файл на наличие ошибок, прежде чем вставлять его на место. Как и я'

9
ответ дан 3 December 2019 в 02:37

sudo -u hudson command запустит команду от имени пользователя hudson. Его необходимо настроить в вашем файле sudoers, где вы также можете настроить его так, чтобы пароль не требовался.

0
ответ дан 3 December 2019 в 02:37

Комментируя запись Defaults requiretty в /etc/sudoers или другие включенные файлы suders должны помочь.

Что касается ошибки perl - вы, вероятно, используете другой PERL5LIB или другой бинарный файл perl для этого пользователя - и он не будет передан в sudo (если только вы не используете -E или env_keep). Проверьте ваше окружение и, возможно, разрешения.

.
1
ответ дан 3 December 2019 в 02:37

Теги

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