Come si crea un RPM che imposta lo POSIX capabilities di un file? Se provo a fare rpmbuild
come utente non root, ricevo un errore quando i ganci di installazione del makefile cercano di eseguire setcap
, ma se non eseguo setcap
in che modo lo rpmbuild
copierà le funzionalità? Non sembra esserci alcun modo per impostare la capacità all'interno dello RPM spec file.Creazione di un RPM che imposta le funzionalità dei file POSIX
5
A
risposta
7
Lì è una macro file spec per l'impostazione delle funzionalità, %caps
; per qualche motivo questo sembra essere principalmente documentato nello release notes e nei changelog, quindi mi ci è voluto un po 'per trovarlo.
E 'usato come questo nel file spec:
%caps(cap_net_admin=pe) %{_sbindir}/foobar
Per arrivare make install
da usare setcap
solo quando invocato da root, si può fare qualcosa di simile:
@if test `id -u` -eq 0; then \
setcap cap_net_admin=pe $(DEST_SBINDIR)/foobar ; \
fi
non ero in grado per far funzionare la direttiva '% caps'. Stava ricevendo l'errore di sintassi vicino a token imprevisto \ cap_net_raw + ep''. Ho trovato un'altra soluzione usando '% post' come descritto in questo numero: https://github.com/schweikert/fping/issues/24#issue-5647305 – acw