miércoles, 16 de noviembre de 2011

Cambiar permisos de ficheros y directorios en sistemas linux

Cambiar permisos de ficheros y directorios en sistemas linux


En este articulo tratamos el tema de como cambiar los permisos de ficheros y directorios en nuestro sistema Linux. Todo los comandos y ejemplos que se citan deben ejecutarse desde la linea de comandos en una terminal. Tambien decir que existen programas en modo grafico donde se puede conseguir lo mismo que se explica solo golpe de raton..


Lo primero que hay que decir es que para conseguir toda la información sobre los comandos involucrados en el tema de permisos se puede consultar con los comandos man chmod, man chown y man chgrp.


Información de un fichero/directorio


En Linux, todo archivo y directorio tiene tres niveles de permisos de acceso: los que se aplican al propietario del archivo, los que se aplican al grupo que tiene el archivo y los que se aplican a todos los usuarios del sistema. Podemos ver los permisos cuando listamos el contenido de un directorio con ls -l:


La primera columna es el tipo de archivo y sus permisos, la siguiente columna es el número de enlaces al archivo, la tercera columna representa al propietario del archivo, la cuarta columna representa al grupo al que pertence al archivo y las siguientes son el tamaño, la fecha y hora de última modificación y por último el nombre delarchivo o directorio.


Descompondremos entonces la primera columna donde pueden ver una serie de letras y guiones -rwxr-x---, estas letras nos brindan mucha información.


El primer caracter al extremo izquierdo, representa el tipo de archivo, los posibles valores para esta posición son los siguientes:


 - un guión representa un archivo comun (de texto, html, mp3, jpg, etc.)
 d representa un directorio
 l link, es decir un enlace o acceso directo
 b binario, un archivo generalmente ejecutable


Las siguientes 9 letras, representan los permisos del fichero y estas están agrupadas en tres grupos con tres posiciones cada uno.


 El primer grupo de tres (rwx en nuestro caso, posiciones 2,3,4) nos dice que clase de permisos tiene el dueño del fichero (u)(user/owner)
 El segundo grupo de tres (r-x en nuestro caso, posiciones 5,6,7) nos dice que clase de permisos tiene el grupo dueño del fichero (g)(group).
 Y el último grupo de tres (--- en nuestro caso, posiciones 8,9, 10) nos dice que clase de permisos tienen todos los demás usuarios del sistema sobre este
fichero (o)(others).


  rwx       r-x     ---
  usuario   grupo   otros


  r :significa read permiso para leer 
  w :significa write permiso para escribir  
  x :significa execution permiso para ejecutar  


Las nueve posiciones de permisos son en realidad un bit que o esta encendido (mostrado con su letra correspondiente) o esta apagado (mostrado con un guión -), asi que, por ejemplo, permisos como rwxr-x---, indicaría que los permisos del propietario (rwx) puede leer, escribir y ejecutar el archivo, el grupo (o sea los usuarios que esten en mismo grupo del archivo) (r-x) podrá leer y ejecutar pero no escribir el fichero, y cualquier otro usuario del sistema (---), no tiene permisos sobre el fichero, ya que los tres bits de lectura, escritura y ejecucción no se encuentran encendidos o activados.


La segunda columna pepito, nos dice quien es el dueño del fichero,(pepito en este caso).
La tercera columna depart1, nos dice cual es el grupo del fichero (depart1 en este caso).
La cuarta columna 4348, nos dice el tamaño del fichero.
La quinta columna Nov 24 16:19, nos dice cual es la fecha y hora de la última modificación.
La sexta columna test, nos dice cual es el nombre del fichero/directorio.


Asi pues, el fichero test de nuestro ejemplo tiene los siguientes permisos:


pepito puede leer, escribir/modificar, y ejecutar el fichero test.
Los usuarios pertenecientes al grupo depart1 puede leer, y ejecutar pero no escribir/modificar.
Los demás usuarios no pueden hacer nada, ni leerlo, ni escribir/modificar, ni ejecutarlo.


Como cambiar los permisos/dueño/grupo de un fichero/directorio?


Para cambiar el dueño del fichero se utiliza el comando : chown usuario fichero
Para cambiar el grupo del fichero se utiliza el comando: chgrp grupo fichero
Para cambiar los permisos se utiliza el comando: chmod permisos fichero


Los permisos se pueden especificar de diferentes maneras, una serie de ejemplos, es lo mejor para comprenderlo:


  chmod ugo+rwx test (da permisos rwx a todos, user,group,others)
  chmod ugo-x test (quita permiso x (ejecucion) a todos, user,group,others) 
  chmod o-rwx test (quita permisos rwx a others) 
  chmod u=rwx,g=rx test (da permisos rwx a user, rx a group y ninguno a others) 


Asi podriamos continuar con todas las posibles combinaciones de letras, es cuestión de usar la imaginación ;-)






Existe otro metodo que utiliza números (numeración octal), en vez de letras para asignar permisos, la siguiente tabla nos puede ayudar un poco a comprender esta manera:


  r w x  VALOR DECIMAL


  0 0 0  0 (000 binario es 0 en decimal)
  0 0 1  1  .........
  0 1 0  2  .........
  0 1 1  3  .........
  1 0 0  4 (100 binario es 4 en decimal)
  1 0 1  5  .........
  1 1 0  6  .........
  1 1 1  7 (111 binario es 7 en decimal)


1 significa activado y 0 desactivado, o sea 101, activa r y x, y desactiva w. Sabiendo esto solo tenemos que usar el valor decimal para dar solo permisos de lectura y ejecucion, un ejemplo aclarara esto.


  chmod 750 test 


  da permisos rwx al usuario (7=111)  
  da permisos r-x al grupo (5=101)  
  da permisos --- a los demas (0=000)


Esto es todo por hoy, esperamos que tengais un poco mas claro lo de los permisos de ficheros en Linux y que le vayais perdiendo el miedo a la linea de comandos




Fuente: Linux-Es
Fuente: Linux Total
Imprimir entrada

No hay comentarios:

Publicar un comentario