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

Как вызвать сценарий 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" не подходит.)

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