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. Restringidos Contiene ficheros que no se pueden compartir, solo son 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 int 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: cd: Descripcion Abreviatura de list (listar) 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: cp: Puedes crear tantos directorios como quieras, desde el directorio actual, o desde tu home. Remove Directory. Borrar directorio. Sintaxis: rmdir [directorio] Copy. Copiar
mv: rm: touch: id: su: umask sintaxis: cp [opciones] [fichero origen] [directorio destino] Move. Mueve o renombra el archivo o directorio. sintaxis: mv [opciones] [origen] [destino] Remove. borra el fichero sintaxis: rm [opciones] [fichero/s] Crea un fichero sintaxis: touch [fichero] Identificación muestra nombre de usuario y grupo Te permite cambiar al usuario que desees. 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 Descripción Resultado $ touch foto1.png Creamos el archivo foto1.png foto1.png
$ chmod a-rwx foto1.png Quitamos todos los permisos al archivo foto1.png $ chmod u+rwx foto1.png Añadimos todos los permisos para el propietario $ chmod g+x foto1.png Añadimos el permiso de ejecución para el grupo $ chmod o+r foto1.png Añadimos el permiso de lectura para los otros usuarios $ chmod u-rw foto1.png Eliminamos los permisos de lectura y escritura para el propietario $ chmod a=r foto1.png Establecemos como unico permiso de lectura para los 3 grupos $ chmod a=rx foto1.png Establecemos los permisos de lectura y ejecución para los 3 grupos $ chmod a=- foto1.png Quitamos todos los permisos $ chmod u+rx,o+x foto1.png Añadimos los permisos de lectura y ejecución al propietario y ejecución a otros $ chmod g+rx,o-x foto1.png 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---
$ chmod ug+wx,o-x foto1.png 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 $ chmod a=rw foto1.png Permite a cualquiera modificar el contenido e incluso eliminar el archivo rwxrwx--- rw-rw-rw- 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 = 4 (lectura) w = 2 (escritura) x = 1 (ejecucion) - = 0 (sin permisos)
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 -w- só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 rw- permisos 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 Resultado $ touch creamos el archivo $ chmod 000 $ chmod 700 quitamos todos los permisos al archivo añadimos todos los permisos para el propietario ---------- -rwx------
$ chmod 710 $ chmod 714 $ chmod 114 $ chmod 444 $ chmod 555 $ chmod 000 $ chmod 501 $ chmod 550 $ chmod 770 $ chmod 666 añadimos el permiso de ejecución -rwx x--- para el grupo añadimos el permiso de lectura para -rwx xr-- los otros usuarios eliminamos los permisos de lectura y ---x xr-- escritura para el propietario establecemos como unico permiso de -r r r-- lectura para los 3 grupos establecemos los permisos de lectura -r-xr-xr-x 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 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 -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