¿Los cambios de setcap son permanentes?


11

Cuando uso setcap para un archivo, ¿es permanente este cambio o tengo que invocar setcap en algún lugar durante el arranque?

setcap cap_sys_nice fooexecutable

Respuestas:


15

El setcap en el archivo almacena las capacidades en un atributo extendido con una llamada a setxattr . Este atributo extendido se almacena como otros atributos (propiedad, derechos ...) en el sistema de archivos.

Desde el kernel 2.6.24, el kernel admite la asociación de conjuntos de capacidades con un archivo ejecutable usando setcap (8). Los conjuntos de capacidades de archivo se almacenan en un atributo extendido (consulte setxattr (2)) denominado security.capability.

Por lo tanto, no tiene que restablecer su límite en cada reinicio.


¿Qué pasa si se reemplaza el archivo?
ryanwinchester

1
@ryanwinchester si solo se cambia el contenido del archivo, no hay problema, pero si el archivo se elimina / recrea, la capacidad de setcap también se eliminará.
Cédric Julien

:( ah, entonces ese es mi problema. Tengo un script que reconstruye un directorio y luego inicia un servidor escuchando en el puerto 80. Necesito encontrar una manera de no tener que ejecutar setcaptodo el tiempo
ryanwinchester

"si solo se cambia el contenido del archivo, no hay problema" no es cierto. Cambiar el contenido de un archivo hará que se eliminen sus capacidades. Ver unix.stackexchange.com/a/283408/2526
Richard Fearn

0

Los cambios son permanentes, pero he tenido problemas cuando los uso nodejs.

Puede usar authbindpara proporcionar permiso por usuario

sudo touch /etc/authbind/byport/80
sudo chown user:user /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.