Apache가 공유 환경에서 파일에 안전하게 액세스할 수 있도록 권한을 구성하는 방법은 무엇입니까?

Apache가 공유 환경에서 파일에 안전하게 액세스할 수 있도록 권한을 구성하는 방법은 무엇입니까?

우리 학교에는 여러 사용자와 여러 그룹이 있는 공유 서버 환경이 있습니다.

관련 그룹:

students

daemon (아파치 실행 중)

학생들에게 자신이 소유한 파일에 대한 전체 액세스를 허용하고 다른 학생의 파일에는 액세스할 수 없도록 하고 싶습니다. 서로 다른 두 명의 학생이 서로의 파일을 볼 수도 없어야 합니다.

또한 아파치가 모든 학생 파일을 읽고 실행할 수 있기를 바랍니다. 특히, 저는 Apache가 각 학생이 소유한 비밀번호 파일을 읽을 수 있기를 원하며, 또한 비밀번호 파일의 소유자가 이에 대한 전체 접근 권한을 갖기를 원합니다.

내가 아는 바로는 가장 좋은 방법은 비밀번호 파일의 그룹 소유자를 Apache로 변경하는 것입니다.

그래서 이 글을 읽은 후,

https://serverfault.com/questions/357108/what-are-the-best-linux-permissions-to-use-for-my-website

간단한 chgrp로 문제가 해결될 것 같습니다.

그런데 나는 이런 일을 겪었습니다.

이 작업을 사용하려면 파일의 소유자이자 대상 그룹(또는 루트)의 구성원이어야 합니다.

따라서 각 학생은 데몬 그룹의 일부가 아니며 이 명령을 실행할 수 없습니다. 다른 학생의 비밀번호 파일도 볼 수 있으므로 이 그룹을 제공하는 것은 의미가 없습니다.

이전 스레드에서 현재 보안 설정이 부적절하다는 것을 이해하고 내일 시스템 관리자와 회의를 예약했습니다.

하지만 시스템 관리자에게 무엇을 요청해야 할지 아직 잘 모르겠습니다.

서버에 있는 모든 비밀번호 파일에 대한 권한을 수동으로 변경하라고 실제로 요청할 수는 없습니다. 파일 이름과 위치가 다르며 많은 학생들이 아직 설정조차 하지 않았습니다.

학생들에게 chgrp에 대한 전체 액세스를 허용하는 것은 위험해 보입니다.

내가 선호하는 것은 학생에게 파일을 요청한 다음 학생을 대신하여 chgrp를 실행하여 아파치 그룹 소유권을 부여하는 일종의 스크립트를 생성하도록 요청하는 것입니다. 이것은 가능해 보이지만 Linux를 처음 접하는 사람이기 때문에 상당히 복잡합니다. 그 사람이 그런 일을 쉽게 할 수 있을까?

ACL도 고려했지만 마음이 다시 chgrp로 돌아가서 학생들이 setacl에 액세스하도록 허용하는 것은 위험해 보였습니다.

답변1

ACL이 답입니다. 학생은 를 실행하기 위해 특별한 권한이 필요하지 않으며 setfacl사용자는 자신이 소유한 모든 파일의 ACL을 설정할 수 있습니다.

ACL을 위해 시스템을 설정해야 하는 경우 다음을 참조하세요.디렉터리의 모든 새 파일을 그룹에서 액세스할 수 있도록 설정

학생들에게 Apache가 액세스할 수 있는 파일이 필요하면 다음을 실행해야 한다고 말합니다.

setfacl -m group:daemon:r ~/path/to/password.file
setfacl -m group:daemon:x ~ ~/path ~/path/to

x이러한 디렉터리(하위 디렉터리 포함)의 파일에 액세스하려면 해당 디렉터리에 대한 권한이 필요합니다.

관련 정보