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

Что такое безопасный набор разрешений для предоставления набора файлов для резервного копирования?

На нашем сервере есть несколько пользователей (то есть клиентов), которым требуется резервное копирование их кода. Их права доступа к файлам обычно 650 с пользователем и группой user:user (где user фактическое имя пользователя).

В crontab у нас есть пользователь, backup, который создает резервные копии всех желаемых путей к файлам через tarsnap. Проблема в том, что из-за прав доступа к файлам backup не может получить к ним доступ. Я могу придумать четыре решения:

  1. Задайте задание cron для запуска от имени пользователя root. Это самое простое решение, но я не знаю, есть ли здесь проблема с безопасностью.
  2. Создайте группу, в которую все пользователи, которых мы хотим сделать резервную копию, и backup принадлежать. Установите разрешения по умолчанию, чтобы установить группу для всех этих пользователей в эту группу ... backup group кажется хорошим выбором для названия группы. Хотя это кажется немного сложным. Как мне изменить разрешения по умолчанию для каждого пользователя, чтобы каждый затронутый файл имел пользователя user и группа backup?
  3. Измените права группы для всех файлов, которые мы хотим сделать резервную копию. Это также просто, но это также означает, что каждый раз, когда файл затрагивается (т.е. изменяется или создается), нам придется изменять группу. Не идеально.
  4. Сделайте файлы доступными для чтения. Это проблема безопасности?

Какой была бы разумная конфигурация, чтобы я мог легко создавать резервные копии этих файлов?


Подумал еще об одном…

  1. Добавить backup пользователя в каждую из групп пользователей, для которых я хочу создать резервную копию. Это решает проблему общего доступа.

Проведя некоторое исследование, кажется, что семантика /var/backups и backup пользователю неясно. Не кажется опасным помещать резервные копии в /var/backups но было рекомендовано не использовать его для резервного копирования пользователей, так как поведение недокументировано (с 2001 г.). На практике кажется, что многие процессы используют /var/backups и backup пользователь ("пользователь" - неправильное слово для описания этого ... поскольку backup не является правильным "пользователем" с домашним каталогом и т. д.), поэтому рекомендуя его использование, мы не пропагандируем что-то новое.

Я думаю, вам действительно стоит просто запустить cronjob под root

Причины:

  • Вы избежите резервных копий файлов из-за того, что пользователь установил разрешение примерно на 700. Например, ключи ssh должны иметь это разрешение, или SSH отказывается использовать их, если я правильно помню. При резервном копировании под root вы всегда будете знать, что скопировали все файлы.

  • Если вы сделаете пользователей частью одной и той же группы резервного копирования, они смогут получить доступ к файлам друг друга. Я думаю, что существует слишком много возможных проблем с безопасностью, вызванных указанной реконфигурацией для использования backup группа, чем просто использовать cronjob для пользователя root.