Как указать атрибуты папок в rpm.spe c рекурсивно - PullRequest
0 голосов
/ 07 апреля 2020

Атрибут файла может быть указан в поле rpm.spec, например,

%dir %attr(0770, userA, groupA) /etc/config/

Суть в том, что в папке /etc/config есть много папок, и я хочу указать их атрибуты так же, как /etc/config. Я не хочу указывать их один за другим. Есть ли способ указать атрибут всех папок в /etc/config рекурсивно? Так же, как sudo chmod -R 770 /etc/config?

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

Вы можете сделать это:

%install
...
#whatever in plain bash
chmod -R 770 %{buildroot}%{_sysconfdir}/config
chmod 644 %{buildroot}%{_sysconfdir}/config/foo/bar/somefile

%files
# the attributes are copied from buildroot, but not user
%{_sysconfdir}/config
%{_sysconfdir}/config/foo/bar/somefile

или

%install
...
#whatever in plain bash
chmod -R 770 %{buildroot}%{_sysconfdir}/config
chmod 644 %{buildroot}%{_sysconfdir}/config/foo/bar/somefile

%files
%defattr(-, userA, groupA, -)
%{_sysconfdir}/config

или

%files
# fileattr, user, group, dirattr
%defattr(770, userA, groupA, 550)
%{_sysconfdir}/config
0 голосов
/ 16 апреля 2020

когда вы используете директиву %dir, вы указываете rpmbuild, что нужно упаковать только этот каталог, а не содержимое рекурсивно (см. здесь ). Так почему бы вам просто не использовать:

%attr(0770, userA, groupA) /etc/config/

для упаковки /etc/config/ и всех подкаталогов и файлов рекурсивно с этими атрибутами?

...