Как создать пользователя и дать ему права на чтение файла /etc/shadow?

Как создать пользователя и дать ему права на чтение файла /etc/shadow?

Я хотел бы предоставить пользователю моего веб-сервера (nginx) доступ на чтение к файлу /etc/shadow и хотел бы подтвердить шаги, которые я предпринимаю для этого. Я использую систему CentOS 7.

  1. Сначала я создал группу под названием shadow:groupadd shadow
  2. Затем я добавил пользователя веб-сервера (nginx) в группу shadow:usermod -aG shadow nginx
  3. Затем я изменил владельца на root и изменил группу владельца файла на группу shadow:chown root:shadow /etc/shadow
  4. Затем я предоставил всем пользователям в группе shadow права на чтение файла /etc/shadow:chmod g+r /etc/shadow

После выполнения этих шагов я запустил ls -l /etc/shadowи увидел следующий вывод

----r-----. 1 корневая тень 1390 30 авг 12:51 /etc/shadow

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

решение1

Изменение группы владельцев такого важного файла может даже сломать некоторые вещи, чтоопасный.

Правильный безопасный способ добиться этого — использовать списки контроля доступа POSIX:

setfacl -m u:special_user:r /etc/shadow

Другая проблема здесь в том, что вы дали это правоNginx, веб-сервер. Который, я полагаю, запускает какое-то веб-приложение. И очень плохая идея иметь прямой доступ /etc/shadowиз веб-приложения.

Это может показаться контрпродуктивным, но именно так все серьезные системы делают такие вещи: они включаютчастный безопасный прокси-сервискоторый выполняет все проверки безопасности, а веб-фронтенд может общаться только с этой прокси-службой, чтобы получить доступ к конфиденциальным данным или сделать другие конфиденциальные вещи. Например, вот как построен Proxmox VE: есть pvedaemon, который делает опасные вещи, и pveproxy (веб-сервер) общается с pvedaemon только тогда, когда ему нужно сделать такие вещи.

Третья проблема заключается в том, что вы вообще обращаетесь к этому файлу. Что вы собираетесь делать? Этот файл является частью пакета PAM. Что, если какая-то системная аутентификация будет изменена так, что она не будет использовать теневой файл, или она будет перемещена? Вам следует использовать вызовы библиотеки PAM, которые сделают все это за вас.

решение2

Это похоже на вывод

chmod g=r /etc/shadow

и не

chmod g+r /etc/shadow

то есть, вы, похоже, случайно использовали знак равенства вместо знака сложения.

Редактировать: Я только что дважды проверил свою систему, и разрешения для моего /etc/shadowфайла выглядят следующим образом:

`----------. 1 root root 1183 20 Aug 11.53 /etc/shadow`

Так что, похоже, ваши разрешения вполне ожидаемы!

Связанный контент