TEMA 6: Manejo de archivos, permisos y navegación en GNU/LINUX. Objetivos: Lograr en el estudiante un aprendizaje de la jerarquía de archivos que se maneja en GNU/LINUX, para que sepa cómo se estructura la información en el Sistema Operativo. Entregar al estudiante una información sobre la clasificación de archivos en este Sistema Operativo, para un mejor entendimiento de la forma en que se estructuran los directorios ó carpetas. Dar a conocer de manera global que es la SHELL y su diferencia con la consola de Windows para que el estudiante se familiarice con la forma de ingresar comandos en GNU/LINUX. Aprendizaje de los comandos de más uso en la navegación de archivos para lograr moverse mediante la SHELL sin dificultad. Conocer los comandos “man” y “help” que sirven de ayuda a la hora de utilizar la SHELL, para que cualquier dificultad con algún comando se logre solucionar fácilmente. Generar en el estudiante un conocimiento sobre la configuración o manejo de cuentas de usuarios y grupos, para que el estudiante aprenda como especificar a un archivo o carpeta, el usuario o grupo al que pertenece. Conocer los permisos que se pueden dar a los archivos del sistema operativo para que el estudiante conozca la manera en la que puede proteger sus archivos. Manejo de permisos con el comando “chmod”, utilizando taquigrafía basada en caracteres o con números para lograr establecer los permisos de los archivos de cada cuenta de usuario. Jerarquía De Directorios Clasificación De Directorios Estaticos • Contiene archivos que no cambian sin la intervención del administrador (root), sin embargo, pueden ser leídos por cualquier otro usuario. (/bin, /sbin, /opt, /boot, /usr/bin...) Dinamicos • Contiene archivos que son cambiantes, y pueden leerse y escribirse (algunos solo por su respectivo usuario y el root). Contienen configuraciones, documentos, etc. (/var/mail, /var/spool, /var/run, /var/lock, /home...) Compartidos • Contiene archivos que se pueden encontrar en un ordenador y utilizarse en otro, o incluso compartirse entre usuarios. • Contiene ficheros que no se pueden compartir, solo son Restringidos modificables por el administrador. (/etc, /boot, /var/run, /var/lock...). La Shell o intérprete de comandos de GNU/Linux La Shell es el medio que tenemos para interactuar con la maquina con la que estamos trabajando y con su sistema operativo, literalmente interpreta órdenes. La Shell se encarga de: Interpretar las variables de entorno. Interpreta los metacarácteres,(caracteres comodines) '*' '?'. Maneja la entrada y salida standar de los comandos. Busca alias, y los interpreta. Interpreta las ordenes comparando si son comandos internos de la shell, o binarios ejecutables, mirando en $PATH. Principales diferencias con la línea de comandos de Windows: En la Shell, el intérprete de comandos distingue entre mayúsculas y minúsculas a la hora de interpretar los comandos, cosa que en cmd.exe de Windows no ocurre: Shell: ls no es igual a LS cmd.exe: dir es igual a DIR En la shell los modificadores de los comandos se representan con un guión '-', y en cmd.exe el modificador es '/'. Shell: ls -l cmd.exe: dir /all Comandos de Navegación Comandos ls: Descripcion Abreviatura de list (listar) cd: sintaxis: ls [opciones] [fichero ] Change directory. Cambia de directorio. Sintaxis: cd [directorio] Formas útiles de usarlo: cd sin más, te lleva a tu directorio home. cd.. te lleva al directorio padre (directorio anterior) mkdir: cd ~ igual que el primero, te lleva a tu directorio home. Make directory. Hacer directorio. Sintaxis: mkdir [directorio mkdir -p directorio]/[directorio]/[directorio]/etc.. rmdir: Puedes crear tantos directorios como quieras, desde el directorio actual, o desde tu home. Remove Directory. Borrar directorio. cp: Sintaxis: rmdir [directorio] Copy. Copiar mv: sintaxis: cp [opciones] [fichero origen] [directorio destino] Move. Mueve o renombra el archivo o directorio. rm: sintaxis: mv [opciones] [origen] [destino] Remove. borra el fichero touch: sintaxis: rm [opciones] [fichero/s] Crea un fichero id: sintaxis: touch [fichero] Identificación su: muestra nombre de usuario y grupo Te permite cambiar al usuario que desees. umask sintaxis: su usuario password Establece los permisos por defecto para los nuevos archivos y directorios creados por el proceso actual. sintaxis: umask [mascara] Si queremos que los archivos que creemos tengan un valor distinto a el valor por defecto habría que restar a 666 (por defecto rw-rw-rw-) el valor en octal que queramos para nuestros archivos: Si por ejemplo queremos que nuestros archivos se creen con permisos r-- para dueño, r-- para grupo y r-- para otros, deberíamos restar 444 a 666 y nos daría 222, entonces el comando seria el que sigue: umask 222 man: "manual" Muestra un manual de la instrucción o comando especificado. sintaxis: man [comando] - - help. Esto no es un comando, en realidad es una opción que tienen todos los comandos en Linux sintaxis: [comando] - - help Linux dispone de 3 comandos que permite cambiar los permisos, el propietario y el grupo de un archivo y/o directorio respectivamente: Comando chmod Se utiliza para cambiar los permisos del archivo o directorio. $ chmod [permisos] [archivo/directorio] [opciones] Comando chown # chown [nuevo usuario propietario] [archivo/directorio] [opciones] Comando chgrp Utilizado para cambiar el grupo del archivo o directorio # chgrp [nuevo grupo] [archivo/directorio] [opciones] Permisos en GNU/Linux El sistema de permisos en Linux se basa en un esquema de usuarios/grupos que lo convierte en la base principal de la seguridad en Linux, a estos usuarios y grupos se les asignan distintos derechos sobre los archivos y directorios. Los permisos propiamente dichos son tres: r: read (lectura): Cuando el permiso de lectura está activo sobre un directorio significa que se podrá listar los recursos almacenados en él, si está asignado a un archivo se podrá leer su contenido. w: write (escritura): Cuando el permiso de escritura está activo sobre un directorio significa que se podrá crear y borrar archivos en su interior, si esta activado para un archivo significa que se podrá modificar su contenido. x: execute (ejecución): Si el permiso de ejecución está activo sobre un directorio significa que el usuario podrá realizar otras funciones dentro de él mediante los otros permisos de lectura y escritura, y si está activo sobre un archivo se podrá ejecutarlo desde la línea de comandos. Cambio de permisos con chmod Utilizando taquigrafía basada en caracteres. Para poder utilizar la taquigrafía basada en caracteres tomemos en cuenta la siguiente lista con su respectiva correspondencia: Símbolo Descripción Identidades u Es el usuario propietario del archivo o directorio g Es el grupo al que pertenece el archivo o directorio o Otros usuarios, el resto del mundo, ni el propietario ni su grupo a Todo el mundo – propietario, grupo y otros Permisos r Acceso de lectura w Acceso de escritura x Acceso de ejecución Acciones + Añade los permisos Elimina los permisos = el único permiso Ejemplos: Ejemplo $ touch foto1.png Descripción Creamos el foto1.png Resultado archivo foto1.png $ chmod a-rwx foto1.png $ chmod u+rwx foto1.png $ chmod g+x foto1.png $ chmod o+r foto1.png $ chmod u-rw foto1.png $ chmod a=r foto1.png $ chmod a=rx foto1.png $ chmod a=- foto1.png $ chmod u+rx,o+x foto1.png $ chmod g+rx,o-x foto1.png Quitamos todos los permisos al archivo foto1.png Añadimos todos los permisos para el propietario Añadimos el permiso de ejecución para el grupo Añadimos el permiso de lectura para los otros usuarios Eliminamos los permisos de lectura y escritura para el propietario Establecemos como unico permiso de lectura para los 3 grupos Establecemos los permisos de lectura y ejecución para los 3 grupos Quitamos todos los permisos Añadimos los permisos de lectura y ejecución al propietario y ejecución a otros Añadimos permiso de lectura y ejecución al --------- rwx------ rwx—x--rwx—xr-- --x—xr-- r—r—r-- r-xr-xr-x ---------r-x-----x r-xr-x--- grupo y eliminamos permiso de ejecución a otros $ chmod ug+wx,o-x Añadimos permiso de rwxrwx--foto1.png escritura y ejecución al propietario y grupo, y eliminamos permiso de ejecución a otros $ chmod a=rw foto1.png Permite a cualquiera rw-rw-rwmodificar el contenido e incluso eliminar el archivo Si cambiamos los permisos a un directorio y deseamos que estos permisos tengan efecto sobre todos sus subdirectorios y archivos sólo deberemos añadir la opción –R. Ejemplo: $ chmod a=rw DIRECTORIO –R Utilizando números. Cada permiso tienen asignado un valor, incluso cuando el permiso no está activo. Para poder utilizar los números tendremos que tener en cuenta la siguiente tabla con sus respectivos valores: r = w = x = - = 0 (sin permisos) 4 2 1 (lectura) (escritura) (ejecucion) Cuando asignamos los permisos utilizando números debemos tener en cuenta que primero se sumarán los valores y dicho resultado será el que se coloque, aquí una tabla que muestra dichos valores: Valor Permisos Descripción 0 --El valor cero significa que no se han asignado permisos 1 --x sólo se ha asignado el de ejecución 2 -wsólo permiso de escritura 3 -wx permisos de escritura y ejecución 4 r-sólo permiso de lectura 5 r-x permisos de lectura y ejecución 6 rwpermisos de lectura y escritura 7 rwx permisos: lectura, escritura y ejecución Los permisos por números se asignan en grupos de 3, es decir, para el propietario-grupo-otros, no es factible asignar solo para uno o dos de ellos. Ejemplos: rw-r--r-- (644) — Sólo el propietario tiene los permisos de leer y escribir; el grupo y los demás sólo pueden leer. Ejemplo Descripción $ touch foto2.png creamos el archivo foto2.png $ chmod 000 foto2.png $ chmod 700 foto2.png Resultado foto2.png quitamos todos los permisos al ---------archivo foto2.png añadimos todos los permisos para el -rwx-----propietario $ chmod 710 foto2.png $ chmod 714 foto2.png $ chmod 114 foto2.png $ chmod 444 foto2.png $ chmod 555 foto2.png $ chmod 000 foto2.png $ chmod 501 foto2.png $ chmod 550 foto2.png $ chmod 770 foto2.png $ chmod 666 foto2.png añadimos el permiso de ejecución para el grupo añadimos el permiso de lectura para los otros usuarios eliminamos los permisos de lectura y escritura para el propietario establecemos como unico permiso de lectura para los 3 grupos establecemos los permisos de lectura y ejecución para los 3 grupos quitamos todos los permisos -rwx—x--- añadimos los permisos de lectura y ejecución al propietario y ejecución a otros añadimos permiso de lectura y ejecución al grupo y eliminamos permiso de ejecución a otros añadimos permiso de escritura y ejecución al propietario y grupo, y eliminamos permiso de ejecución a otros permite a cualquiera modificar el contenido e incluso eliminar el archivo -r-x-----x -rwx—xr----x—xr--r—r—r--r-xr-xr-x ----------- -r-xr-x--- -rwxrwx--- -rw-rwrw- Referencias http://es.wikipedia.org/wiki/Permisos_de_acceso_a_archivos. Información sobre Permisos de acceso a archivos. http://www.ignside.net/man/ftp/chmod.php Especificaciones e información sobre la utilización del comando Chmod