웹 서버와 svn에 올바른 권한을 할당하는 방법은 무엇입니까?

웹 서버와 svn에 올바른 권한을 할당하는 방법은 무엇입니까?

유닉스 파일 소유권에 관해 질문이 있습니다.

나는 drupal 웹사이트를 가지고 있고 사용자가 PHP를 사용하여 파일을 업로드할 수 있도록 하려면 "www-data"가 "files" 폴더를 소유해야 합니다.

그러나 지금은 svn을 사용하고 있으며 이 작업을 수행하려면 "svnuser"가 모든 폴더와 파일을 소유해야 합니다.

이제 적절한 권한이 있는 그룹에 두 사용자를 모두 추가해야 할 것 같습니다. 이 작업을 수행하는 방법을 정확히 모르겠습니다. 정확히 필요한 단계가 무엇인지 알려주실 수 있나요?

감사해요

답변1

이 문제를 관리하는 가장 쉬운 방법은 다음과 같습니다.액세스 제어 목록. 기본 UNIX 권한처럼 한 명의 사용자와 하나의 그룹이 아니라 원하는 수의 사용자와 그룹에 대해 권한을 설정할 수 있습니다.

ACL은 파일 시스템에서 활성화되어야 합니다. ext[234] 또는 reiserfs를 사용하려면 acl마운트 옵션을 전달해야 합니다 . 또한 ACL 유틸리티가 설치되어 있는지 확인하십시오( aclDebian 또는 Ubuntu의 패키지).

두 사용자 모두가 파일에 액세스할 수 있도록 허용하는 ACL을 설정하고 디렉터리에 일치하는 기본 ACL을 설정합니다(기본 ACL은 디렉터리에서 생성된 파일에 상속됩니다).

setfacl -m user:www-data:rwx -m user:svnuser:rwx -R /path/to/directory/tree
setfacl-d -m user:www-data:rwx -m user:svnuser:rwx -R /path/to/directory/tree

원하는 경우 다른 권한을 설정할 수 있습니다. ACL이 아닌 권한( 설정된 권한 사용)으로 파일을 실행 가능하게 만들지 않으면 chmod실행 가능 비트가 무시됩니다.

제공된 명령은 Linux용입니다. 다른 많은 UNIX 변형도 ACL을 지원하지만 사용 가능한 권한의 정확한 집합과 이를 설정하는 유틸리티는 아직 표준화되지 않았습니다.

필요한 경우 그룹을 사용하여 액세스를 제어할 수 있습니다. 이렇게 해도 ACL의 장점은 umask 문제가 발생하지 않는다는 것입니다. 그룹을 만들기만 하면 모든 파일과 디렉터리가 그룹 쓰기 가능한지 확인해야 합니다. 모든 프로세스는 002 또는 007에 대한 파일에 대한 umask를 생성하며, 이는 결국 다른 곳에서 더 자유로운 권한으로 이어질 수 있습니다. 따라서 ACL은 그룹을 생성하는 경우에도 유용합니다.

setfacl -m group:mygroup:rwx -R /path/to/directory/tree
setfacl -d -m group:mygroup:rwx -R /path/to/directory/tree

이 보안 모델이 귀하의 사용 사례에 적합할 것이라는 보장은 없습니다. 저는 단지 구현을 제공하고 있을 뿐입니다.

관련 정보