Les changements de setcap sont-ils permanents


11

Lors de l'utilisation de setcap pour un fichier, cette modification est-elle permanente ou dois-je invoquer setcap quelque part au démarrage?

setcap cap_sys_nice fooexecutable

Réponses:


15

Le setcap sur le fichier stocke les capacités dans un attribut étendu avec un appel à setxattr . Cet attribut étendu est stocké comme les autres attributs (propriété, droits ...) dans le système de fichiers.

Depuis le noyau 2.6.24, le noyau prend en charge l'association d'ensembles de capacités à un fichier exécutable à l'aide de setcap (8). Les ensembles de capacités de fichier sont stockés dans un attribut étendu (voir setxattr (2)) nommé security.capability.

Ainsi, vous n'avez pas à réinitialiser votre plafond à chaque redémarrage.


qu'en est-il si le fichier est remplacé?
ryanwinchester

1
@ryanwinchester si seul le contenu du fichier est modifié, pas de problème, mais si le fichier est supprimé / recréé, la capacité setcap sera également supprimée.
Cédric Julien

:( ah, c'est donc mon problème. J'ai un script qui reconstruit un répertoire puis démarre un serveur en écoutant sur le port 80. J'ai besoin de trouver un moyen de ne pas avoir à exécuter à setcapchaque fois
ryanwinchester

«si seul le contenu du fichier est modifié, aucun problème» n'est pas vrai. La modification du contenu d'un fichier entraînera la suppression de ses capacités. Voir unix.stackexchange.com/a/283408/2526
Richard Fearn

0

Les changements sont permanents mais j'ai rencontré des problèmes lors de l'utilisation avec nodejs.

Vous pouvez utiliser authbindpour fournir l'autorisation par l'utilisateur

sudo touch /etc/authbind/byport/80
sudo chown user:user /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.