Comprender y resolver problemas de propiedad de archivos en Linux: "Operación no permitida"
Al intentar cambiar la propiedad de un archivo en un sistema Linux, puede encontrar el error Operación no permitida
si la acción falla. Este error genérico no nos da mucha idea de cuál podría ser el problema, por lo que debemos investigar un poco para descubrir por qué ocurre el error. En este tutorial, recorreremos algunos pasos de solución de problemas para determinar por qué ocurre este error al intentar cambiar la propiedad del archivo con el comando chown
de Linux.
En este tutorial aprenderás:
- Cómo cambiar la propiedad de un archivo usando
sudo
- Cómo montar un sistema de archivos con configuración de propiedad
- Cómo cambiar el indicador inmutable en los atributos extendidos de un archivo
Solución del error "Operación no permitida" en Linux
El error Operación no permitida
puede aparecer en multitud de circunstancias en un sistema Linux. Pero estamos investigando específicamente por qué ocurre este error cada vez que se intenta cambiar la propiedad de un archivo con el comando chown.
Por ejemplo:
$ chown linuxconfig: example_file.txt
chown: changing ownership of 'example_file.txt': Operation not permitted
¿SABÍAS QUE?
El error Operación no permitida
suena similar al error Permiso denegado
, pero los dos errores en realidad son causados por cosas diferentes. El error de permiso denegado generalmente indica una falta de permisos de archivo necesarios, mientras que el primero significa que simplemente no se pudo realizar una operación.
Veamos a continuación algunas razones diferentes por las que puede aparecer el error Operación no permitida
al utilizar el comando chown
de Linux:
Permisos insuficientes
La causa más común de este error es que probablemente su cuenta de usuario no tenga permisos suficientes para estar delegando la propiedad del archivo en cuestión. Si desea cambiar la propiedad de un archivo, entonces su cuenta de usuario ya debe ser la propietaria. De lo contrario, sólo la cuenta raíz puede cambiar la propiedad del archivo.
En este escenario, podemos simplemente anteponer nuestro comando chown
con sudo
, y la propiedad del archivo debería cambiarse exitosamente:
$ sudo chown linuxconfig: example_file.txt
¿Sigue sin funcionar? Pruebe una de las otras soluciones a continuación.
El sistema de archivos no admite permisos de Linux
Si está trabajando en un sistema de archivos que no admite permisos de archivos de Linux (sistemas de archivos distintos de ext3, ext4, etc.), encontrará el error Operación no permitida
al intentar cambiar la propiedad del archivo: incluso cuando se utiliza la cuenta raíz. Los sistemas de archivos como exFAT no admiten permisos de archivos de forma predeterminada.
En este caso, la solución sería montar el sistema de archivos usando las opciones uid=1000,gid=1000
, de modo que todos los archivos en el sistema de archivos sean propiedad de la cuenta de usuario y grupo actual. .
$ sudo mount -t exfat -o uid=1000,gid=1000 /dev/sdX1 /mount/point
Deberá adaptar el comando anterior para que se ajuste a sus necesidades (ingrese el tipo de sistema de archivos, la ruta del dispositivo y el punto de montaje adecuados), pero la idea es usar -o uid=1000,gid=1000
La opción en su comando mount
le permitirá tomar posesión de todos los archivos en el sistema de archivos una vez que esté montado.
El archivo tiene el indicador inmutable establecido en los atributos extendidos
Otro escenario en el que puede aparecer el molesto error Operación no permitida
es cuando el indicador inmutable se establece dentro de los atributos extendidos del archivo. Si se establece este indicador, no podrá cambiar la propiedad del archivo con el comando chown
.
Siga los pasos a continuación para cambiar el indicador inmutable en un archivo:
-
Primero, a modo de ejemplo, veamos cómo activar la bandera inmutable:
$ sudo chattr +i example_file.txt
Podemos examinar los atributos extendidos del archivo usando el comando
lsattr
en él:$ lsattr example_file.txt ----i--------e-- example_file.txt
El
i
en el resultado anterior indica que el indicador inmutable está activado, lo que significa que será imposible cambiar el propietario del archivo, incluso con la cuenta raíz. Comprobemos para asegurarnos:$ sudo chown linuxconfig:linuxconfig example_file.txt chown: changing ownership of 'example_file.txt': Operation not permitted
Para solucionar este problema, podemos desactivar la bandera inmutable ejecutando el siguiente comando:
$ sudo chattr -i example_file.txt
Comprobemos una vez más los atributos extendidos del archivo:
$ lsattr example_file.txt -------------e-- example_file.txt
Bueno para ir. Ahora podemos cambiar exitosamente la propiedad del archivo con el comando
chown
:$ sudo chown linuxconfig:linuxconfig example_file.txt
Pensamientos finales
En este tutorial, vimos cómo resolver el error Operación no permitida
en un sistema Linux. Pasamos por varios escenarios en los que este error puede ocurrir al intentar usar el comando chown
para cambiar la propiedad de un archivo en Linux. Esta no pretende ser una lista exhaustiva, especialmente porque el error es bastante genérico, pero los problemas anteriores suelen ser las causas principales del error. Esperamos que esto le haya ayudado a solucionar el error.