운영 체제: 우분투 서버 10.04 LTS
권한에 이상한 문제가 있는데 그 원인을 알 수 없는 것 같습니다.
설정은 다음과 같습니다:
Git 저장소 폴더(및 그 안의 파일)는 루트가 소유하고 프로젝트에 사용하는 그룹에는 rws 권한이 있습니다. 예:
ll /path/to/project
drwxrwsr-x 7 root project 4096 2013-03-14 19:19 project
jenkins 사용자는 예제의 그룹을 포함하여 프로젝트를 위해 생성한 모든 그룹의 구성원입니다. jenkins 애플리케이션은 jenkins 사용자에 의해 시작되어 프로젝트 폴더에 대한 전체 액세스 권한을 갖습니다.
이 git 폴더에서 "other"에 대한 읽기 및 실행 권한을 제거하면 빌드가 실패하고 다음과 같이 표시됩니다.
fatal: '/path/to/project' does not appear to be a git repository
추신: SELinux가 실행되지 않습니다.
답변1
나는 그것이 저장소의 하위 디렉토리에 대한 귀하의 권한이라고 생각합니다.
# Set the same ownerships for every file and directory within the repository
sudo chown -R root:project /path/to/project
# Remove permissions for others on all files
sudo chmod o-rwx $(find /path/to/project -not -type d)
그룹 구성원이 변경 사항을 다시 쓸 수 있도록 하려면 다음을 수행하세요.
# Set permissions for all subdirectories
sudo chmod 2770 $(find /path/to/project -type d)
그룹 구성원에게 읽기 전용 액세스 권한을 부여하려면 다음을 수행하세요.
# Remove write permissions for group members for every file
sudo chmod g-w $(find /path/to/project -not -type d)
# Set permissions for all subdirectories
sudo chmod 2750 $(find /path/to/project -type d)
이제 jenkins 사용자가 프로젝트 팀의 구성원인 한 그는 아무런 문제 없이 git 저장소를 복제할 수 있습니다.
그러나 시스템에 SELinux가 활성화되어 있으면 상황이 조금 더 까다로워질 수 있습니다.
즐거운 코딩하세요 :)