Попытайтесь использовать psservice.exe из http://technet.microsoft.com/en-us/sysinternals/bb897542.aspx, Это имеет параметры командной строки-U и-P для использования другого имени пользователя и пароля. Это упоминает: Используйте имя пользователя и пароль для вхождения в удаленный компьютер в случаях, где учетная запись не имеет полномочий выполнить действие, Вы указываете.
Просто используйте su - www-data -c 'svnadmin create / svn / repository'
в вашем скрипте, запускаемом пользователем root. Чтобы только эта команда выполнялась пользователем www-data.
Обновление для будущих зрителей :
Если вы получаете сообщение «Эта учетная запись в настоящее время недоступна»
, рассмотрите возможность использования :
su - www-data -s / bin / bash -c 'svnadmin create / svn / repository'
(ценное упоминание @Petr о флаге -s
для размещения www-data
политика запрета входа пользователя)
Используйте su
:
su [options] [username]
The options which apply to the su command are:
-c, --command COMMAND
Specify a command that will be invoked by the shell using its -c.
С su, вероятно, запрашивается пароль, а www-data не имеет пароля. Я рекомендую команду sudo
:
sudo -u www-data command
Условием является то, что ваш пользователь должен быть root или настроен в файле sudoers
2 возможных подхода :
1) команда sudo
:
В большинстве случаев у вас будет доступ к sudo
команда, поэтому решение простое:
sudo -u target_user target_command
2) su
команда (если sudo не установлено. Например, образы alpine-linux
):
su - target_user -c 'target_command'
В случае получения ошибки «Эта учетная запись в настоящее время недоступна» означает, что у пользователя действует политика отсутствия входа в систему (доступа к оболочке). Если это так, рассмотрите возможность использования:
su - target_user -s / bin / bash -c 'target_command'
(на основе ценного комментария @Petr о флаге -s
для размещения www-data
политика запрета входа пользователя)