Cómo leer y cambiar los permisos de un fichero en Linux

Cómo leer y cambiar los permisos de un fichero en Linux

imagen de autorizado

Como seguramente ya sabes, en Linux hay una jerarquía de permisos de acceso a los ficheros y esta es la que le indica al sistema operativo quién puede ver, escribir o ejecutar un fichero en el equipo. Estos permisos son iguales en todas las distribuciones en Linux, ya sea en Ubuntu, Debian, ArchLinux o CentOS.

Puedes tener tu propia distribución de Linux instalada en una máquina virtual en tu equipo si accedes al curso gratuito de Linux básico que te ofrezco en mi web.

Puedes ir a la página oficial de Linux para ver como se aplican estos permisos, o quedarte aquí y entender de forma sencilla como leer y cambiar los permisos de los ficheros en Linux.

Los permisos en Linux vienen indicados por letras cuando lanzas un comando de listar los ficheros y directorios. Las primeras letras de cada línea te indican los permisos que tiene habilitados los ficheros y se leen en bloques de 3 letras a excepción de la primera letra que nos indica si nos encontramos con un directorio ( letra d) o con un fichero regular ( un guion “-“).

Ver los permisos de los ficheros en Linux

Vamos a ver rápidamente los permisos de un fichero basta con lanzar el comando básico para listar, es decir este comando:

root@aprendolinux:/home/jaime/test# ls -l

total 112
drwxr-xr-x 2 jaime jaime          4096 may 22  2020 directorio1
drwxr-xr-x 2 jaime jaime          4096 feb 20  2020 directorio2
-rw-r--r-- 1 jaime jaime         45204 jun 23 17:13 fichero1
-rwxrwxrwx 1 jaime jaime            18 jun 23 17:42 fichero2

Como ves el directorio1 y el directorio2 tienen una “d” delante de los permisos, que como te comenté antes, significa que (obviamente) son directorios, jeje.

Qué significa “rwx” en Linux

Después vemos que tiene “rwx” lo que significa que tiene permisos de:

r: lecturaw: escriturax: ejecución

Y los bloques de permisos van de 3 en 3 y se leen en este orden:

USUARIO
rwx
GRUPO
rwx
TODOS
rwx

Por tanto cuando vemos como en el código anterior algo como “rw-r–r–” significa esto:

USUARIO
rw
El propio usuario tiene permisos de lectura y escritura, pero no de ejecución.
GRUPO
r–
El grupo al que pertenece el usuario tiene permisos sólo de lectura.
TODOS
r
Todos los usuarios del sistema tienen permisos parar leer.

Cómo cambiar los permisos de un fichero o directorio (carpeta) en Linux

Si ya tenemos estos permisos en un fichero o en un directorio (lo que se asemejaría a una carpeta de Windows) pero queremos darle otros permisos diferentes, podemos hacerlo de varias formas… pero siempre con el mismo comando, que sería “chmod

Usando chmod en Linux

Por ejemplo teniendo los permisos como en el fichero anterior, vemos que tenemos permisos de lectura y escritura pero faltaría el de ejecución. Si queremos darle permisos de ejecución de una vez a todos los grupos y personas del equipo, bastaría con lanzar el siguiente comando:

root@aprendolinux:/home/jaime/test# ls -l
drwxr-xr-x 2 jaime jaime          4096 may 22  2020 directorio1
drwxr-xr-x 2 jaime jaime          4096 feb 20  2020 directorio2
-rw-r--r-- 1 jaime jaime         45204 jun 23  2020 fichero1
-rwxrwxrwx 1 jaime jaime            18 jun 23  2020 fichero2
root@aprendolinux:/home/jaime/test# chmod +x fichero1
root@aprendolinux:/home/jaime/test# ls -l
drwxr-xr-x 2 jaime jaime          4096 may 22  2020 directorio1
drwxr-xr-x 2 jaime jaime          4096 feb 20  2020 directorio2
-rwxr-xr-x 1 jaime jaime         45204 jun 23  2020 fichero1
-rwxrwxrwx 1 jaime jaime            18 jun 23  2020 fichero2

Fácil, ¿no? Venga ahora vamos a empezar a a ponerlo un poco más difícil. Si no queremos añadir (+x) o quitar (-x) permisos en general, y lo que queremos es poner unos permisos específicos, como por ejemplo “rw-rw-rw” tenemos que pensar en código binario.

Pasar permisos Linux a código binario y decimal

Para pasar los permisos de un fichero o un directorio a código binario tenemos que volver a separarlos de tres en tres como hemos visto en el punto anterior. Y como siempre tienen la misma posición, asignamos un 1 o un 0 según los permisos estén activados o desactivados. Por ejemplo en el caso de “rwx r-x r-x” se trasladaría a unos y ceros en la tabla de esta forma:

USUARIO
rwx
111
GRUPO
rwx
101
TODOS
rwx
101

Por lo tanto, pasando estos números de código binario a números decimales tendríamos 755. Entonces si queremos que el “fichero2” tenga directamente esos permisos igual que “fichero1” tendríamos que hacer lo siguiente:

root@aprendolinux:/home/jaime/test#  chmod 755 fichero2
root@aprendolinux:/home/jaime/test#  ls -l
drwxr-xr-x 2 jaime jaime  4096 may 22  2020 directorio1
drwxr-xr-x 2 jaime jaime  4096 feb 20  2020 directorio2
-rwxr-xr-x 1 jaime jaime 45204 jun 23  2020 fichero1
-rwxr-xr-x 1 jaime jaime    18 jun 23  2020 fichero2

¿Lo ves? Hemos cambiado con este comando el permiso de fichero2 y lo hemos puesto exáctamente igual que el permiso fijado en fichero1.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *