2012-06-25 3 views
0

У меня есть небольшой NAS-сервер (QNAP TS-210) с ограниченным Linux на борту. У меня проблемы с запуском ловушек в моем локальном SVN-демоне. Если я запускаю их напрямую, из командной строки все в порядке. Если SVN попытается запустить их как hook или если они добавлены в crontab, а затем CRON попытается их запустить, то оба не пройдут.SVN: Демон Force svn для запуска под другим пользователем

Мне сказали, что это связано с различием между пользователями, использующими эти скрипты/крючки. Я регистрируюсь до моего nas через SSH как «admin» и предполагаю, что оба CRON и SVN работают под «root». Похоже, что у root не было достаточных привилегий для целевой папки (я использую SVN post-commit-hook для экспорта репозитория в какую-либо локальную папку) или для запуска SVN/CRON (SVN также терпит неудачу при переквалификации с предварительным revprop-change, даже если он содержит только exit 0, поэтому я предполагаю, что SVN не может запускать крючки вообще). Или, может быть, это что-то другое?

EDIT: Как заставить SVN работать под «admin» или как я могу установить достаточно привилегий для «root», чтобы он мог запускать SVN-крючки так, как я могу («admin»)?

EDIT: Мой крюк сценарий в /share/Sys/svn/tools_and_examples/hooks так, называя

ls -lh /share/Sys/svn/tools_and_examples/hooks 

результаты этого:

-rwxrwx--x 1 trejder everyone  147 Jun 24 14:33 post-commit.cron* 
-rw-rw---- 1 admin administ  1.9k Jun 25 12:20 post-commit.tmpl 
-rw-rw---- 1 admin administ  1.6k Jun 25 12:20 post-lock.tmpl 
-rw-rw---- 1 admin administ  2.2k Jun 25 12:20 post-revprop-change.tmpl 
-rw-rw---- 1 admin administ  1.5k Jun 25 12:20 post-unlock.tmpl 
-rw-rw---- 1 admin administ  3.3k Jun 25 12:20 pre-commit.tmpl 
-rw-rw---- 1 admin administ  2.4k Jun 25 12:20 pre-lock.tmpl 
-rw-rw---- 1 admin administ  6 Jun 25 12:29 pre-revprop-change 
-rw-rw---- 1 admin administ  2.1k Jun 25 12:20 pre-unlock.tmpl 
-rw-rw---- 1 admin administ  2.7k Jun 25 12:20 start-commit.tmpl 

и ls -lh /share/Sys/svn/tools_and_examples/hooks/post-commit.cron Гав мне это:

-rwxrwx--x 1 trejder everyone  147 Jun 24 14:33 /share/Sys/svn/tools_and_examples/hooks/post-commit.cron* 

Надежда, это помогу.

ответ

1

для хрон быть запущен от имени администратора, вместо редактирования

/etc/crontab 

вы должны использовать

crontab -e 

вошли в систему как администратор и поместить любую команду/скрипт, который вы хотите быть запущен администратором с его собственный кронтаб. Если я не ошибаюсь, он должен запустить его как пользователь «admin»

+0

№ Это не чистый Linux, а только определенная система (сетевое хранилище TS-210 для QNAP). Linux на борту он действительно ограничен и иногда был странным. Например, я редактирую/etc/config/crontab всегда (другие места crontab игнорируются), будучи зарегистрированным как администратор, и должен вызвать определенный скрипт, чтобы «запомнить» все, что я там поставил, перед перезапуском crond. Без этого мои изменения в crontab будут перезаписаны и забыты при следующем перезапуске системы. Странная вещь, которая не происходит на регулярной Linux (как я полагаю), и это явный пример того, как странная Linux я там разбираюсь. – trejder

+0

Внутри «моего» crontab (/ etc/config/crontab) Я могу также добавить «админ» в качестве дополнительного поля, чтобы заставить CRON запускать определенную работу под конкретным пользователем. Но это тоже ничего не меняет. Несмотря на то, что скрипт запускается CRON в качестве администратора, команда svn export внутри этого скрипта не является и хотя не вызвана вообще. Поэтому мне нужно определить, как заставить svn daemon запускаться под «admin» или как добавить к нему текущего пользователя больше привилегий. – trejder

+0

Просто небольшое уведомление. Если я использую 'crontab -e', тогда я редактирую тот же самый файл, то есть тот, который хранится на/etc/config/crontab на моем устройстве NAS. – trejder

Смежные вопросы