Linux에서 Jenkins 쓰기 권한

Linux에서 Jenkins 쓰기 권한

Jenkins가 디렉토리에 쓰도록 할 수는 없지만 올바른 권한이 설정되어 있다고 생각합니다. Jenkins는 "jenkins-group"이라는 그룹에 속한 "jenkins"라는 사용자에 의해 실행됩니다. 다음을 수행하면 관련 디렉토리는 다음과 같습니다 ll.

drwxrwxr-x 2 jenkins-group jenkins-group 68 Sep 3 13:01 test_save_data_jenkins_R

아래 링크의 권장 접근 방식에 따라 "rwx" 권한이 있는 그룹을 만들고 Jenkins를 실행하는 사용자를 그룹에 추가했습니다.사용자 jenkins가 사용자의 Minecraft 홈 디렉터리 아래의 특정 디렉터리에 쓸 수 있도록 올바르게 허용하는 방법은 무엇입니까?.

그래서 "jenkins-group" rwx 권한을 그룹에 부여했고, 이 권한은 이 그룹을 보조 그룹으로 만들기 때문에 사용자 "jenkins"에게도 이러한 권한을 부여해야 합니다. 사용자 "jenkins"로 터미널에 로그인하면 touch test.txt.

cd /apps/models/test_save_data_jenkins_R && whoami && touch test.txt

다음 오류가 발생합니다.

+ cd /apps/models/test_save_data_jenkins_R
+ whoami
jenkins
+ touch test.txt
touch: cannot touch ‘test.txt’: Permission denied
Build step 'Execute shell' marked build as failure
Finished: FAILURE

"jenkins-group" 그룹에는 "apps" 및 "models" 폴더에 대한 rwx 권한도 있습니다. 다음을 사용하여 사용자 "jenkins"에게 직접 권한을 부여해 보았습니다.

$ setfacl -Rm user:jenkins:rwx /apps/models/test_save_data_jenkins_R/

이렇게 하면 스크립트가 성공적으로 실행됩니다. 그러나 이것은 실제로 해결 방법이며 이전 접근 방식에서 제가 무엇을 잘못했는지 이해하고 싶습니다.

업데이트 #1

달리기 groups jenkins:

jenkins : jenkins jenkins-group

실행 getfacl결과:

# file: test_save_data_jenkins_R/
# owner: jenkins-group
# group: jenkins-group
user::rwx
group::rwx
other::r-x

업데이트 #2

Jenkins 스크립트에서 /usr/bin/id를 실행하면 다음이 제공됩니다.

+ /usr/bin/id 
uid=775(jenkins) gid=895(jenkins) groups=895(jenkins)

터미널에서 /usr/bin/id를 실행하면 다음이 제공됩니다.

uid=775(jenkins) gid=895(jenkins) groups=895(jenkins),1012(jenkins-group)

이는 Jenkins 서비스의 safeRestart를 실행한 후에도 발생할 수 있습니다.

답변1

문제는 Jenkins 서비스를 다시 시작할 때까지 사용자 권한이 반영되지 않는다는 것입니다. 내 Red Hat Linux 컴퓨터에서 다음을 입력했습니다.

sudo service jenkins restart

관련 정보