domingo, 9 de junio de 2013

Administrar los permisos de los archivos en Linux

En ocasiones cuando estamos instalando un programa por medio de un script debemos dar permisos de ejecución a un archivo en particular, para hacer esto podemos usar el comando chmod para llevar a cabo dicha tarea.

El comando chmod nos permite administrar los permisos de archivos y directorios pero antes mencionemos de que se trata dichos permisos.

En las diferentes distribuciones Linux los archivos pueden ser accedidos por tres tipos de usuarios los cuales son: el propietario del archivo, los usuarios que pertenecen al grupo del propietario y los demás usuarios.

Con el comando ls -l podemos listar archivos y directorios que están dentro del directorio actual, y allí ver con mas detalles las características de cada archivo dentro de las cuales están los permisos que poseen.

carlos@debian:~/Documentos$ ls -l
total 2588
-rw-r--r-- 1 carlos carlos  420924 jun  9 10:30 028-030_TrucosLM85.pdf
-rw-r--r-- 1 carlos carlos 2210874 jun  9 10:29 065-068_Git_LM86.pdf
-rwxr-xr-- 1 carlos carlos      24 jun  9 12:08 prueba.txt
drwxr-xr-x 2 carlos carlos    4096 jun  9 12:53 temporal

En la primera columna indica si es un archivo o un directorio (d); los 6 siguientes caracteres corresponden a los permisos del archivo donde los primeros tres corresponden a los permisos del propietario, los tres siguientes a los permisos del grupo y los últimos tres a los permisos para los demás usuarios.

Cada grupo de permisos está conformado por permisos de lectura r, escritura w y ejecución x, y en caso de no tener el permiso se mostrará un guión -.

Por ejemplo, para el archivo prueba.txt el propietario tiene permisos de lectura, escritura y ejecución; pero sólo permiso de lectura y ejecución para el grupo, y sólo de ejecución para los demás usuarios.

Para conceder o quitar permisos a un archivo podemos usar el comando chmod de dos maneras:

La primera forma es chmod <número> <nombre_archivo> , por ejemplo:

chmod 754 prueba.txt

El número 754 se divide en tres partes donde el 7 son los permisos del propietario, el 5 los permisos del grupo  y el 4 los permisos para los demás usuarios. En el siguiente diagrama se puede comprender como se se conforma dicho número.
rwx r-x r-- prueba.txt 
111 101 100 
 7   5   4
Entonces, si queremos que el archivo solo tenga permisos de lectura para todos debemos usar el número 444.

La segunda forma es más intuitiva que la anterior ya que es de la forma:
chmod <sobre_quien>=<permisos> <nombre_archivo> 
Donde  <sobre_quien> es una de las siguientes letras: u - usuario propietario del archivo, g - grupo al que pertenece el propietario, o - los demás usuarios y a - todos los anteriores.

Además <permisos> puede ser r - lectura, w - escritura y x ejecución.

Ahora si quiero dar permisos de lectura y ejecución sobre el archivo prueba.txt al propietario y al grupo el comando quedaría así:


chmod ug=rx prueba.txt

Si quiero quitar los permisos simplemente se deja vacío el parámetro de permisos. Por ejemplo, si quiero quitarle los permisos al grupo debería ejecutar el siguiente comando:

chmod o= prueba.txt


Espero que les sea de ayuda lo anteriormente visto.

No hay comentarios:

Publicar un comentario

Conectar PHP con una base de datos Oracle

En esta entrada se muestra cómo acceder a una base de datos Oracle desde PHP usando el modulo OCI8. Para la realización de los ejemplos se u...