Desarmar capacidades adicionales `setcap` en excutable

15

Una respuesta a Linux: permitir que un usuario escuche un puerto por debajo de 1024 especificado, otorgando permisos ejecutables adicionales utilizando setcaptal que el programa pueda vincularse a puertos <1024:

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

¿Cuál es la forma correcta de deshacer estos permisos?

usuario2943160
fuente

Respuestas:

19

Para eliminar capacidades de un archivo, use la -rbandera

setcap -r /path/to/program

Esto dará como resultado que el programa no tenga capacidades.

Stephen Harris
fuente
Bueno, eso fue mucho más evidente después de volver a leer esa manpágina corta >.>
user2943160
11

Lo que publicó @ stephen-harris es correcto. Pero creo que elimina todas las capacidades agregadas al programa de una sola vez. Para eliminar una capacidad específica, seguir funcionaría (siguiendo el ejemplo en la pregunta)

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

Observe el signo '-'. Puede verificar las capacidades de {efecto de los comandos} sobre un ejecutable de la siguiente manera:

getcap /path/to/program

En el caso de setcap -r, todas las capacidades desaparecerán y el resultado de getcap estará vacío, mientras que '-ep' solo elimina lo que agregó con '+ ep'. Es útil cuando le das múltiples capacidades y quieres eliminarlas selectivamente.

Arun GK
fuente