Eu tento configurar um usuário do implantador para CI com o Teamcity. Segui as instruções dessa pergunta no ServerFault: Qual é a melhor maneira de lidar com permissões para o usuário www-data do apache2 em / var / www?
O problema é que o aplicativo Teamcity está criando diretórios com 755
de permissões e o apache (2.4) não pode gravar em alguns deles. Se eu alterar as permissões para 775
manualmente, o apache poderá escrevê-las.
Veja o que fiz para definir as permissões:
- Eu criei um usuário
teamcity
.
- Adicionado
www-data
group ao usuário como grupo secundário
- Alterou a propriedade de
/var/www
para root:www-data
-
Permissões alteradas para diretórios com:
find /var/www -type d -exec chmod 2775 {} +
e para arquivos com:
find /var/www -type f -exec chmod 0664 {} +
- Adicionada
umask 0002
a /etc/profile
Testado:
su teamcity
umask
>0002
touch testfile
ls -l
>-rw-rw-r-- 1 teamcity teamcity 0 May 25 10:38 testfile
cd /var/www
touch testfile
ls -l
>-rw-rw-r-- 1 teamcity www-data 0 Mai 25 10:42 testfile
Para diretórios, é o mesmo. Eles são rw
para usuário e grupo.
Após uma implantação, as permissões de diretórios e arquivos são 755
e não 775
conforme o esperado.
O aplicativo Teamcity é iniciado como um serviço:
start-stop-daemon --start -c teamcity --exec /opt/TeamCity/bin/runAll.sh start
Parece que perdi alguns detalhes, mas não consigo encontrá-lo.
Sistema:
- Debian jessie
- Apache 2.4
- Teamcity 9
Solução:
Eu alterei o script de inicialização para o serviço Teamcity adicionando umask 002
antes do comando de inicialização.