Comment fait-on un RPM qui définit les capacités POSIX d’un fichier? Si j’essaie de faire rpmbuild
tant rpmbuild
non root, j’obtiens une erreur lorsque les hooks d’installation de mon makefile tentent d’exécuter setcap
, mais si je ne lance pas setcap
comment rpmbuild
copiera-t-il les fonctionnalités? Il ne semble pas y avoir de moyen de définir la capacité à partir du fichier de spécifications RPM .
Il existe une macro de fichier de spécifications pour définir les capacités, %caps
; pour une raison quelconque, cela semble être principalement documenté dans les notes de version et les journaux de modifications, il m’a donc fallu du temps pour le trouver.
Il est utilisé comme ceci dans le fichier de spécifications:
%caps(cap_net_admin=pe) %{_sbindir}/foobar
Pour que make install
utilise uniquement setcap
quand il est setcap
par root, vous pouvez faire quelque chose comme ceci:
@if test `id -u` -eq 0; then \ setcap cap_net_admin=pe $(DEST_SBINDIR)/foobar ; \ fi