Jenkins escreve permissão no linux

0

Estou tendo problemas para fazer o Jenkins escrever em um diretório, mas acredito ter definido as permissões corretas. Jenkins está sendo executado por um usuário chamado "Jenkins", que pertence a um grupo chamado "Jenkins-Group". O diretório em questão é parecido com isto quando eu ll :

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

Eu segui a abordagem recomendada conforme visto no link abaixo, criando um grupo com permissões "rwx" e adicionando o usuário executando o Jenkins a esse grupo. Como posso permitir que o usuário jenkins grave em um diretório específico no diretório inicial do usuário minecraft? .

Então, eu dei ao grupo "jenkins-group" permissões rwx, que por sua vez, devem dar ao usuário "Jenkins" essas permissões também, já que ele tem esse grupo como secundário. Quando eu logar no usuário "jenkins" de um terminal, eu posso criar um novo arquivo nesta pasta usando touch test.txt . No entanto, quando eu executo uma compilação do Jenkins com os seguintes comandos no shell de execução:

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

Eu recebo o seguinte erro:

+ 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

Observe que o grupo "jenkins-group" também possui permissões rwx para as pastas "apps" e "models". Eu tentei dar ao usuário "Jenkins" permissão direta usando o seguinte comando:

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

que resultaria no script sendo executado com sucesso. No entanto, isso é realmente uma solução alternativa, e eu gostaria de entender o que estou fazendo de errado na abordagem anterior.

Atualização 1

Executando groups jenkins :

jenkins : jenkins jenkins-group

E executando getfacl retornos:

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

Atualização nº 2

A execução do script / usr / bin / id in jenkins fornece:

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

A execução de / usr / bin / id do terminal fornece:

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

Observe que isso também acontece após a execução do safeRestart do serviço jenkins.

    
por Philip 03.09.2018 / 14:40

1 resposta

0

O problema era que as permissões do usuário não eram refletidas até que eu reiniciei o serviço jenkins. Eu fiz isso na máquina do red hat linux digitando:

sudo service jenkins restart
    
por 04.09.2018 / 08:59

Tags