Désactiver les fonctionnalités supplémentaires de «setcap» sur excutable

15

Une réponse à Linux: autoriser un utilisateur à écouter un port inférieur à 1024 spécifié en donnant à un exécutable des autorisations supplémentaires en utilisant de setcaptelle sorte que le programme puisse se lier à des ports <1024:

setcap 'cap_net_bind_service=+ep' /path/to/program

Quelle est la bonne façon d'annuler ces autorisations?

user2943160
la source

Réponses:

19

Pour supprimer des fonctionnalités d'un fichier, utilisez l' -rindicateur

setcap -r /path/to/program

Cela entraînera le programme n'ayant aucune capacité.

Stephen Harris
la source
Eh bien, c'était beaucoup plus évident après avoir relu cette courte manpage>.>
user2943160
11

Ce que @ stephen-harris a posté est juste. Mais je crois qu'il supprime toutes les capacités ajoutées au programme en un seul coup. Pour supprimer une capacité spécifique, ce qui suit fonctionnerait (en suivant l'exemple de la question)

setcap 'cap_net_bind_service=-ep' /path/to/program,

Remarquez le signe «-». Vous pouvez vérifier les capacités {effet des commandes} sur un exécutable comme suit:

getcap /path/to/program

Dans le cas de setcap -r, toutes les capacités auront disparu et le résultat de getcap sera vide alors que «-ep» supprimera simplement ce que vous avez ajouté avec «+ ep». Pratique lorsque vous avez donné plusieurs fonctionnalités et que vous souhaitez les supprimer de manière sélective.

Arun GK
la source