Я бы хотел защитить паролем веб-сайт, разрешающий только пользователям Linux, и их пароли, хранящиеся в / etc / passwd
и / etc / shaddow
для входа в систему.
Apache и nginx позволяют ограничить доступ, используя HTTP auth_basic , используя файлы определенных пользователей и паролей.Можно ли использовать вместо них / etc / passwd
и / etc / shadow
или как-то синхронизировать файлы?
При прямом подходе возникают две проблемы:
хэши паролей для локальных учетных записей пользователей хранятся в /etc/shadow
/etc/shadow
имеет больше полей, чем только login:hash
/etc/shadow
позволяют только пользователю root читать содержимое, и ваш веб-сервер не должен работать как rootПоэтому этот файл нельзя использовать с базовая аутентификация и наиболее распространенный модуль https://httpd.apache.org/docs/2.4/mod/mod_authn_file.html
Что вы можете сделать:
используйте mod_authnz_pam, чтобы заставить Apache использовать механизм аутентификации PAM для аутентификации пользователей. https://github.com/adelton/mod_authnz_pam
или используйте mod-auth-external в сочетании с pwauth