
Я хотел бы предоставить пользователю моего веб-сервера (nginx) доступ на чтение к файлу /etc/shadow и хотел бы подтвердить шаги, которые я предпринимаю для этого. Я использую систему CentOS 7.
- Сначала я создал группу под названием shadow:
groupadd shadow
- Затем я добавил пользователя веб-сервера (nginx) в группу shadow:
usermod -aG shadow nginx
- Затем я изменил владельца на root и изменил группу владельца файла на группу shadow:
chown root:shadow /etc/shadow
- Затем я предоставил всем пользователям в группе 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`
Так что, похоже, ваши разрешения вполне ожидаемы!