Есть необходимость читать базы SVN другим пользователем, нежели root, и при этом нельзя (по соображениям безопасности, разумеется) добавить пользователя в группу root.
Тупо поменять права на базы SVN результата не даст - после первого же изменения файлов баз, они слетят на права пользователя, от которого запущен svnserve. Нужен запуск демона svnserve от другого пользователя.
Пока не могу найти решение для RELS (CentOS), которое позволит запустить демон от другого пользователя.
Это нужно для работы:
- скрипта бэкапа, выполняемого на удаленной машине и по SSH тянущего RSYNC-ом изменения;
- apache | websvn (перейти полностью на DAV-SVN пока не получается, но черный вход до репозиториев нужен для админских целей).
Запускать демон svnserve с правами другого пользователя. Как?
Правила форума
Уважаемые пользователи! Поддержка, ответы на вопросы и проблемы по серверу принимаются:
1) на багзилле http://bugs.rosalinux.ru/enter_bug.cgi? ... A%20Server
2) или после заполнения формы на http://www.rosalab.ru/products/server/download вы получаете 30 дней БЕСПЛАТНОЙ техподдержки по серверу.
Ответы на ваши вопросы на форуме НЕ ГАРАНТИРУЮТСЯ. Спасибо за понимание!
Уважаемые пользователи! Поддержка, ответы на вопросы и проблемы по серверу принимаются:
1) на багзилле http://bugs.rosalinux.ru/enter_bug.cgi? ... A%20Server
2) или после заполнения формы на http://www.rosalab.ru/products/server/download вы получаете 30 дней БЕСПЛАТНОЙ техподдержки по серверу.
Ответы на ваши вопросы на форуме НЕ ГАРАНТИРУЮТСЯ. Спасибо за понимание!
Re: Запускать демон svnserve с правами другого пользователя. Как?
Привел init-файл к такому виду.
Но демон все равно запускается с правами root-а.
Код: Выделить всё
<cut>
exec=/usr/bin/svnserve
prog=svnserve
pidfile=${PIDFILE-/var/run/svnserve.pid}
lockfile=${LOCKFILE-/var/lock/subsys/svnserve}
args="--daemon --pid-file=${pidfile} $OPTIONS"
user=${USER-apache}
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
lockfile=/var/lock/subsys/$prog
start() {
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
daemon --user=${user} --pidfile=${pidfile} $exec $args
retval=$?
echo
if [ $retval -eq 0 ]; then
touch $lockfile || retval=4
fi
return $retval
}
<cut>
Re: Запускать демон svnserve с правами другого пользователя. Как?
Все. Нашел решение.
Нужно пропатчить инит-скрипт
Нужно пропатчить инит-скрипт
Код: Выделить всё
--- svnserve.orig 2014-03-10 23:05:06.000000000 +0700
+++ svnserve 2015-02-25 21:13:43.554000938 +0600
@@ -30,15 +30,17 @@
pidfile=${PIDFILE-/var/run/svnserve.pid}
lockfile=${LOCKFILE-/var/lock/subsys/svnserve}
args="--daemon --pid-file=${pidfile} $OPTIONS"
+USER="apache"
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
-
lockfile=/var/lock/subsys/$prog
start() {
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
- daemon --pidfile=${pidfile} $exec $args
+ touch $pidfile
+ chown $USER $pidfile
+ daemon --user=$USER --pidfile=${pidfile} $exec $args
retval=$?
echo
if [ $retval -eq 0 ]; then