El uso setcap
para otorgar permisos adicionales a un binario debería escribir el nuevo permiso en algún lugar, en el almacenamiento o en la memoria, ¿dónde se almacena?
Usar lsof
como está no funciona porque el proceso desaparece demasiado rápido.
capabilities
setcap
Zulgrib
fuente
fuente
/usr/bin/sleep
y dele las capacidades a esta copia.Respuestas:
Los permisos extendidos, como las listas de control de acceso establecidas por
setfacl
y los indicadores de capacidad establecidos por,setcap
se almacenan en el mismo lugar que los permisos tradicionales y los indicadores de identificación [ug] establecidos porchmod
: en el inodo del archivo.(En realidad, pueden almacenarse en un bloque separado en el disco, porque un inodo tiene un tamaño fijo que tiene espacio para los bits de permiso tradicionales pero no para los permisos extendidos potencialmente ilimitados. Pero eso solo importa en casos raros, como tener que cuidado que
setcap
podría quedarse sin espacio en disco. ¡Pero inclusochmod
podría quedarse sin espacio en disco en un sistema que utiliza deduplicación!)GNU ls no muestra los atributos setcap de un archivo. Puedes mostrarlos con
getcap
. Puede enumerar todos los atributos extendidos congetfattr -d -m -
; Se llama al atributo setcapsecurity.capability
y se codifica en un formato binario quegetcap
decodifica para usted.fuente
setcap establece las capacidades de archivo que se almacenan en el atributo extendido del sistema de archivos. Estos se explican en
man 7 capabilities
:Puede inspeccionar las capacidades de un proceso en ejecución examinando los campos CapInh / CapPrm / CapEff en
/proc/PID/status
. Consulte mi respuesta a " ¿Cómo establecer capacidades con el comando setcap? " Para obtener una explicación sobre cómo se aplican las capacidades para procesar en exec.fuente