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

Предоставление пользователям прав на чтение везде (Linux)

У меня есть «резервный» пользователь на моем сервере, которому необходимо везде иметь права на чтение. Делать chown 444 -R / backup не кажется правильным, так что мне делать?

В Linux, если вы используете файловую систему с поддержкой ACL (думаю, подойдет ext3, ReiserFS, ZFS), вы можете установить право чтения и обхода каталогов для своего пользователя-оператора резервного копирования.

Допустим, вы хотите сделать резервную копию / домой

  1. Ваш раздел должен быть смонтирован с опцией "acl" (вы можете сделать это с помощью mount -o remount,acl /home )
  2. Установите инструменты acl (setfacl и getfacl)
  3. setfacl -R -m u:"Backup User":rx /home

Если вы хотите убедиться, что новые файлы и каталоги будут иметь соответствующие права, установите ACL по умолчанию:

  1. setfacl -R -m d:u:"Backup User":rx /home

Очевидно, вы можете сделать это с более мелким зерном (например, если вы не хотите создавать резервные копии ключей gnupg или ssh, которые в любом случае должны быть защищены паролем)

ИМХО делать резервную копию от имени root нецелесообразно. Во-первых, если вам непреднамеренно не хватает места на диске, вы можете использовать до последнего доступного блока и сделать вашу систему нестабильной. Во-вторых, если вы не совсем уверены в сценарии или команде, которые используете для резервного копирования, злоумышленник может сделать резервную копию рекурсивной или совершить неприятные вещи от имени пользователя root.

Я лично использую механизм rsync для синхронизации сервера на реплике. Я использую простые групповые права на большинстве точек синхронизации, кроме дома, где я использую ACL

Правильный способ сделать это - не изменять права доступа к файлам. Вы должны использовать sudo и / или исполняемые файлы setuid.

Вы смешиваете две команды:

  • chown, который используется для изменения владельца файла. Пример: chown root:adm /etc/passwd

  • chmod, который используется для изменения прав доступа к файлу. Пример: chmod g+r myfile

Какой бы ни была ваша цель, вы действительно не хочу чтобы ваш резервный пользователь владел каждым файлом, а вы конечно не хочу чтобы каждый пользователь вашей системы имел право читать все файлы вашей системы.

Какова ваша цель?

chmod g+r myfile

g представляет группу файла (администраторы).

r представляет собой разрешение на чтение.

  • представляет собой факт добавления разрешения.

Простой ответ - запустить резервную копию от имени пользователя root. Фактически, если не считать очень обременительных и / или опасных вещей, это единственный ответ, насколько я могу судить.

В противном случае вы не можете установить резервную копию в качестве владельца чего-либо или установить ее в качестве группы для всего, поэтому единственный другой способ предоставить ей доступ - предоставить доступ всем. Проще говоря, вы запускаете резервные копии root или наводите беспорядок в своей системе.

Резервное копирование с правами root - это нормально.

Барт.

chmod 0444 / файл. для простоты используйте это: http://permissions-calculator.org/

Один несколько ненавязчивый способ сделать это - добавить пользователя резервного копирования в каждую группу в системе.

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

Это не обязательно позволит вам создать резервную копию каждого файла, но позволит вам создать резервную копию каждого файла, который пользователи не устанавливают как личные. Файлы X00 не будут скопированы.

Одним из недостатков этого подхода является то, что вы должны идти в ногу с новыми группами по мере их создания. Также для резервного копирования домашних каталогов требуется, чтобы вы установили как минимум права на выполнение для / home (для группы).

Как упоминал кто-то другой, это может сломать ssh с ключами в зависимости от вашей реализации.

--privs будет сокращением для разрешений (или привилегий) -

кого волнует, что «они» говорят «следует» / «не следует», не все из нас используют убежища для ПК на уровне АНБ, и некоторые из нас (например, чувак из OP) могли бы извлечь выгоду из небольшой политики «приходи-все-все-все-все» :

У одного из моих коллег есть Linux-бокс, в котором все прочитано (кроме корневой папки и папки lost + found), так что любой пользователь (например, я) может найти полезные вещи в своей папке / home / notme или в папке / etc /.

sudo chmod -R +r /
sudo chmod -R 700 /root
sudo chmod -R 700 /lost+found

ПРИМЕЧАНИЕ: папка / root, вероятно, принадлежит root: root (пользователь root и корневая группа), но мы сказали корневой группе никаких привилегий ... Что ж, это нормально, потому что у пользователя root все еще есть привилегии, так что это самое главное, если ваши права root? В основном, если ваш пользователь root, и вы пытаетесь войти в папку / файл, в котором говорится, что пользователь root, у вас есть полные привилегии, но в корневой группе у вас нет привилегий ... кто победит? Что ж, привилегии пользователя root говорят, что вы можете войти, вот что имеет значение (привилегии корневой группы даже не просматриваются). Также, поскольку ваш пользователь root, вы можете все это изменить