2009-11-14 2 views
1

Apache와 함께 Subversion을 사용하고 있으며 일반 사용자 (즉, 루트가 아닌 사용자)가 새 저장소를 만들길 원합니다. 그룹 www-data 및 그룹 sticky 비트 세트를 사용하여 상위 디렉토리를 사용하기에 충분할 것이라고 생각했습니다. 불행히도 "svnadmin create ..."는 끈적한 그룹이 설정되지 않은 db 디렉토리 만 남겨 둡니다. 이 문제를 어떻게 해결할 수 있습니까? 이로 인해 Apache를 통해 커밋하려고 시도 할 때 "permission denied"오류가 발생합니다.svnadmin은 디렉토리의 고정 그룹 비트를 무시합니다.

나는이 작업을 "유일한 루트는 리포지토리를 만들 수 있습니다"정책을 사용합니다. 루트가 완료되면 파일을 루트 할 수 있기 때문입니다. 하지만 그건 내가 원하는 것이 아닙니다.

[email protected]:~$ ll -d svn 
drwsrwsr-x 6 ctndocs www-data 4096 2009-11-14 18:27 svn 
[email protected]:~$ cd svn 
[email protected]:~/svn$ umask 
0002 
[email protected]:~/svn$ mkdir test 
[email protected]:~/svn$ svnadmin create test 
[email protected]:~/svn$ ls -l test 
total 24 
drwxrwsr-x 2 ctndocs www-data 4096 2009-11-14 18:31 conf 
drwxrwxr-x 6 ctndocs www-data 4096 2009-11-14 18:31 db 
-r--r--r-- 1 ctndocs www-data 2 2009-11-14 18:31 format 
drwxrwsr-x 2 ctndocs www-data 4096 2009-11-14 18:31 hooks 
drwxrwsr-x 2 ctndocs www-data 4096 2009-11-14 18:31 locks 
-rw-rw-r-- 1 ctndocs www-data 229 2009-11-14 18:31 README.txt 

참고 db 디렉토리에 "S"의 부족 : 여기

내 시험의 흔적이다. 다른 모든 사람들은 괜찮습니다.

답변

3

당신은 루트 권한을 얻을 수 있습니다 및 파일 시스템 (현대의 FS 마찬가지입니다), 당신은 파일 시스템에 FACLs를 활성화 한 다음 www-data의 기본 그룹 권한을 설정할 수 있습니다 파일 액세스 제어 목록을 지원하는 경우 :

mount /fs/root -o remount,acl 
setfacl -Rdm g:www-data:rwx /fs/root/path/to/svndir 
setfacl -Rm g:www-data:rwx /fs/root/path/to/svndir 

그 다음에 svndir 아래에 생성 된 모든 항목은 기본적으로 그룹 쓰기가 가능하고 www-data이며 getfacl으로 확인할 수 있습니다.

파일 시스템에 /etc/fstab 옵션을 추가하고 다음 부팅 후에도 FACL을 활성화해야합니다.

+0

완벽하게 작동합니다! 감사! –

+0

감사합니다. 나는 "acl"을 추가하는 방법을 이해한다고 생각한다. - 나는 그것을 fstab 항목에 추가한다. 그러나 setfacl 내용을 어디에 추가 할 것을 제안 하는가? –

+0

음 ... 내가 당신 문제를 이해하는지 모르겠다. 따라서 setfacl 명령은 파일에 대한 ACL을 조작하는 데 사용됩니다. chmod와 비슷하지만 다소 고급입니다. 따라서 SVN 저장소가있는 폴더의 그룹 권한과 기본값을 변경해야합니다. –