Como ya apuntábamos en entradas anteriores, sobre la terminal de Linux, es muy importante dominar el concepto de permisos de un archivo, cambiarlo y saber cuales tenemos que poner.
Tabla de contenidos
¿Qué son los permisos?
Los permisos son una máscara de bits que nos permite definir quien va a poder leer, escribir y/o ejecutar este archivo.
Una máscara de bits es un conjunto de bits, donde cada posición tiene un valor específico y puede valer 1 para activar esa opción, 0 si queremos desactivar la opción.
En el caso que nos ocupa la máscara tiene 3 bits: lectura, escritura y ejecución. En este orden (el orden es importante). Por ejemplo si nosotros ponemos 101 estamos diciendo que tenemos permisos para leer el archivo y para ejecutarlo, pero no para escribirlo ya que el bit de escritura vale 0. Para un manejo más simple y sencillo se utilizan números que luego se pasan a octal. Si queremos poner, todos los permisos ponemos un 7 ya que en octal es 111.
Viendo los permisos
Como ya dijimos el otro día para ver los permisos de los archivos que están contenidos en un directorio podemos utilizar ls -l.
Si por el contrario, solo queremos ver los permisos que están asociados a un archivo podemos utilizar ls -l ruta_archivo.extension . Como en este ejemplo:
Para una mejor visualización por pantalla, en lugar de los números de cada máscara nos sale una r de lectura, una w de escritura y una x de ejecución. Si no tenemos alguno de estos permisos nos sale un – que nos indica que ese permiso no lo tenemos. En el caso de Cywin.ico yo tengo permisos de lectura y escritura y no de ejecución.
Gestionando los permisos en Linux
En Linux, todo archivo tiene asociado por lo menos, 3 grupos de permisos. De izquierda a derecha, tenemos el grupo de permisos del dueño, los permisos del grupo de usuarios a los cuales pertenece el dueño y el grupo de permisos para el resto de usuarios. Ejemplo si tenemos 2 grupos de usuarios, administradores y alumnos y tenemos un alumno con nombre de usuario Pepe. El primero grupo de permisos son los que tiene Pepe, el segundo los que tienen los alumnos y el tercero los que tienen todos los usuarios.
chmod
chmod es el comando que nos proporciona Linux, para poder cambiar los permisos desde la terminal. Su uso es muy sencillo, solo hay que poner $ chmod num1num2num3
Cada uno de los num es un número entre 0 y 7 en octal, que representa los permisos que queremos darle. El primer número indica los permisos que queremos tener como usuario, el segundo los que le damos al grupo de usuarios al que pertenecemos y el tercero los que le damos al resto. Para conseguir el numero según los permisos que queramos dar, os dejamos esta tabla (fuente Wikipedia)
Número | Binario | Lectura (r) | Escritura (w) | Ejecución (x) |
---|---|---|---|---|
0 | 000 | |||
1 | 001 | |||
2 | 010 | |||
3 | 011 | |||
4 | 100 | |||
5 | 101 | |||
6 | 110 | |||
7 | 111 |
Ejemplo de uso:
- Quiero tener yo todos los permisos y el resto no, así no me lo copian/borran etc. $ chmod 700
- Quiero tener yo todos los permisos y todo el mundo puede acceder a leer mi archivo, pero no me lo pueden borrar ni ejecutar. $ chmod 744
- Quiero que tanto yo como mi grupo de usuarios, en el ejemplo otros alumnos, puedan leer y escribir el archivo, pero otros no tengan ningún permiso. $ chmod 660
El conjunto de casos es enorme, pero sabiendo como van los números, es ir buscando en la tabla y poniendo el que corresponda, para los permisos que les queramos otorgar.
4 comentarios en “Dominando la terminal de linux: los permisos y chmod”
Pepe
Hola, buenos dias. Es cierto que eres ingeniero informático? Si no le importa me gustaría hacerle unas preguntas ya que pronto elijo carrera. Le escribo esto ya que am1g01nf0rmat1c0 contiene esta pág web en su biografía. Gracias
MiRoot
Hola Pepe en verdad, ahora mismo todavía no tengo el título, pero llevo más de la mitad de la carrera ya hecha y se puede decir que soy ingeniero informático en potencia.
En el foro de esta comunidad tenemos un apartado para universidades http://www.somosbinarios.es/foro/Forum-Universidad y además hay algunos post que te pueden resultar interesantes.
Si todavía sigues con alguna duda, escríbenos en el foro y tanto yo como otros usuarios (algunos con la carrera terminada, otros empezando otros en módulos …) te intentaremos contestar lo mejor que podamos.
Un saludo
Javi
Genial tutorial para los permisos. Muy útil. Buen trabajo 😉
MiRoot
Muchas gracias, tenemos una primera parte que habla de como moverse por los directorios, crear carpetas y borrar archivos y carpetas. Las órdenes que explicamos son cd ls mkdir rmdir rm Si estás empezando seguro que las encuentras interesantes.