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

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

При написании сценариев для автоматизации инициализации зеркальных репозиториев SVN ( svnsync ) я снова столкнулся с проблемами при попытке запустить другой сценарий с другим пользователем привилегии .

#!/bin/sh
# This outer script is always run with root privileges ("sudo create-repo.sh")

# Create repository, set privileges, etc
[...]

# Set up remote mirror; this works fine! (SSH key authentication)
ssh svnsync@anotherserver /var/lib/svn/init-mirror.sh $REPO

# Set up local mirror as "svnsync" user
# ???

Как я могу вызвать другой сценарий на той же машине от имени другого пользователя? Обратите внимание, что внешний сценарий всегда выполняется от имени пользователя root, поэтому su 'как любой пользователь не должен быть проблема.

Я пробовал что-то вроде:

su svnsync; /path/to/init-mirror.sh $REPO; exit

и получил странные результаты. Как ты должен это делать? Когда это так просто удаленно, вероятно возможно локально, верно? (А пока давайте представим, что запуск внешнего сценария от имени того же пользователя "svnsync" не подходит.)

Я думаю, что заголовок вопроса - отстой, поэтому, пожалуйста, помогите мне переформулировать его, если сможете.

1
задан 13 April 2017 в 15:14
1 ответ

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

1
ответ дан 4 December 2019 в 02:15
  • 1
    Я мог удалять это, но I' d скорее закрыли его как простофилю (так, чтобы немного по-другому сформулированные версии соответствовали большему количеству поисков Google), –  Jonik 14 January 2010 в 17:24
  • 2
    А-ч, который имеет смысл. –  Kyle Brandt 14 January 2010 в 17:29

Теги

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