Alguns arquivos do RPM possuem permissões falsas

2

Estou criando RPMs com fpm . Um dos objetivos é definir o usuário e o grupo dos arquivos instalados, por isso estou usando os sinalizadores --rpmuser e --rpmgroup .

Está funcionando na maior parte , no entanto, um dos diretórios não está recebendo o usuário / grupo desejado. Eu executei fpm com o sinalizador -e para inspecionar o arquivo de especificações. Todos os arquivos e diretórios estão marcados abaixo da diretiva % files que deve definir o usuário e o grupo desejados - adminuser, admingroup .

%files
%defattr(-,adminuser,admingroup,-)

# Reject config files already listed or parent directories, then prefix files
# with "/", then make sure paths with spaces are quoted. I hate rpm so much.
/etc/admin-services/admin.properties
/usr/share/admin-app/static/admin-console/index.html
/usr/share/admin-app/static/admin-console/console-env.js
/usr/share/admin-app/static/admin-console/css/styles.css
/usr/share/admin-app/webapps/admin-services.war

Após a instalação, todos os arquivos pertencem a adminuser, admingroup exceto no diretório / usr / share / admin-app / static (e tudo abaixo dele), todos pertencem a root, root .

Eu não acho que isso é culpa do fpm, o arquivo Spec parece bom. Eu acredito que este é um problema com o rpmbuild sob o capô. Alguma ideia do que poderia estar acontecendo?

Eu li na a documentação dos arquivos de especificações , e não vejo outras diretivas que possam estar afetando o diretório / usr / share / admin-app / static .

    
por quickshiftin 08.10.2013 / 20:43

1 resposta

1

Você deve usar a opção --directories . De fpm --help :

--directories DIRECTORIES     Recursively mark a directory as being owned by the package

Sem ele, a propriedade é definida apenas para arquivos, os diretórios são omitidos e pertencerão a root:root .

Se você adicionar --directories /usr/share/admin-app/static e usar fpm -e para visualizar o arquivo de especificação, verá que ele adiciona a diretiva %dir , que define explicitamente as permissões como você esperava:

%dir %attr(775, adminuser, admingroup) /usr/share/admin-app/static

E outras entradas para subdiretórios abaixo desse caminho, se houver.

Além disso, se você tiver vários diretórios na raiz do seu rpm (como eu fiz), você tem que usar uma opção --directories para cada.

Isso é um pouco confuso, mas vamos agradecer o rpm por isso, e não a falha do fpm.

    
por 20.06.2014 / 19:29