사용자를 생성하고 /etc/shadow 파일에 대한 읽기 권한을 부여하는 방법은 무엇입니까?

사용자를 생성하고 /etc/shadow 파일에 대한 읽기 권한을 부여하는 방법은 무엇입니까?

내 웹 서버 사용자(nginx)에게 /etc/shadow 파일에 대한 읽기 액세스 권한을 부여하고 이를 수행하기 위해 수행하는 단계를 확인하고 싶습니다. 제가 사용하고 있는 시스템은 CentOS 7입니다.

  1. 먼저 Shadow라는 그룹을 만들었습니다.groupadd shadow
  2. 그런 다음 웹 서버 사용자(nginx)를 그룹 섀도우에 추가했습니다.usermod -aG shadow nginx
  3. 그런 다음 소유자를 루트로 변경하고 파일 그룹 소유자를 그룹 섀도우로 변경했습니다.chown root:shadow /etc/shadow
  4. 그런 다음 섀도우 그룹의 모든 사용자에게 /etc/shadow 파일을 읽을 수 있는 읽기 권한을 허용했습니다.chmod g+r /etc/shadow

해당 단계를 수행한 후 실행했는데 ls -l /etc/shadow다음 출력이 표시됩니다.

----아르 자형-----. 1 루트 섀도우 1390 8월 30일 12:51 /etc/shadow

내가 따르고 있는 단계가 올바른가요? 알려주시면 필요한 경우 추가 정보를 제공해 드리겠습니다.

답변1

이렇게 중요한 파일의 소유자 그룹을 변경하면 일부 문제가 발생할 수도 있습니다.위험한.

이를 달성하는 적절한 보안 방법은 POSIX ACL을 사용하는 것입니다.

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

여기서 또 다른 문제는 귀하가 다음과 같은 권리를 부여했다는 것입니다.엔진스, 웹 서버. 내 생각에 웹 애플리케이션을 실행하는 것 같습니다. 그리고 /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`

따라서 귀하의 권한이 예상되는 것 같습니다!

관련 정보