Permisos
A diferencia de «Permission denied», este error aparece cuando los permisos del fichero son correctos e incluso cuando la orden se ejecuta como root. Hay otra capa por encima.
Es la distinción que ahorra más tiempo: «Permission denied» apunta a los permisos clásicos; «Operation not permitted» apunta a atributos extendidos, capacidades o un módulo de seguridad.
En el orden en que lo miramos nosotros. No es un ranking de frecuencia: no publicamos estadísticas que no hemos medido.
El fichero tiene el atributo inmutable. Ni root puede modificarlo sin quitarlo antes.
Comprobar
lsattr ficheroCorregir
sudo chattr -i ficheroSELinux está bloqueando la operación aunque los permisos sean correctos.
Comprobar
sudo ausearch -m avc -ts recent 2>/dev/null | tail -10Corregir
# Corregir la etiqueta, que es lo que corresponde:
sudo restorecon -Rv /ruta
# Poner SELinux en permisivo oculta el problema, no lo resuelve.AppArmor tiene un perfil que restringe ese proceso. Es lo habitual en Ubuntu.
Comprobar
sudo aa-status
sudo dmesg -T | grep -i apparmor | tail -10Corregir
# Ajustar el perfil del programa en /etc/apparmor.d/ y recargarlo:
sudo apparmor_parser -r /etc/apparmor.d/el.perfilEl proceso corre dentro de un contenedor sin la capacidad necesaria, o con NoNewPrivileges en su unidad de systemd.
Comprobar
grep Cap /proc/self/status
systemctl show mi-servicio -p NoNewPrivileges -p CapabilityBoundingSetCorregir
# Conceder solo la capacidad concreta que haga falta, nunca --privileged:
# AmbientCapabilities=CAP_NET_BIND_SERVICELos comandos de esta página se ejecutan en tu servidor y algunos modifican la configuración: léelos antes de pegarlos. Las rutas y los nombres de servicio varían entre distribuciones. Así se elabora este catálogo.
Soporte Linux y DevOps en español