Возможный дубликат:
Запустить сценарий оболочки от имени другого пользователя
При написании сценариев для автоматизации инициализации зеркальных репозиториев 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" не подходит.)
Я думаю, что заголовок вопроса - отстой, поэтому, пожалуйста, помогите мне переформулировать его, если сможете.
Дубликат Выполненных сценарий оболочки как другой пользователь. Я думаю, что можно закрыть его сами?