웹 서버 사용자에게 /etc/shadow 파일에 대한 읽기 권한을 부여하는 방법은 무엇입니까?

웹 서버 사용자에게 /etc/shadow 파일에 대한 읽기 권한을 부여하는 방법은 무엇입니까?

Nginx PAM 모듈을 사용하여 로컬 Linux 사용자를 인증(로그인)할 수 있도록 하고 싶습니다. CentOS 7 서버를 사용하고 있습니다. 특히 아래는 내가하려는 일입니다 ...

그만큼읽어보기ngx http auth pam 모듈에 대해 다음과 같이 말합니다.

모듈은 웹 서버 사용자로 실행되므로 사용되는 PAM 모듈은 루트가 아니더라도 사용자를 인증할 수 있어야 합니다. 즉, 사용자를 인증하기 위해 pam_unix.so 모듈을 사용하려면 겁이 나지 않으면 웹 서버 사용자가 /etc/shadow 파일을 읽도록 해야 합니다(데비안 같은 시스템에서는 www-data를 추가할 수 있습니다). 사용자를 섀도우 그룹으로 전환)

내 첫 번째 질문은 이 경우 웹 서버 사용자가 'nginx'라는 것입니다. 두 번째 질문은 웹 서버 사용자가 /etc/shadow 파일을 읽을 수 있는 권한을 어떻게 설정할 수 있습니까? 누군가 나에게 도움이 된 단계를 알려주실 수 있습니까? 나는 온라인에서 찾은 많은 튜토리얼을 따랐지만 성공하지 못했습니다. 현재 로컬 Linux 사용자가 로그인할 수 있도록 하려는 사이트에 액세스할 때 인증 프롬프트(사용자 이름과 비밀번호를 입력하라는)가 표시되지만 로컬 Linux 사용자의 자격 증명을 입력하면 성공하지 못합니다. 다시 입력하라는 메시지가 표시됩니다.

도움을 주시면 감사하겠습니다. 필요한 경우 추가 정보를 제공해 드리겠습니다.

편집하다:

먼저 다음 단계를 사용하여 소스에서 nginx를 구축하여 nginx에서 PAM을 구성했습니다.여기. 내 nginx.conf 파일에서 PAM 모듈을 포함하기 위해 맨 위에 다음 줄을 추가했습니다...

load_module /etc/nginx/modules/ngx_http_auth_pam_module.so;

또한 nginx.conf의 위치 지시문에 아래 두 줄을 포함했습니다...

auth_pam "Secure area";
auth_pam_service_name "nginx";

nginx 서비스 파일의 '/etc/pam.d' 디렉터리에 다음 두 줄이 있습니다.

auth required /usr/lib/security/pam_unix.so
account required /usr/lib/security/pam_unix.so

을 보면서읽어보기ngx http auth pam 모듈의 경우 웹 서버 사용자에게 /etc/shadow 파일에 대한 읽기 권한을 부여해야 한다는 것을 알았습니다. 이를 위해 먼저 'shadow'라는 새 그룹을 만들었습니다. 그런 다음 웹 서버 사용자(nginx라고 가정)를 'shadow' 그룹에 할당했습니다. 그런 다음 /etc/shadow 파일에 대한 권한을 변경했습니다. 이 작업을 수행하기 위해 실행한 명령은 다음과 같습니다.

groupadd shadow
usermod -a -G shadow nginx
chown root:shadow /etc/shadow
chmod g+r /etc/shadow

이 작업을 수행한 후 다음 명령을 사용하여 /etc/shadow 파일에 대한 권한을 확인했습니다.

ls -l /etc/shadow

그리고 이것이 출력이었습니다 ...

----r-----. 1 root shadow 1390 Aug 30 12:51 /etc/shadow

또한 nginx 사용자의 비밀번호를 설정했습니다. 다시 한번 말씀드리지만, 인증을 원하는 사이트에 액세스할 때 nginx 사용자 이름과 비밀번호를 입력하면 다시 입력하라는 메시지가 표시됩니다.

답변1

나는 이미 nginx-module-auth-pam을 설치하고 설정한 것 같습니다 /etc/pam.d/nginx.

그렇지 않은 경우 모든 것이 구성되므로 rpm 파일을 설치하십시오. 즉, /etc/shadow액세스 설정을 수동으로 조정할 필요가 없습니다. 사실 당신은해서는 안 된다/etc/shadowpam을 사용하는 경우를 대비해 조정하세요 . 이 파일에는 사용자의 (해시된) 비밀번호가 포함되어 있으므로 보안상의 이유로 이 파일에 대한 프로세스나 프로그램(pam 제외) 또는 사용자(루트 제외) 액세스 권한을 부여하지 않으려고 합니다.

구독 중인 경우:

yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install nginx-module-auth-pam

그렇지 않은 경우: 가져오거나 빌드https://github.com/jfut/nginx-module-auth-pam-rpm

귀하의 질문에만 답변하지 않으시겠습니까? 가져온 예제는 Debian 계열 시스템용이지만 CentOS 7과 같이 Redhat 계열 시스템에서는 구성 방법이 약간 다릅니다.

이 모듈에 대한 추가 구성 예는 다음에서 찾을 수 있습니다.GitHub.

또한 확인하시기 바랍니다https://nginx-extras.getpagespeed.com/추가 구성 예를 보려면

관련 정보