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

Запуск svnsync в репозитории с установленным suid / sgid группы не может выполнить ловушку

У меня есть Linux-сервер, который я пытаюсь запустить svnsync против списка репозиториев для зеркалирования / резервного копирования.

Я создал папку /srv/backups и установите для него групповой gsid adm, с помощью chmod g+s так что любой элемент или папка, созданные в этом каталоге, сохраняют право собственности группы ADM.

неудача

Затем я:

svnsync: E165001: изменение Revprop заблокировано обработчиком pre-revprop-change (код выхода 255) без вывода.

успехи

Если я повторю те же шаги выше, скопировав то же самое pre-revprop-change однако к целевому зеркалу:

  1. работает от имени себя в папке в моем домашнем каталоге,
  2. или работает как root против /srv/svnmirrors где root:adm владеет, но gsid не установлен,

Затем он выполняется правильно, что позволяет мне инициализировать, а затем синхронизировать.

гипотеза

Итак, я почти уверен, что это проблема с gsid, а значит, у svnsync нет разрешений на запуск ловушки.

Насколько я понимаю, gsid указывает программам, действующим против этого каталога, запускаться с этими учетными данными; поэтому добавление папки выполняется как я: adm, и я ожидал бы, что запуск svnsync будет запускаться как я: adm или root: adm и должен иметь достаточные привилегии.

разрешения

Вот основные папки под /srv, где backups терпит неудачу и svnmirrors успешно:

drwxrwsr-x 11 root adm 4096 16 сен 17:09 резервные копии
drwxrwxr-x 2 root adm 4096 16 сен, 17:24 svnmirrors

И вот крючки в обоих местах:

крючок, который не выполняется; пробовал как root, так и myuser:

-rwxr-xr-x 1 myuser adm 2794 16 сентября 16:54 резервные копии / blah / hooks / pre-revprop-change
- ИЛИ -
-rwxr-xr-x 1 root adm 2794 16 сентября 16:54 резервные копии / blah / hooks / pre-revprop-change

следующий

-rwxr-xr-x 1 myuser myuser 2794 16 сентября 16:45 svnmirrors / blah / hooks / pre-revprop-change

Мысли:

  1. Это то, что svnsync не работает в группе adm?
  2. Если да, можно ли добавить svnsync в adm?
  3. Или мне нужно установить другую группу в папке и убедиться, что я нахожусь в этой группе?
  4. Установив gsid, выявляю ли я уязвимости на сервере? Ссылка эта глава о безопасности.

Решено - монтировать раздел без noexec вариант

Убедитесь, что вы смонтировали каталог без noexec вариант!

Я не знаю, что заставило меня заглянуть /etc/fstab (или почему я не подумал об этом раньше), но /srv/backups это отдельный раздел, и я объявил его с noexec вариант.

Это предотвратило движение крючка; удалив это и снова установив, все работает нормально.

Но я собираюсь сбросить gsid из папки, сменить раздел на nosuid, и разрешить выполнение.

Могу я предложить использовать сценарии svnbackup.pl и svnrestore.pl от Криса Найта для резервного копирования вашего репо? Мы его используем, и он отлично работает.

Если вы этого не сделали, вам также необходимо изменить pre-revprop-change перехватчик в дополнение к копированию на место - он блокирует изменения revprop (для всех свойств, кроме svn:log) по умолчанию. Вам нужно будет добавить что-то вроде:

if [ "$USER" = "svnsync" ]; then exit 0; fi

Видеть Вот для получения дополнительной информации.