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

viernes, 11 de noviembre de 2011

Formatear un Pendrive en Linux

Formatear un Pendrive en Linux


Cuando se formatea un disco duro o alguna unidad de almacenamiento existen diferentes sistemas de archivos con los que trabajan por ejemplo vfat y ntfs que son los más usados en Windows; y swap, ext2, ext3 y ext4 en sistemas Linux.


Como los Pendrives no los usamos en un sistema únicamente, y no todos los sistemas que vamos a encontrar son únicamente Microsoft o únicamente Linux  tenemos que elegir un sistema de archivos que no sea propietario de una tecnología sino por el contrario que sea lo más abierto posible, recomiendo usar como sistema de archivos vfat con lo cual vas a poder usarlo tanto en entornos Microsoft como en entornos Linux.


Recuerden que deben haber iniciado sesión como usuario root para poder llevar a cabo el formateo, de lo contrario deberán usar el comando su- para loguearnos como root o sudo.


Debemos desmontar el pendrive. Antes debemos conocer el punto de montaje, el archivo /etc/mtab contiene la información de toda las unidades montadas, nombre del dispositivo, tipo de sistema de archivos y todos los puntos de montaje o ruta donde se montó, con el comando cat /etc/mtab vamos a ver toda esa información.
Nos interesa anotar el punto de montaje del pendrive a formatear p.e. /dev/sdc1. 


Ahora vamos a desmontar el pendrive.En la mayoría de las distribuciones se puede hacer dando clic secundario en el icono de la unidad y seleccionar la opción “Desmontar la unidad” o también podemos desmontar el pendrive con el comando umount <dispositivo>umount <punto de montaje>. umount /dev/sdc1.


Deben tener cuidado con formatear la unidad correcta, sino pueden causar daños irreparables en otras unidades, como el propio disco duro por ejemplo.


Luego de lo realizado anteriormente vamos a formatear el pendrive con el comando mkfs de la siguiente manera mkfs.vfat /dev/sdc1 o también que es lo mismo haces mkfs -t vfat /dev/sdc1.


Si se quiere cambiar la etiqueta al momento de formatear tendríamos que hacer mkfs -t vfat -L "ETIQUETA" /dev/sdc1.


Fuente: Archivos Geek

Comandos en Linux

Comandos en Linux


Cuando no tenemos claro como era el comando para hacer tal cosa.
Tenemos que averiguarlo, podemos usar google o podemos buscarlo en el sistema.
Para ello, nos movemos al directorio /usr/bin.
cd /user/bin
Luego listamos con el comando ls todos los archivos (que son los comandos que la consola de linux reconoce).
Podemos ayudarnos con el comodin *