Vous êtes sur la page 1sur 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

ndice
Archivos en Linux............................................................................................................................................. 2 Entrada/Salida estndar................................................................................................................................... 4 Jerarqua de directorios.................................................................................................................................... 5 Usuarios y grupos ............................................................................................................................................ 8 Archivos relacionados con usuarios y grupos..............................................................................................8 Archivo /etc/passwd................................................................................................................................ 8 Archivo /etc/group................................................................................................................................... 9 Archivo /etc/shadow.............................................................................................................................. 10 Permisos de ficheros...................................................................................................................................... 11 ACL............................................................................................................................................................ 11 Montaje en Linux............................................................................................................................................ 13 Montar comparticiones samba................................................................................................................... 13 Ficheros de configuracin............................................................................................................................... 14 Ficheros de sistema................................................................................................................................... 14 De usuario:................................................................................................................................................ 15 Variables de entorno....................................................................................................................................... 16 Logs................................................................................................................................................................ 17 Comandos bsicos......................................................................................................................................... 18 Comandos avanzados.................................................................................................................................... 21 Bibliografa...................................................................................................................................................... 24

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 1 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

Archivos en Linux
En GNU/Linux (Linux en adelante) todo es un fichero. Incluso los dispositivos son ficheros (/dev/sda, por ejemplo, es un disco duro). Hay varios tipos de archivos en Linux, a saber: Ordinarios. Cualquier tipo de archivo que contiene datos (texto plano y binarios; incluye ejecutables). Directorios. Un directorio es un fichero especial que contiene los nombres de otros ficheros y directorios (subdirectorios). Proporciona apuntadores a los mismos. Enlaces (simblico y duro). Un fichero especial que apunta a otro. Cuando abres, modificas, copias, etc. un enlace simblico (symbolic link), realmente ests trabajando con el archivo al que referencias. Si se cambia el nombre del archivo (al que se referencia) el enlace queda roto. Tambin estn los enlaces duros (hard link). El enlace duro apunta realmente a los datos del fichero tal y como hace el fichero ordinario. Adems, a excepcin del nombre, no hay diferencia entre el fichero original y el enlace duro que apunta a sus mismos datos y, de hecho, ambos pueden ser considerados como ficheros ordinarios. El nmero de enlaces se muestra en el segundo campo de un listado hecho con ls -l. Si el nmero es mayor de uno sabes que hay enlaces duros apuntando a ese fichero (a los datos de ese fichero realmente, como hemos comentado). Dispositivos. Todos los dispositivos que Linux usa son representados por este tipo de archivos (device file). Este tipo de archivos puede, a su vez, subclasificarse en dos tipos: fichero especial de caracteres (character-special files) y fichero especial de bloques (block-special files). Los de carcter se usan para representar dispositivos que interactan con Linux carcter a carcter, como un puerto serie. Por ejemplo: impresoras, terminales. Los ficheros de dispositivos de bloque representan dispositivos como discos duros, CD-ROMs, etc., que interactan con Linux usando bloques de datos. Los ficheros de dispositivo son muy potentes porque permiten a los usuarios acceder a dispositivos como discos duros, mdmes, impresoras, etc., como si fueran ficheros de datos. De esta forma, pudes mover, copiar y transferir datos entre dispositivos fcilmente, a menudo sin tener que usar comandos o sintaxis especiales. Para ver de qu tipo es un archivo podemos usar el comando ls -l. El primer carcter que aparece indica qu tipo es:
'-' denota un archivo regular 'd' denota un directorio 'b' denota un archivo especial de bloques 'c' denota un archivo especial de caracteres 'l' denota un enlace simblico

Como comentbamos antes, los dispositivos tambin son ficheros en Linux. Lo que esto significa es que el interfaz de comunicacin entre el usuario y los dispositivos es uniforme, en forma de ficheros, por lo que el acceso a los dispositivos y su uso es bastante sencillo. Linux no nombra a los dispositivos con caracteres aleatorios sino que cada dispositivo tiene su nombre. Veamos los ms usuales en Linux:
Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 2 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

Disquete: /dev/fd0 Disco duro IDE: /dev/hda (primario maestro), /dev/hdb (primario esclavo), /dev/hdc (secundario maestro), /dev/hdd (secundario esclavo). Particiones en disco duro IDE: /dev/hda1... /dev/hda4 (particiones primarias), /dev/hda5, /dev/hda6, /dev/hda7... (particiones lgicas) Disco duro SATA/SCSI: /dev/sda, /dev/sdb, /dev/sdc... Particiones en disco duro SATA/SCSI: /dev/sda1... /dev/sda4 (particiones primarias), /dev/sda5, /dev/sda6, /dev/sda7... (particiones lgicas) CDROM: /dev/sr0 normalmente. Muchas veces nos encontramos enlaces simblicos al fichero de dispositivo para que sea ms fcil recordarlo. Ej.: /dev/cdrom, /dev/cdrw...

Por ltimo, comentar dos aspectos curiosos de los archivos en Linux en relacin a Windows: 1. Los archivos no necesitan extensin, aunque pueden llevarla. De hecho, es conveniente que la lleven, pero ms que nada para poder distinguirlos a simple vista y para que las aplicaciones sepan aplicarles el tratamiento especial que necesitan (ej.: el editor de texto emacs, al abrir un archivo con extensin .py, activa el modo python, que reconoce las palabras clave de dicho lenguaje y las colorea). 2. Los archivos ocultos no necesitan ningn permiso especial como en Windows. En lugar de esto, basta con que se le ponga un . justo antes del nombre. As, si tenemos el fichero pepito.txt, para dejarlo como oculto, simplemente lo renombraramos a .pepito.txt. Notamos cmo el . est pegado al nombre, es decir, no hay espacios en medio. 3. Los archivos ejecutables no lo son porque tengan una extensin sino porque tienen permiso de ejecucin (ver apartado de permisos ms adelante).

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 3 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

Entrada/Salida estndar
En Linux, la entrada estndar, por defecto, es el teclado. La salida estndar es el monitor. Cuando abrimos un shell, lo que tecleamos se muestra en pantalla porque el shell redirige el teclado a la entrada estndar y la salida estndar al monitor. Nosotros podemos redirigir la salida estndar de un comando a otro comando o a otro fichero (recordemos que la pantalla, para Linux, es como un fichero ms) usando pipes (tuberas) o redirecciones respectivamente. Por ejemplo, si ejecuto el comando ls (ver apartado de comandos bsicos para ms informacin), me mostrar el contenido del directorio actual. Si ejecuto ls > salida.txt no mostrar nada. Lo que hace en este caso es redirigir la salida de dicho comando al fichero salida.txt. De igual forma, si ejecutamos ls | wc -l ( ver apartado de comandos bsicos para ms informacin), lo que hace es pasar la salida del comando ls a la entrada del comando wc -l, que contar las lneas. Como la salida de wc -l no la redirigimos a ningn lugar la mostrar por pantalla, es decir, mostrar por pantalla el resultado de ejecutar wc -l sobre la salida del comando ls, en otras palabras, el nmero de lneas que se mostraran con ls. Recomendamos la lectura de las referencias [24] y [25] para ms informacin.

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 4 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

Jerarqua de directorios
Existe un estndar llamado FHS (Filesystem Hierarchy Standard), que es una norma que define los directorios principales y sus contenidos en el sistema operativo GNU/Linux y otros sistemas de la familia Unix. Los directorios que se encuentran normalmente en cualquier distribucin Linux son los siguientes (en gris se sealan los ms importantes): /

la raz o root. Contenedor de todo el sistema de jerarqua. Parecido al C:\ de windows. Comandos esenciales para todos los usuarios del sistema (cat, ls, cp, rm, mkdir, etc.). Archivos cargadores de arranque, como el ncleo (kernel) del sistema, por ejemplo. Suele ir en una particin aparte (sobre todo cuando el gestor de arranque -grub usualmente- no es capaz de montar el sistema donde est el directorio raz /). Contiene los ficheros de dispositivos, tanto si se han montado como si no. Contiene los archivos de configuracin del sistema. Proviene de etctera. Archivos de configuracin para el sistema de ventanas X. Directorios de trabajo de los usuarios del sistema excepto el superusuario (root), cuyo directorio home suele ser /root o bien /. Contiene todas las bibliotecas esenciales compartidas de los programas instalados. Contiene los puntos de montaje de los medios extrables de almacenamiento, como los cd-roms, dvds, pendrives, etc. Para montar discos duros, particiones, etc., manualmente por los usuarios (de forma temporal o no). Para montar usamos el comando mount. Programas opcionales que pueden ser compartidos por todos los usuarios. No guardan sus configuraciones en ese directorio, as que cada usuario puede tener una configuracin diferente de una misma aplicacin. Esta configuracin se guarda normalmente en el directorio home de cada usuario. Contiene datos que reflejan el estado de procesos y otras partes del ncleo. Ej., /proc/cpu es mi fichero que describe la cpu que tenemos instalada. Directorio raz del usuario root. Nadie excepto l puede acceder al mismo, ni siquiera en modo slo lectura. Sistema de binarios esencial, comandos y programas exclusivos del usuario root (route, ifup...). Un usuario puede ejecutar alguno de estos comandos si tiene permisos suficientes o bien si tiene la contrasea de superusuario. Lugar especfico de datos que son servidos por el sistema. Archivos temporales. Aqu se guardan los archivos temporales guardados, por ejemplo, por el navegador de internet. Jerarqua secundaria de los datos de usuario; contiene la mayora de las utilidades y aplicaciones multiusuario, es decir, accesibles por todos los usuarios. En otras

/bin /boot

/dev /etc /etc/X11 /home /lib /media /mnt /opt

/proc /root /sbin

/srv /tmp /usr

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 5 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

palabras, contiene los archivos compartidos, pero que no obstante son de slo lectura. /usr/bin /usr/include /usr/lib Comandos no-administrativos para todos los usuarios. Son de solo lectura, pero pueden tener su propia configuracin para cada usuario en /home. Archivos de cabecera, es decir, archivos de inclusin estndar. bibliotecas compartidas de los binarios en /usr/bin/. Algunos ejecutables comparten las mismas libreras que comparten las dems aplicaciones, de manera que generalmente no hay dos libreras idnticas en un mismo sistema, lo cual ahorra memoria y proporciona ms orden. Sistema de binarios no esenciales; por ejemplo, demonios para varios servicios de red. Es decir, contiene programas que no proporcionan una interfaz de usuario y gerneralmente se ejecutan al inicio del sistema o en ciertas circunstancias. No son directamente manejados por el usuario mientras se ejecutan, aunque s pueden ser configurados antes de que sean ejecutados. Arquitectura independiente y compartida de datos. En otras palabras, contiene los datos compartidos que no dependen de la arquitectura del sistema. Esto puede incluir imgenes, sonidos, etc., para la disponibilidad en el sistema y sus aplicaciones. Pueden ser plantillas, por ejemplo, aunque generalmente son archivos que el sistema utiliza directamente. Cdigo fuente de algunas aplicaciones. Al igual que /mnt, esta carpeta es manejada por los usuarios directamente para que stos puedan guardan en l el cdigo fuente de programas y bibliotecas y as puedan accesarlo fcilmente, sin problemas con permisos. Permite que el cdigo fuente tenga un espacio propio, accesible pero apartado de todos los usuarios. Sistema X Window System, Versin 11, Release 6. Este directorio se relaciona con el entorno grfico. Jerarqua terciaria para los datos locales, especficos a este host. Usualmente tiene subdirectorios, por ejemplo bin/, lib/, share/, de datos compartidos de slo lectura especficos del ordenador o servidor que los comparte. /var/ Archivos variables, tales como logs, archivos spool, bases de datos, archivos de e-mail temporales, y algunos archivos temporales en general. Generalmente acta como un registro del sistema. Ayuda a encontrar los orgenes de un problema. Memoria cach de las aplicaciones, aunque tambin se utiliza el directorio /tmp para lo mismo. Se depositan datos e informacin, referentes a las cadas o errores del sistema operativo. Es ms especfico que /var en general. Datos variables de los juegos del sistema. Este directorio no es imprescindible y muchas veces es omitido por las propias aplicaciones de juegos, pues utilizan la carpeta de usuario en /home para guardar datos variables como configuraciones, por poner un ejemplo. De todas maneras, los juegos de gnome utilizan este directorio. Archivos Lock. Archivos que hacen el seguimiento de los recursos que se utilizan actualmente. Archivos de registro, Log. Varios registros, logs. Buzn correos o mensajes de los usuarios. Si no utiliza cifrado, generalmente se

/usr/sbin/

/usr/share/

/usr/src/

/usr/X11R6/ /usr/local/

/var /var/cache/ /var/crash/ /var/games/

/var/lock/ /var/log/ /var/mail/

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 6 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

utiliza entonces la carpeta personal para la misma labor por parte de programas que manejen correos electrnicos. /var/opt/ /var/run/ Posee los datos variables de /opt. Informacin reciente. Trata acerca del funcionamiento del sistema desde el ltimo arranque. Por ejemplo, los usuarios actualmente registrados o logueados, que han ingresado; y los demonios que estn en ejecucin. Bobinas o carretes (Spool), de tareas a la espera de ser procesados (por ejemplo, colas de impresin y correo no ledo). Ubicacin de los correos de usuario desaprobados. Si no utiliza cifrado, generalmente se utiliza entonces la carpeta personal para la misma labor por parte de programas que manejen correos electrnicos. Archivos temporales que, a diferencia de /tmp, no se borran entre sesiones o reinicios del sistema, pero que de todas maneras siendo prescindibles.

/var/spool/ /var/spool/mail/

/var/tmp/

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 7 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

Usuarios y grupos
Linux es un sistema operativo multiusuario y multitarea, esto es, que ms de un usuario puede trabajar en el sistema de forma simultnea con otros, ejecutando una o ms tareas a la vez. Cuando se ingresa al sistema, es necesario que se identifique con un login y una contrasea, el login es un nombre que identifica de forma nica al usuario. La contrasea debe ser una combinacin de letras, nmeros y caracteres especiales. El sistema de contraseas en Linux es de tipo unidireccional. Esto quiere decir que nuestra contrasea no es almacenada como texto, sino que es cifrada y guardada tal como es. Cuando entramos en el sistema y escribimos nuestra contrasea, sta es cifrada y comparada con la que est almacenada. Si coinciden, la identificacin es positiva y nos permite entrar al sistema; si no coinciden, no hay identificacin y no podemos entrar al sistema Linux. Existe 3 tipos de usuarios:
Usuario Normal, es un individuo particular que puede entrar en el sistema, con ms o menos privilegios que harn uso de los recursos del sistema. Como indicador en el prompt utiliza el smbolo $ (dlar). Ejemplo: raul, sergio, mrodriguez, etc. Tambin se les conoce como usuarios de login. Usuarios de Sistema, son usuarios propios del sistema vinculados a las tareas que debe realizar el sistema operativo, este tipo de usuario no puede ingresar al sistema con un login normal. Ejemplo: mail, ftp, bin, sys, proxy, etc. Tambin se le conoce como usuarios sin login. root (superusuario), todo sistema operativo GNU/Linux cuenta con un superusuario, que tiene los mximos privilegios que le permitirn efectuar cualquier operacin sobre el sistema, su existencia es imprescindible ya que se encarga de gestionar los servidores, grupos, etc.

Los grupos son siempre expresiones lgicas de organizacin, reuniendo usuarios para un propsito comn. Los usuarios dentro de un mismo grupo pueden leer, escribir o ejecutar archivos que pertenecen al grupo.

Archivos relacionados con usuarios y grupos


Toda la informacin de los usuarios y grupos se guarda en los siguientes archivos:
/etc/passwd: guarda informacin de los usuarios del sistema como: nombres, directorio home, shell. /etc/group: almacena la informacin sobre los grupos existentes en el sistema. /etc/shadow: contiene las contraseas cifradas de los usuarios adems de otros datos para su validacin.

Archivo /etc/passwd
El archivo passwd almacena los usuarios creados en el sistema y tiene el siguiente formato:

root:x:0:0:root:/root:/bin/bash

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 8 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh Cada lnea esta separada en campos, el separador de campo son los dos puntos (:), y cada campo representa lo siguiente:
Login: el nombre del usuario. No puede haber dos nombres iguales. Contrasea cifrada: si no se utiliza el fichero de shadow, las contraseas cifradas se almacenan en este campo. Si utilizamos el fichero de shadow, todos los usuarios existentes en este fichero deben existir tambin en el de shadow y en este campo se pone el carcter x. User ID: nmero de identificacin del usuario. Es el nmero con el cual el sistema identifica al usuario. El 0 es el nico que est reservado para el root. Group ID: el nmero de grupo al cual pertenece el usuario. Como un usuario puede pertenecer a ms de un grupo, este GID es del grupo primario. Comentarios: campo reservado para introducir los comentarios que queramos sobre el usuario. Se suele utilizar para poner el nombre completo o algn tipo de identificacin personal. Directorio home: el directorio home del usuario es donde ste podr guardar todos sus ficheros, generalmente se encuentran dentro del directorio /home y el nombre de cada directorio es similar al de cada usuario. Intrprete de comandos: un intrprete de comandos (shell ) es un programa que se encarga de leer todo lo que escribimos en el teclado y ejecutar los programas o comandos que le indiquemos. Hay decenas de ellos, aunque el ms utilizado es, sin duda, el bash (GNU Bourne-Again SHell). Si en este campo est: /bin/false /bin/nologin el usuario no podr tener acceso a su shell y no podr ejecutar comandos.

Archivo /etc/group
El archivo group almacena la informacin de los grupos del sistema, y tiene el siguiente formato:

root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:amms tty:x:5: disk:x:6: lp:x:7: Al igual que el archivo anterior cada lnea esta separada en campos el separador de campo son los dos puntos (:), y cada campo representa lo siguiente:
Nombre del grupo. Por defecto con los comandos habituales se crea un grupo con el mismo nombre que el usuario creado, aunque pueden existir otros grupos con nombres especficos. Contrasea cifrada: la contrasea de un grupo se utiliza para permitir que los usuarios de un determinado

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 9 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

grupo se puedan cambiar a otro o para ejecutar algunos programas con permisos de otro grupo, siempre que se disponga de la contrasea. Group ID: nmero de identificacin del grupo. Es el nmero con el cual el sistema identifica internamente a los grupos. El 0 es el nico que est reservado para el grupo del root (los administradores). Lista de usuarios: los nombres de los usuarios que pertenecen al grupo, separados por comas. Aunque todos los usuarios deben pertenecer a un determinado grupo (especificado en el cuarto campo del fichero de passwd), este campo se puede utilizar para que usuarios de otros grupos tambin dispongan de los mismos permisos que tiene el que se est referenciando.

Archivo /etc/shadow
El archivo shadow se encarga de almacenar las contraseas cifradas del usuario, y tienen el siguiente formato:

root:$1$qvZCDFha$8CsNHHB/QDYlx3wDnZWzp/:12829:0:99999:7::: daemon:*:14904:0:99999:7::: bin:*:14904:0:99999:7::: sys:*:14904:0:99999:7::: sync:*:14904:0:99999:7::: games:*:14904:0:99999:7:::

Igual que los archivos anteriores cada lnea esta separada en campos el separador de campo son los dos puntos (:), y cada campo representa lo siguiente:
Login: debe ser el mismo nombre que se utiliza en el fichero de passwd. Contrasea cifrada. Das que han pasado, desde el 1 de enero de 1970, hasta que la contrasea ha sido cambiada por ltima vez. Das que deben pasar hasta que la contrasea pueda ser cambiada. Das que han de pasar hasta que la contrasea deba ser cambiada. Das antes de caducar la contrasea en el que se avisar al usuario de que debe cambiarla. Das que pueden pasar despus de que la contrasea caduque, antes de deshabilitar la cuenta del usuario (si no se cambia la contrasea). Das, desde el 1 de enero de 1970, desde que la cuenta est deshabilitada. Campo reservado.

En sistemas UNIX es muy comn representar las fechas a partir del nmero de segundos transcurridos desde el 1 de enero de 1970. En sistemas donde hay muchos usuarios y se desea restringir el espacio de disco que utilizan se puede utilizar quotas.

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 10 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

Permisos de ficheros
En Linux podemos dar permisos a un usuario, un grupo y a otros. Cuando hacemos un ls -l en el shell, se nos muestran los permisos que tienen los ficheros y subdirectorios que hay en el directorio actual. Por ejemplo: -rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r-1 1 1 1 1 1 1 amms amms amms amms amms amms amms amms amms amms amms amms amms amms 345 3663 20716 20639 1284 1140 1100 2011-03-08 2011-03-08 2011-03-08 2011-03-08 2011-03-08 2011-03-03 2011-03-03 12:54 12:11 12:19 12:18 11:31 11:38 11:38 #hola.txt# #prueba2.txt# #prueba3.txt# prueba3.txt #prueba.txt# prueba.txt prueba.txt~

Como vimos antes, el primer carcter que muestra la salida del comando nos indica qu tipo de fichero es. En el ejemplo todos los ficheros son regulares (ficheros normales). A continuacin aparecen 9 caracteres: rw-rr-Los 3 primeros hacen referencia a los permisos del usuario, los 3 siguientes al grupo y los 3 ltimos a otros. Como vemos en el ejemplo, los ficheros que se muestran pertenecen al usuario amms (3 columna) y al grupo amms (4 columna). Por tanto, los tres primeros caracteres de los permisos hacen referencia a los permisos que tiene el usuario amms en el fichero en cuestin (rw en este caso); los tres siguientes son los permisos del grupo amms (r en este caso) y los tres ltimos son los que tienen los dems usuarios y grupos del sistema distintos del usuario amms y del grupo amms (en este caso sera r--). El significado de las 3 letras es sencillo:
La primera es el permiso de lectura. Podr ser r si se tiene permiso de lectura o bien - si no lo tiene. La segunda es el permiso de escritura. Podr ser w si se tiene permiso de lectura o bien - si no lo tiene. La tercera es el permiso de ejecucin. Podr ser x si se tiene permiso de lectura o bien - si no lo tiene.

El significado de los permisos de lectura y escritura es trivial. El permiso de ejecucin, en ficheros normales hace referencia a si se puede ejecutar el fichero directamente; en directorios, hace referencia a si se puede entrar en el directorio o no (comando cd). En definitiva, si el permiso de ejecucin de un directorio est desactivado, se podr ver su contenido (si se cuenta con permiso de lectura), pero no se podr acceder a ninguno de los objetos contenidos en l con cd.

ACL
Por lo que hemos visto, en GNU/Linux slo se pueden asignar permisos al usuario propietario, al grupo propietario y a otros (i.e., al resto), pero no se pueden especificar usuarios/grupos concretos con ciertos permisos. Para conseguir esto usaremos el sistema acl, que no es ms que un parmetro que se usa a la hora de montar una particin (aparecer en /etc/fstab) y permitir, con el uso de los comandos getfacl y setfacl, consutlar y asignar -respectivamente- permisos para usuarios y grupos especficos.
Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 11 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

Montaje en Linux
En Linux, para acceder a cualquier dispositivo de almacenamiento (disco duro, cdrom, pendrive, floppy...) hay que montarlo previamente. En las tlimas versiones del kernel muchos de estos sistemas se montan automticamente nada ms enchufarlos al ordenador. Esto ocurre, por ejemplo, en los discos duros USB externos o en los pendrives. A veces, sin embargo, tendremos que montar nosotros el dispositivo. Para montar un dispositivo de almacenamiento de forma manual usaremos el comando mount. Por ejemplo, si queremos montar un pendrive que el sistema reconoce como /dev/sdg1 (esto podemos verlo en los logs del sistema -ver apartado correspondiente ms adelante), ejecutaremos este comando: mount /dev/sdg1 /mnt/directorio donde /mnt/directorio es la ruta donde queremos que est disponible el contenido del dispositivo en cuestin. Si no indicamos -como en el ejemplo anterior- el tipo de ficheros, el sistema tratar de averiguarlo por su cuenta. Si no lo logra, podemos indicrselo nosotros con el parmetro -t: mount -t vfat /dev/sdg1 /mnt/directorio donde vfat es el sistema de archivos (vfat es como Linux se refiere a las particiones de tipo fat32). Podra ser ext2, ext3, ext4, ntfs, iso9660 (para los cdroms), fat (para los disquetes, fat equivale a fat16), etc.

Montar comparticiones samba


Si queremos montar una comparticin samba (por ejemplo, una carpeta compartida en un equipo windows) podemos hacerlo de la siguiente forma: mount -t cifs //147.84.46.51/compartido /mnt/pcrup1 -o rw,iocharset=utf8,username=tecnico,password=112,uid=amms,gid=amms Como vemos, hay que indicar que el sistema de archivos es cifs, a continuacin hay que indicar dnde est la comparticin (//147.84.46.51/compartido), dnde queremos montarla (/mnt/pcrup1) y las opciones: rw (montarlo como lectura y escritura), iocharset=utf8 (tipo de codificacin de caracteres), username y password (usuario y password con el que se comparte el directorio), uid=amms y gid=amms que indican que se monte como usuario del sistema amms y como el grupo amms.

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 12 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

Ficheros de configuracin
Ya hemos visto antes algn fichero de configuracin importante, como /etc/passwd, /etc/shadow y /etc/group. Ahora vamos a ver otros ficheros importantes que conviene conocer en el uso de Linux. Vamos a ver ficheros de sistema y ficheros de usuario. Vamos a comentarlos brevemente a continuacin.

Ficheros de sistema
/etc/hosts. En este fichero tenemos la equivalencia entre Ips y nombres de equipos. Si metemos una lnea como la siguiente:

147.84.46.148

yoda

cuando ejecutemos ping yoda en el terminal resolver el nombre de yoda sin necesidad de usar DNS. /etc/resolv.conf. Aqu especificamos los servidores DNS (con la palabra clave nameserver) que usar nuestro sistema para resolver nombres e Ips. Por defecto, Linux intentar resolver mediante el fichero /etc/hosts antes visto; si no lo consigue, usar el DNS (consultando las direcciones IP que haya en este fichero). Tambin se especifica en este fichero el nombre del dominio de bsqueda (palabra clave search). Ejemplo de fichero /etc/resolv.conf:

search murcia112.com nameserver 147.84.46.148


Los cambios en estos ficheros (/etc/hosts y /etc/resolv.conf) toman efecto inmediatamente. /etc/network/interfaces. Aqu se especifica la configuracin IP del equipo. Ejemplo:

auto eth0 iface eth0 inet static address 147.84.46.147 netmask 255.255.255.0 network 147.84.46.0 gateway 147.84.46.249 broadcast 147.84.46.255
/etc/rc.local. Este fichero se ejecuta al arrancar Linux. Si queremos conseguir fcilmente que un comando se ejecute al arrancar Linux podemos meterlo en este fichero. /etc/fstab. En este fichero se declaran las particiones y dems dispositivos que se montan al arrancar el equipo.

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 13 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

De usuario:
Estos ficheros se encuentran en el home del usuario, normalmente /home/username, donde username es el login del usuario en cuestin. Son ficheros que estn ocultos, por lo que para verlos usaremos el comando ls -a. Al estar ocultos, y como vimos anteriormente, llevan un punto (.) delante. Veamos los tres ms importantes a nivel de configuracin del usuario.
.bashrc. Este archivo contiene los comandos que se ejecutarn cuando el usuario se logue en el equipo. .bash_aliases. Este fichero contiene los alias que se cargarn desde .bashrc cuando el usuario se logue en el equipo. Un alias es una equivalencia entre un nombre que elegimos (el alias) y el comando (o secuencia de comandos, o script) que se ejecuta al introducir ese alias en la lnea de comandos. El contenido de este fichero puede ser algo as:

alias cls=clear alias rm='rm -i'


En este caso, al teclear cls INTRO el sistema ejecutar realmente el comando clear. De igual forma, al ejecutar el comando rm se comportar como si ejecutramos un rm -i. .bash_history. Aqu se almacenan secuencialmente todos los comandos que hemos introducido en el shell.

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 14 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

Variables de entorno
Las variables de entorno forman un conjunto de valores dinmicos que normalmente afectan el comportamiento de los procesos en una computadora. Es posible acceder al valor de una variable, ya para consultarlo como para modificarlo, tanto dentro de scripts como desde la la lnea de comandos. En el intrprete de Linux1, para mostrar el contenido de una variable de entorno lo haremos as: echo $VARIABLE La variable de entorno no tiene por qu estar en maysculas, aunque por norma se suelen poner as. Para mostrar los valores de las variables de entorno se usan indistintamente los comandos env y set2. Para asignar un valor a una variable lo haremos as: VARIABLE=valor No introduciremos espacios entre VARIABLE y = ni entre = y valor. Por ltimo, es conveniente tener presente el hecho de que si definimos una variable de entorno tal y como acabaos de explicar, si ejecutamos un script, este script no encontrar esa variable porque al ejecutarse crea su propio entorno. Si queremos que cuando creemos una variable de entorno sta est disponible para los procesos hijos usaremos el comando export: export VARIABLE=valor

1 2

En Linux existen mltiples intrpretes de comandos tambin llamados shell. El ms famoso y usado es bash, pero hay otros, como sh, csh... Nosotros, cada vez que hablamos de un intrprete en este manual nos referimos siempre a bash. Aunque cada uno de los comandos tiene funciones particulares, ver las pginas del manual correspondientes para ms informacin.

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 15 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

Logs
El sistema de logs de Linux (log = registro), es un mecanismo estndar que se encarga de recoger los mensajes generados por los programas, aplicaciones y demonios y enviarlos a un destino predefinido. En cada mensaje consta la fuente (el programa que gener el mensaje), la prioridad (nivel de importancia del mensaje), la fecha y la hora. Se encuentran normalmente en /var/log. El fichero de log ms importante y que ser el que casi siempre consultemos para ver el estado de nuestro sistema linux es messages. Este fichero contiene los mensajes que produce el kernel en relacin con los distintos eventos que se van produciendo en el sistema. Aqu podemos ver si tenemos, por ejemplo, un error con algn disco duro, problemas en la red, etc. Al arrancar Linux, el kernel tambin muestra mensajes que va generando conforme va realizando las distintas tareas (chequeo hardware, sistemas de ficheros, etc.). Para ver esta informacin podemos usar el comando dmesg.

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 16 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

Comandos bsicos
En este apartado vamos a ver, brevemente, unos comandos tiles para el trabajo cotidiano con un sistema Linux. Se ver un ejemplo simple 2 como mximo. La idea aqu es conocer la existencia de ciertos comandos tiles, pero remitimos al lector a las referencias de la bibliografa (desde la [8] a las [12]) y -sobre todo- al manual del comando en cuestin. man Para consultar la ayuda de un comando. man ls ls Para listar el contenido de un directorio (similar a dir en MS-DOS). ls ls -lh cp Para copiar archivos (similar a copy en MS-DOS). cp /home/user/archivo.txt /tmp rm Para eliminar archivos (similar a del en MS-DOS). rm /home/amms/archivo.txt rm -rf /tmp/* mv Para mover archivos de un directorio a otro. Tambin se usa para cambiar el nombre de un archivo o directorio. mv archivo1.txt archivo2.txt directorio_destino mv nombre_original.txt nombre_final.txt tail Para ver el final de un archivo. Normalmente se usa para consultar los logs. tail -f /var/log/syslog

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 17 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

De esta forma la pantalla se va actualizando automticamente con las nuevas lneas que aparecen en el fichero. cat Para mostrar el contenido de un archivo (similar a type en MS-DOS). cat miarchivo.txt file Indica el tipo de archivo. Nos dir si es binario, ascii, de dispositivo, etc. file /home/user/prueba.txt df Para ver lo que queda libre en cada particin montada en el sistema (similar al comando bdf de hpux). df -h La opcin -h es human-readable, que cambia los tamaos para que en lugar de expresarse en bytes (ms difciles de leer) se expresen en MB o GB. cut Usado para extraer partes concretas de una lnea de un fichero (ver [23]). ls -l | cut -c 2-4 Se redirige la salida de ls -l al comando cut, que extrae los caracteres entre el 2 y el 4. wc Cuenta el nmero de palabras (o lneas, o caracteres... ver [26]) de un fichero. ls | wc -l echo Escribe una cadena en la pantalla (en la salida estndar). Similar a echo en Windows y otros sistemas (Unix, Mac, entre otros). mivariable=hola echo el contenido de la variable "mivariable" es \" $mivariable \" Primero asignamos un valor (la cadena hola) a la variable mivariable (ver apartado Variables de entorno). Luego, con el comando echo, mostramos un frase y el contenido de la variable al final. El poner el carcter \ antes de las comillas es para escapar dicho carcter (las comillas), de forma que no interprete dicho carcter sino que simplemente lo imprima. Si no pusiramos el \ no
Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 18 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

imprimira las comillas. telnet Para iniciar una sesin remota en otra mquina (similar al programa telnet de Windows). telnet ip_maquina_destino ssh Para iniciar sesin remota en otra mquina (como telnet) pero de forma que el trfico va cifrado. ssh -l root maquina_destino scp Similar a cp pero lo hace de forma cifrada y se puede usar para copiar archivos entre varias mquinas (el trfico siempre ir cifrado). scp -rv /home/user/miarchivo.txt user2@ip_maquina_destino:/home/user2 ftp Cliente de ftp. Para subir/bajar archivos a un servidor de ftp. ftp ftp.rediris.es chown Para cambiar el propietario de un archivo. chown mario -R /home/mario -R es para que se haga de forma recursiva chgrp dem de chown pero para el grupo. chgrp grupo2 -R /home/mario chmod Para cambiar los permisos de un archivo o directorio. Se pueden especificar los permisos de varias formas (ver pgina del manual para ms informacin). chmod 777 /home/user/miscript.sh

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 19 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 20 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

Comandos avanzados
En este apartado vamos a ver, brevemente, unos comandos avanzados pero muy tiles para el trabajo cotidiano con un sistema Linux. Se ver un ejemplo simple 2 como mximo. La idea aqu es conocer la existencia de ciertos comandos tiles, pero remitimos al lector a las referencias de la bibliografa (desde la [8] a las [12]) y -sobre todo- al manual del comando en cuestin. find Para buscar un fichero en un directorio especificado (referencias [16] a [19], en especial la [19], que es bastante sencilla de entender). find /home/user -name *archiv* Busca recursivamente los archivos/directorios cuyo nombre contenga la cadena archiv a partir del directorio /home/user. grep Para buscar coincidencias de cadenas/patrones en un texto dado (ver referencias [13] a [15]). grep -i texto_a_buscar fichero.txt Busca el texto texto_a_buscar en el fichero fichero.txt. Usando la opcin -i le decimos que no distinga entre maysculas y minsculas (ignore-case). awk Muy til para procesar ficheros de texto. (ver referencias [20] a [22]) ls -l | awk '{ print "Name: "$10 " Size:" $5 }'

En este ejemplo usamos una tubera (pipe en ingls) mediante el operador |, de forma que le pasamos la salida de un comando (en este caso ls -l) al comando awk. Esto se usa mucho en Linux para crear largas listas de comandos cuyas salidas son entradas de los siguientes para conseguir al final el resultado deseado. En este caso, lo que hace awk es mostrar el nombre del fichero y su tamao. sed Tambin usado para procesar texto. Por ejemplo, lo podemos usar para filtrar cierto texto en un fichero o cambiar una palabra por otra (ver referencias [27] a [29]). sed 's/hola/adios/g' prueba.txt Cambia cualquier aparicin de la palabra hola en el fichero prueba.txt por la palabra adios y muestra el nuevo fichero modificado por la salida estndar (si queremos guardarlo en otro fichero tenemos que redirigir la salida estndar: sed 's/hola/adios/g' prueba.txt > /tmp/salida.txt). fdisk

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 21 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

Sirve para consultar/editar la tabla de particiones. fdisk -l Este comando hay que ejecutarlo como fdisk. Con la opcin -l muestra los discos duros que hay en el sistema y las particiones que tienen. mount Se usa para montar pendrives, discos duros, cdroms, etc. en un directorio del sistema de ficheros de Linux. Se puede usar para montar tambin comparticiones samba o nfs. Otro uso puede ser el montar imgenes iso, por ejemplo. (Ver apartado sobre el montaje en Linux). mount /dev/sdb1 /mnt/temp lsof Indica qu ficheros estn abiertos por un programa concreto. lsof programa aptitude3 update Para actualizar los repositorios en una distro Linux basada en el sistema de paquetes apt. aptitude update aptitude dist-upgrade Para actualizar una distro Linux basada en el sistema de paquetes apt. aptitude -y dist-upgrade -y sirve para que no nos pregunte (considerar yes como nuestra respuesta) aptitude install programa Para instalar un programa en una distro Linux basada en el sistema de paquetes apt. aptitude install emacs aptitude remove programa Para eliminar un programa en una distro Linux basada en el sistema de paquetes apt. aptitude remove vi
3

ifconfig

Existe tambin apt-get, pero aptitude es ms completo que ste ya que recuerda las dependencias de los paquetes y as, cuando desinstales un paquete (con aptitude remove) elimina tambin esas dependencias si no las necesita otro programa (apt-get no lo hara).

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 22 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

Para cambiar la configuracin de red. ifconfig eth0 147.84.46.147 netmask 255.255.255.0 up route Para aadir/eliminar rutas de red en el kernel. route add -net 147.84.204.0 netmask 255.255.255.0 gw 147.84.46.241 route add default gw 147.84.46.249

En el apartado de bibliografa (referencias [8] a [12]) dejamos varias urls tiles e interesantes sobre comandos. En particular, es recomendable la [8], que viene bien para tenerla archivada en los marcadores favoritos, ya que es una referencia rpida a los comandos ms importantes y usuales de Linux.

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 23 de 24

Informe

Curso prctico de GNU/Linux


Departamento de Sistemas y Comunicaciones

Bibliografa
[1] [2] [3] [4] [5] [6] [7] [8] [9] http://www.wikipedia.org/ http://www.eloihr.net/linux/index.php?page=directorios http://www.icalvyn.com/linux-files-types/ http://www.mailxmail.com/curso-linux-unix-multiusuario/linux-unix-permisos-archivos-directorios http://www.linuxcentro.net/linux/staticpages/index.php?page=UsuariosGruposLinux http://www.estrellateyarde.org/so/logs-en-linux http://www.cyberciti.biz/faq/linux-log-files-location-and-how-do-i-view-logs-files/ http://www.pixelbeat.org/cmdline_es_AR.html http://ubunturoot.wordpress.com/2007/11/06/comandos-basicos-para-linux/

[10] http://es.kioskea.net/contents/linux/lincomm.php3 [11] http://www.esdebian.org/wiki/lista-comandos-gnulinux-i [12] http://www.ajpdsoft.com/modules.php?name=news&file=article&sid=155 [13] http://es.wikipedia.org/wiki/Grep [14] http://120linux.com/comando-grep/ [15] http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_04_02.html [16] http://es.wikipedia.org/wiki/Find [17] http://content.hccfl.edu/pollock/unix/findcmd.htm [18] http://javarevisited.blogspot.com/2011/03/10-find-command-in-unix-examples-basic.html [19] http://ubuntu-paranovatos.blogspot.com/2010/11/find-command.html [20] http://es.wikipedia.org/wiki/AWK [21] http://linuxfocus.org/Castellano/September1999/article103.html [22] http://www.grymoire.com/Unix/Awk.html [23] http://en.wikipedia.org/wiki/Cut_%28Unix%29 [24] http://es.wikipedia.org/wiki/Entrada_est%C3%A1ndar [25] http://es.wikipedia.org/wiki/Bash#Redirecciones_de_entrada.2Fsalida [26] http://es.wikipedia.org/wiki/Wc_%28Unix%29 [27] http://en.wikipedia.org/wiki/Sed [28] http://enavas.blogspot.com/2008/03/el-shell-de-linux-comando-sed.html [29] http://www.vensign.com/blog/como-utilizar-el-comando-sed-en-la-vida-real-ejemplos-y-tips-parte-1.html

Nombre del archivo: curso_linux_tecnicos_v4.odt Fecha: 2011-03-09 Pgina: 24 de 24

Vous aimerez peut-être aussi