Download - LE101 - Linux Enterprise Operacional v1-0
-
LE-101 - Linux Enterprise Operacional
-
Tabla de contenido
ndice de contenido
Introduccin al sistema operativo LINUX...............................................................................7El sistema operativo Linux......................................................................................................9
Usuarios y grupos.................................................................................................................11
El usuario root.......................................................................................................................12
Organizacin del rbol de archivos ....................................................................................12
El directorio raz: / ................................................................................................................13
Introduccin a la lnea de comandos....................................................................................14
Ejecucin de comandos y opciones.....................................................................................14
Obtener ayuda......................................................................................................................15
El comando info....................................................................................................................16
Fecha, hora, calendario........................................................................................................16
Manipulacin de contraseas...............................................................................................18
Utilizacin de consolas virtuales...........................................................................................18
Otros comandos bsicos tiles.............................................................................................18
Manipulacin de archivos......................................................................................................20Directorio actual de trabajo...................................................................................................22
Nombres de archivos............................................................................................................22
Rutas absolutas y relativas...................................................................................................22
El directorio HOME...............................................................................................................23
Cambiando directorios..........................................................................................................23
Listar el contenido de directorios..........................................................................................24
Comodines de la lnea de comandos...................................................................................25
Comprobando espacio disponible........................................................................................26
Crear y borrar archivos y directorios....................................................................................28
Borrar archivos y directorios.................................................................................................29
Mover o renombrar archivos.................................................................................................29
Copiando archivos y directorios...........................................................................................30
Determinando el tipo de un archivo......................................................................................31
Visualizar archivos de texto..................................................................................................32
-
Usuarios y grupos..................................................................................................................34Usuario y grupos, concepto..................................................................................................36
El usuario root y otros usuarios del sistema........................................................................ 36
Modelo de seguridad de Linux.............................................................................................36
Comandos para obtener informacin de usuarios...............................................................37
Cambiando la identidad del usuario.....................................................................................37
Permisos de acceso a archivos y directorios......................................................................39Seguridad de archivos en Linux...........................................................................................41
Tipos de permisos de archivos.............................................................................................41
Examinando los permisos de archivos y directorios............................................................41
Cambiando permisos de archivos........................................................................................42
Permisos especiales.............................................................................................................44
Permisos por defecto de los archivos..................................................................................46
El sistema de archivos...........................................................................................................48Sistemas de archivos ext2/ext3............................................................................................50
Enlaces o vnculos simblicos (blandos) y duros.................................................................50
Los enlaces o vnculos.........................................................................................................51
Los vnculos simblicos y la limitacin de los vnculos duros..............................................52
Buscando y procesando archivos.........................................................................................53
bzip2 y gzip: comandos de compresin de datos ...............................................................56
El comando zip.....................................................................................................................57
Copias de seguridad con el comando tar.............................................................................57
Nombres de archivos comprimidos comunes y programas asociados................................58
El editor vi................................................................................................................................60Ejecutar vi ............................................................................................................................62
Comandos de movimiento del cursor ..................................................................................62
Borrar texto ..........................................................................................................................63
Cambiar texto........................................................................................................................63
Deshaciendo y rehaciendo cambios ...................................................................................63
Grabando y saliendo.............................................................................................................64
Cortando, copiando y pegando............................................................................................64
Otras operaciones tiles.......................................................................................................65
Buscando, reemplazando y usando de expresiones regulares...........................................65
-
Bsqueda y sustituciones.....................................................................................................65
El intrprete de comandos BASH..........................................................................................67GNU Bourne-Again Shell y las variables de en .................................................................. 69
Volviendo a llamar a comandos...........................................................................................70
Expansin de la linea de comandos.....................................................................................71
Valores de retorno de los comandos....................................................................................72
Sobrenombres......................................................................................................................72
Scripts de inicializacin y finalizacin...................................................................................72
Historial.................................................................................................................................74
Bsqueda de comandos previamente ejecutados...............................................................74
Substitucin de comandos...................................................................................................74
Redirecciones y tuberas.......................................................................................................76Descriptores de archivos, entrada, salida y error estndar................................................. 78
Redireccionando la entrada y la salida................................................................................78
Redireccionando el error estndar.......................................................................................79
Sobrescritura y agregado de las redirecciones....................................................................80
Redireccionando la salida estndar y el error estndar.......................................................80
Tuberas................................................................................................................................80
Filtros y procesamiento de cadenas.....................................................................................82Concepto de filtro .................................................................................................................84
Traduccin de caracteres ...................................................................................................84
Paginador de la salida por impresora...................................................................................85
Mostradores de ficheros por porciones: tail y head ............................................................86
El comando de ordenacin...................................................................................................87
Supresin de lneas repetidas .............................................................................................88
El comando de seleccin de campos del fichero.................................................................88
El comando de fusin de campos de diferentes ficheros....................................................89
Expresiones regulares...........................................................................................................91Expresiones regulares..........................................................................................................93
Correspondencia de principio y fin de lnea.........................................................................93
Correspondecia con cualquier caracter................................................................................93
Conjuntos de caracteres.......................................................................................................94
Correspondencia repetida de patrones................................................................................94
-
Anulacin del significado especial de un caracter...............................................................95
Grupos de caracteres...........................................................................................................95
Bsqueda de patrones dentro de archivos..........................................................................96
Buscando archivos segn su contenido...............................................................................97
Editores fuera de lnea.........................................................................................................97
Editor de flujo sed.................................................................................................................98
El awk..................................................................................................................................100
Variables del awk................................................................................................................101
Programacin en awk.........................................................................................................102
Scripts del shell....................................................................................................................104Conceptos bsicos de scripts del shell..............................................................................106
Los caracteres especiales ms comunes..........................................................................106
read.....................................................................................................................................107
Parmetros posicionales ...................................................................................................107
Tests de ficheros................................................................................................................108
Tests de comparacin de enteros......................................................................................108
Tests de comparacin de cadenas....................................................................................109
Condicionales.....................................................................................................................109
Bucles.................................................................................................................................111
Bucles for............................................................................................................................111
Bucle while..........................................................................................................................112
Case....................................................................................................................................113
Scripts de ejemplo..............................................................................................................114
Impresin y comunicacin...................................................................................................116Imprimir bajo Linux.............................................................................................................118
Viendo la cola de impresin...............................................................................................119
Cancelando un trabajo de impresin..................................................................................119
La variable de entorno PRINTER ......................................................................................119
Enviar correo electrnico....................................................................................................120
Leer el correo......................................................................................................................120
Redireccin de correo.........................................................................................................121
Control de procesos y herramientas del sistema.............................................................122El rbol de procesos...........................................................................................................124
-
Las seales.........................................................................................................................125
kill, killall..............................................................................................................................125
Usando el control de trabajos.............................................................................................126
Agendando la ejecucin peridica de procesos................................................................ 127
Agendando procesos para su ejecucin ...........................................................................128
Nociones bsicas de red......................................................................................................130Introduccin a las redes IP.................................................................................................132
El comando ping.................................................................................................................132
Obteniendo informacin sobre rutas e interfaces..............................................................133
Informacin sobre rutas......................................................................................................134
Listando las rutas a un host particular................................................................................135
Traduccin entre nombres y direcciones IP.......................................................................135
Listando los registros de un DNS.......................................................................................136
Transfiriendo archivos a travs de la red...........................................................................138
Verificando el estado de los puertos de red.......................................................................141
Shell Seguro (ssh)..............................................................................................................142
Usando el comando scp.....................................................................................................143
Uso del comando sftp.........................................................................................................144
Generar pares de claves....................................................................................................144
Generacin de un par de claves DSA para la versin 2....................................................144
-
1Introduccin al sistema operativo LINUX
-
Introduccin al sistema operativo LINUX
Acerca de esta unidad
En esta unidad se cubren los siguientes tpicos:
El sistema operativo Linux
Interfaz del usuario con el sistema operativo
Usuarios e inicios de sesin locales
Exploracin del sistema de archivos
Linea de comandos
Ejecucin de comandos y opciones
Ayuda
Fecha, hora, calendario
Manipulacin de contraseas
Utilizacin de consolas virtuales
8 Ing. Ivan Ferreira
-
Introduccin al sistema operativo LINUX
Introduccin al sistema operativo Linux
El sistema operativo Linux
LINUX es un sistema operativo, compatible Unix. Dos caractersticas muy peculiares lo diferencian del resto de los sistemas que podemos encontrar en el mercado, la primera, es que es libre, esto significa que no tenemos que pagar ningn tipo de licencia a ninguna casa desarrolladora de software por el uso del mismo, la segunda, es que el sistema viene acompaado del cdigo fuente. El sistema lo forman el ncleo del sistema (kernel) mas un gran numero de programas / libreras que hacen posible su utilizacin.
LINUX se distribuye bajo la GNU Public License: Ingls , por lo tanto, el cdigo fuente tiene que estar siempre accesible.
El sistema ha sido diseado y programado por multitud de programadores alrededor del mundo. El ncleo del sistema sigue en continuo desarrollo bajo la coordinacin de Linus Torvalds, la persona de la que parti la idea de este proyecto, a principios de la dcada de los noventa.
Da a da, ms y ms programas / aplicaciones estn disponibles para este sistema, y la calidad de los mismos aumenta de versin a versin. La gran mayora de los mismos vienen acompaados del cdigo fuente y se distribuyen gratuitamente bajo los trminos de licencia de la GNU Public License.
Las funciones principales de este magnfico sistema operativo son: Sistema multitarea: En Linux es posible ejecutar varios programas a la vez sin
necesidad de tener que parar la ejecucin de cada aplicacin.
Sistema multiusuario: Varios usuarios pueden acceder a las aplicaciones y recursos del sistema Linux al mismo tiempo. Y, por supuesto, cada uno de ellos puede ejecutar varios programas a la vez (multitarea).
Shells programables: Un shell conecta las ordenes de un usuario con el Kernel de Linux (el ncleo del sistema), y al ser programables se puede modificar para adaptarlo a tus necesidades. Por ejemplo, es muy til para realizar procesos en segundo plano.
Multiplataforma: Corre en muchas CPUs distintas, no slo Intel, tambin el Alpha, PowerPC, Itanium, etc.
Consolas virtuales mltiples: Varias sesiones de login a travs de las consolas virtuales entre las que se puede cambiar con las combinaciones adecuadas de
9 Ing. Ivan Ferreira
-
Introduccin al sistema operativo LINUX
teclas.
La memoria se gestiona como un recurso unificado para los programas de usuario y para el cach de disco, de tal forma que toda la memoria libre puede ser usada para cach y ste puede a su vez ser reducido cuando se ejecuten grandes programas.
Linux permite un acceso transparente a particiones Windows (VFAT) y acceso de slo lectura a particiones NTFS.
El sistema operativo Linux comnmente puede ser estructurado en capas como se muestra en la figura:
El hardware se encuentra en el centro. El sistema operativo es la interfaz entre los procesos del usuario y el hardware.
El kernel de Linux es intencionalmente compacto y diseado para incluir aquellas operaciones que requieren privilegios especiales del sistema para ejecutarse.
El kernel es el programa de control central que provee los servicios bsicos del
10 Ing. Ivan Ferreira
Programas de aplicacin
Shell
Demonios y servicios
Kernel
Device drivers
Hardware
-
Introduccin al sistema operativo LINUX
sistema. Es un archivo ejecutable, se compila desde los archivos fuente, archivos objetos y parmetros configurables. Se carga en memoria cuando el sistema inicia y ejecuta programas y administra los recursos del computador.
El kernel espera solicitudes de los procesos del usuario para acceder a los recursos del sistema, como memoria, CPU y dispositivos. Los programas del usuario solicitan servicios al kernel por medio de llamadas del sistema o system calls. Los dispositivos de hardware se comunican con el kernel por medio de interrupciones.
El shell rodea al kernel y acta como una interfaz del usuario. El shell es conocido como intrprete de comandos. Administra la ejecucin de procesos en primer y segundo plano, posee un entorno configurable, un lenguaje flexible y proporciona redireccin de la entrada y la salida.
Usuarios y grupos
El concepto de usuarios y grupos es extremadamente importante, ya que tiene una influencia directa sobre todos los dems conceptos que iremos presentando a lo largo de la unidad.
Linux es un sistema multi-usuario verdadero, y para poder usar su sistema GNU/Linux debe poseer una cuenta en el mismo.
Los dos parmetros importantes son, el nombre de conexin (comnmente abreviado login) y la contrasea. Estos son los que usar para poder ingresar al sistema. Otra accin que ocurri cuando se cre una cuenta de usuario es la creacin de un grupo.
Por defecto, el programa de instalacin habr creado un grupo por usuario. Como veremos ms adelante, los grupos son tiles cuando varias personas tienen que compartir archivos. Por lo tanto, un grupo puede contener tantos usuarios como Ud. desee, y es muy comn ver tal separacin en sistemas grandes.
En una universidad, por ejemplo, Ud. puede tener un grupo por cada departamento, otro grupo para los profesores, y as sucesivamente. La inversa tambin vale: un usuario puede ser miembro de uno o ms grupos, hasta un mximo de treinta y dos. Por ejemplo, un profesor de matemticas puede ser un miembro del grupo de profesores y tambin ser miembro del grupo de sus queridos estudiantes de matemticas. Sin embargo, todo esto no le dice como conectarse.
Para poder conectarse, tendr que ingresar su nombre de conexin en el prompt Login: y presionar Intro, despus de lo cual aparecer el programa de conexin (denominado login ) que mostrar el prompt Password:, donde deber ingresar la contrasea para esta cuenta.
Debido a que la conexin en la consola no hace eco de los caracteres que
11 Ing. Ivan Ferreira
-
Introduccin al sistema operativo LINUX
representan a la contrasea, deber tener cuidado cuando teclea su contrasea a ciegas. Note que Ud. se puede conectar varias veces usando la misma cuenta sobre consolas adicionales y bajo X .
Cada sesin que abra es independiente de las otras, e incluso es posible tener varias sesiones X abiertas concurrentemente.
El usuario root
Normalmente esta es la cuenta que tiene el administrador del sistema, que es muy probable que sea Ud. Para la seguridad de su sistema, es muy importante que la cuenta de root siempre est protegida por una buena contrasea! Si se conecta como root regularmente es muy fcil cometer un error que puede hacer que su sistema quede intil; un nico error puede hacer que esto ocurra. En particular, si no ha proporcionado una contrasea para la cuenta root, cualquier usuario puede conectarse usando dicha cuenta y alterar cualquier parte de su sistema (incluso de otros sistemas operativos presentes en su mquina!).
Obviamente, esto no es una idea muy buena. Vale la pena mencionar que, internamente, el sistema no lo identifica con su nombre de conexin sino con un nmero nico asignado a este nombre de conexin: el UID (User ID, Identificador del usuario). Similarmente, cada grupo se identifica no por su nombre sino por su GID o Group ID, (Identificador del grupo). El UID del usuario root es 0 y el GID es tambin 0.
Un sistema de archivos consta de de tipos de datos abstractos (que representan la informacin y las operaciones posibles sobre ellas), que son necesarios para el almacenamiento, organizacin jerrquica, manipulacin, navegacin, acceso y consulta de datos. La mayora de los sistemas operativos poseen su propio sistema de archivos.
Organizacin del rbol de archivos
Hoy da, un sistema Unix es grande, muy grande. Esto es particularmente cierto con GNU/Linux : la profusin de software disponible lo haran un sistema inmanejable si no hubieran guas para la ubicacin de los archivos en la estructura del rbol. Respecto a eso, la norma reconocida es FHS (Filesystem Hierarchy Standard, Norma para la jerarqua del sistema de archivos).
El documento que describe la norma est disponible en diferentes formatos en la Internet en la direccin http://www.pathname.com/fhs/ (http://www.pathname.com/fhs/ ). Slo da un breve sumario, pero debera ser suficiente para que Ud. sepa en que directorio debera buscar (o poner) un archivo dado.
12 Ing. Ivan Ferreira
-
Introduccin al sistema operativo LINUX
El directorio raz: /
El directorio raz contiene toda la jerarqua del sistema. Aqu tiene una lista de los directorios y subdirectorios principales:
/bin - Archivos binarios esenciales del sistema. Este directorio contiene los comandos bsicos que usarn todos los usuarios y son necesarios para la operacin del sistema: ls, cp, login, etc.
/boot - Contiene los archivos que necesita el administrador de arranque de GNU/Linux, incluyendo el kernel y el disco RAM inicial.
/dev - Archivos de los dispositivos del sistema (dev por DEVices, Dispositivos).
/etc - Este directorio contiene todos los archivos de configuracin especficos a la mquina.
/home - Contiene todos los directorios personales de los usuarios del sistema. Este directorio puede, o no montado a travs de NFS.
/lib - Este directorio contiene las bibliotecas esenciales al sistema y los mdulos del kernel, en /lib/modules. Todas las bibliotecas que necesitan los binarios presentes en los directorios /bin y /sbin se deben ubicar aqu, junto con el vinculador ld.so.
/mnt - Directorio que contiene los puntos de montaje para los sistemas de archivos temporales.
/media - El directorio /media/ contiene los subdirectorios utilizados como puntos de montaje para la media removible, tales como CD-ROMs y discos Zip.
/misc Este directorio es utilizado por el servicio autofs el cual permite montar y desmontar automticamente dispositivos y sistemas de archivos de red .
/net Este directorio es utilizado por el servicio autofs el cual permite montar y desmontar automticamente dispositivos y sistemas de archivos de red.
/opt - Este directorio contiene los paquetes que no son necesarios para la operacin del sistema y generalmente son compilados e instalados desde el fuente, no desde un formato RPM.
/proc - El directorio /proc/ contiene "archivos" especiales que o bien extraen informacin del kernel o bien la envan a ste.
/root - Directorio personal del usuario root.
13 Ing. Ivan Ferreira
-
Introduccin al sistema operativo LINUX
/usr - contiene los binarios del sistema esenciales para el arranque del mismo, utilizables por cualquier usuario.
/sbin - contiene los binarios del sistema esenciales para el arranque del mismo,
slo utilizables por root. Un usuario no privilegiado tambin puede ejecutarlos pero no llegar muy lejos.
/selinux Punto de montaje para el sistema de archivos virtual SELinux cuando este esta habilitado en el kernel.
/sys El directorio /sys/ utiliza el nuevo sistema de archivos virtual sysfs especfico al kernel 2.6. Ahora con el soporte ms extendido para los dispositivos de conexin en caliente (hot plug) en el kernel 2.6, el directorio /sys/ contiene informacin similar a la que se encuentra en /proc/, pero muestra una vista jerrquica de la informacin de dispositivos especfica con relacin a los dispositivos de conexin en caliente.
/tmp - Directorio destinado a contener archivos temporales que pueden crear ciertos programas.
/var - Ubicacin para los datos que los programas pueden modificar en tiempo real (ej: el servidor de correo electrnico, los programas de auditoria, el servidor de impresin, etc.)
Introduccin a la lnea de comandos
La lnea de comandos es la manera ms directa de enviar comandos a la mquina. Si usa la lnea de comandos de GNU/Linux , rpidamente ver que es mucho ms potente y tiene ms capacidades que los intrpretes de comandos que puede haber usado con anterioridad. La razn de esto es que tiene un acceso directo, no slo a todas las aplicaciones X , sino tambin a los miles de utilitarios en modo consola (en oposicin al modo grfico) que no tienen su equivalente grfico, o nunca (o al menos todava!) ser posible mostrar en forma de mens y botones todas las opciones y combinaciones posibles.
Ejecucin de comandos y opciones
Lo que obtiene en realidad al iniciar este emulador de terminal es un shell. Este es el nombre del programa con el cual Ud. interacta. Ud. se encontrar frente al prompt:
[usuario@localhost ~]$
Esto supone que su nombre de usuario es usuario y que el nombre de su mquina es
14 Ing. Ivan Ferreira
-
Introduccin al sistema operativo LINUX
localhost (este es el caso si su mquina no es parte de una red existente). Todo lo que aparece despus del prompt es lo que tiene que teclear. Note que cuando Ud. es root el signo $ del prompt cambia por un signo #. (esto slo es vlido con la configuracin predeterminada, ya que puede personalizar todos estos detalles en GNU/Linux ).
Todos los comandos Unix consisten de una secuencia de letras, nmeros y caracteres. No son validos los espacios dentro del nombre del comando. Algunos comandos validos son mail, cat, man. Linux adems hace diferencia entre maysculas y minsculas, lo que significa que Cat y cat son comandos distintos.
Obtener ayuda
El comando man muestra las pginas de la gua de referencia para un comando dado.
Hay aproximadamente una pgina completa de informacin sobre cat. Pruebe correr man este momento. No espere entender la pagina de manual que se le muestra. Las paginas de manual suponen un cierto conocimiento de Unix, conocimiento que tal vez Ud. no tenga en este momento.
Cuando termine de leer la pagina, es probable que vea un bloque en video inverso al nal de la pagina, parecido a --more--" o a Line 1". Se trata del pedido de mas (informacin), que pronto le ser a muy familiar. En lugar de dejar escapar el texto fuera de los limites de la pantalla, man se detiene al final de cada pagina, y espera para ver que ha decidido hacer Ud.. Si desea seguir leyendo, oprima Barra espaciadora y avanzar a una pagina. Si desea terminar con la lectura de la pagina del manual, oprima q .
Cuando el autor describe los argumentos de un comando:
comando [--opcin={arg1,arg2,arg3}] [argumento_opcional ...]
Los signos (mayor que) denotan un argumento obligatorio que no debe ser copiado textualmente, sino que debe reemplazarse de acuerdo con sus necesidades. Por ejemplo, se refiere al nombre real de un archivo. Si dicho nombre es pepe.txt, usted debera teclear pepe.txt, y no o .
Los corchetes "[ ]" denotan argumentos opcionales, los cuales puede o no incluir en el comando.
Los puntos suspensivos "..." significan que en ese lugar se puede incluir un nmero arbitrario de elementos.
Las llaves "{ }" contienen los argumentos permitidos en este lugar. Uno de ellos debe ser puesto aqu.
15 Ing. Ivan Ferreira
-
Introduccin al sistema operativo LINUX
El man provee adems una funcin de bsqueda de palabras clave. Por ejemplo, digamos que Ud. est interesado en el tema PostScript, el lenguaje de control de impresoras desarrollado por Adobe. Si escribe:
$ man -k ps$ man -k Postscript
Recibir como resultado una lista de todos los comandos, llamadas al sistema, y otras partes documentadas de Linux que contengan la palabra ps" (o Postscript") en su nombre o descripcin breve. Esto puede llegar a ser muy til cuando quiere buscar una herramienta para hacer algo, pero no conoce su nombre o si existe.
El comando info
El comando info nos sirve cuando el texto de ayuda de man es insuficiente, o directamente no existe una entrada en su base de datos sobre lo que buscamos. El programa info tiene una interfaz navegable: muchas de las pginas tienen enlaces a otras pginas relacionadas, muy similar a como tienen las pginas web. Los enlaces se indican mediante un asterisco (*) seguido por el ttulo del enlace, seguido por un doble dos puntos (::). Para seguir los enlaces, hay que situar el cursor sobre ellos y pulsar la tecla .
Para ayudar la navegacin por los documentos, tambin estn las siguientes teclas:
b Ir un paso hacia atrs, a la ltima pgina visitadau Ir al nivel superior en el rbol de pginasn Ir a la siguiente pginap Ir a la pgina previaq Salir de info
Fecha, hora, calendario
Para obtener la fecha y hora del sistema se debe ejecutar el comando date. El comando date sin argumentos devuelve la fecha y la hora actual. El comando date puede ser formateado de tal forma a obtener la fecha como sea requerido. Ejemplos:
Mostrar la hora actual:
$ date
Mostrar la hora en el formato ao, mes, da:
16 Ing. Ivan Ferreira
-
Introduccin al sistema operativo LINUX
$ date "+%Y-%m-%d"
$ date "+Ao: %Y Mes: %m Dia: %d"
La fecha de un mes antes a partir de hoy:
$ date -d '1 month ago' El mes hace cinco meses del actual:
$ date +%B -d '5 month ago'
La fecha de ayer: $date --date "yesterday" La fecha de maana:
$date --date "tomorrow" La fecha del viernes de la prxima semana:
$ date -d "next week friday" El comando date tambin puede ser utilizado por el usuario root para cambiar la hora del sistema, el formato del comando es:
# date [MMDDhhmm[[CC]YY][.ss]]
El comando cal muestra un calendario en pantalla, sin opciones, el comando cal mostrar el calendario para el mes corriente. Podemos especificar al comando que muestre un mes determinado o un ao especfico. Por ejemplo:
Calendario del mes corriente de este ao:
$ cal
Calendario del ao 2010:
$ cal 2010
Calendario de diciembre de 2010:
$ cal 12 2010
17 Ing. Ivan Ferreira
-
Introduccin al sistema operativo LINUX
Manipulacin de contraseas
Muchas veces es necesario cambiar la contrasea del inicio de sesin. Esto puede ser tan solo por gusto, para mantener la seguridad, por que la contrasea actual ha sido conocida o por polticas que requieren que la contrasea sea cambiada.
Para cambiar la contrasea se utiliza el comando passwd. Un usuario no privilegiado puede cambiar tan solo su propia contrasea, ejecutando el comando passwd sin opciones.
El usuario root puede cambiar la contrasea de cualquier usuario utilizando el comando passwd nombre_usuario.
Ejemplos:
$ passwd
# passwd juan
Utilizacin de consolas virtuales
Las consolas virtuales permiten el acceso en simultneo de un usuario a ms de una sesin en el sistema operativo.
Por defecto, Linux tiene seis consolas virtuales adems de la reservada para la interfaz grfica. Puede cambiarse a cualquiera de ellas ingresando la secuencia de teclas Ctrl-Alt- F1, donde es el nmero de consola a la cual desea cambiarse.
Por defecto, la interfaz grfica est sobre la consola nmero 7.
Otros comandos bsicos tiles
Puede utilizar el comando bc para realizar clculos matemticos. Es una calculadora bsica. Los operadores bsicos son + (suma), - (resta), * (multiplicacin), / (divisin). Para finalizar la calculadora presione las teclas CTRL+D.
El comando tty le ayudar a determinar en qu terminal est conectado actualmente.
El comando echo le permite desplegar mensajes en la pantalla. Es muy til para la programacin de scripts del shell. Ejemplo:
$ echo Mensaje de informacin
18 Ing. Ivan Ferreira
-
Introduccin al sistema operativo LINUX
El comando clear le permite limpiar la pantalla, tambin puede utilizar el mtodo abreviado CTRL-L.
19 Ing. Ivan Ferreira
-
2Manipulacin de archivos
-
Manipulacin de archivos
Acerca de esta unidad
En esta unidad se cubren los siguientes tpicos:
Directorio actual de trabajo
Nombres de archivos
Rutas absolutas y relativas
El directorio HOME y directorios de sistema
Cambiando directorios
Listar el contenido de directorios
Comprobando espacio disponible
Copiar, mover, renombrar archivos y directorios
Crear y borrar archivos y directorios
Determinando el tipo de un archivo
Visualizar y editar archivos de texto
21 Ing. Ivan Ferreira
-
Manipulacin de archivos
Manipulacin de archivos
Directorio actual de trabajo
Si queremos averiguar en que directorio estamos, basta con digitar pwd y en la linea siguiente saldr el directorio completo donde estamos posicionados. Ejemplo:
$ pwd
Nombres de archivos
Un nombre de archivo puede contener cualquier caracter (excepto el caracter nulo - caracter ASCII 0 - y una / que es el separador de directorio), incluso los no imprimibles. Linux distingue entre maysculas y minsculas. Los archivos pueden contener hasta 255 caracteres.
Como debe haber notado, un nombre de archivo no contiene extensin alguna a menos que Ud. lo prefiera as. Bajo GNU/Linux las extensiones no caracterizan el contenido de un archivo, y tampoco lo hacen bajo otros sistemas operativos si es por eso. No obstante, las as llamadas extensiones del archivo siempre son muy convenientes. El caracter del punto (.) bajo Unix es simplemente un caracter entre otros. Vale la pena mencionar que, bajo Linux los nombres de archivo que comienzan con un punto son archivos ocultos.
Rutas absolutas y relativas
Una trayectoria o ruta absoluta, indica la forma de ubicar un archivo en el sistema de archivos a partir del directorio raz. Comienza con una /" y especifica todos lo directorios que existen antes del archivo que Ud. desea. Ejemplo:
$ /home/juan/archivo.bash
Una trayectoria o ruta relativa esta referida a su directorio actual. Existen dos directorios que se utilizan solamente para trayectorias relativas: ." y ..". El directorio ." se refiere al directorio actual, y .." es el directorio anterior o directorio padre: son abreviaturas" de directorio, y existen en todos los directorios, aun el directorio raz tiene un directorio anterior: el es su propio directorio anterior. Ejemplo:
Un archivo en el directorio actual:
$ ./archivo.bash
Un archivo en el directorio inmediatamente superior:
22 Ing. Ivan Ferreira
-
Manipulacin de archivos
$ ../archivo.bash
Un archivo 2 directorios por encima del actual
$ ../../archivo.bash
Un archivo en el directorio tmp que se encuentra 2 directorios por encima del actual
$ ../../tmp/archivo.bash
El directorio HOME
Cada usuario tiene su propio directorio (denominado su directorio personal, o home en ingls). El es el dueo de este directorio, y de los archivos que va a crear posteriormente en l.
El directorio home es el directorio al cual accede automticamente luego de haber iniciado una sesin en el sistema.
Cambiando directorios
cd: Cambiar de directorio (Change Directory) El comando cd es exactamente el mismo que en DOS , con alguna funcionalidad extra. Puede usar . para referirse al directorio corriente y .. para referirse al directorio padre del directorio corriente.
Si ingresa cd solo, ser llevado de vuelta a su directorio personal. Si ingresa cd - ser llevado al ultimo directorio en el cual estuvo.
Finalmente, puede especificar el directorio personal del usuario juan ingresando:$ cd ~juan
Usando ~ solo o seguido de / significa el directorio personal suyo. Note que, como usuario no privilegiado, normalmente no puede ingresar a los directorios personales de otros usuarios (a menos que esos usuarios lo hayan autorizado explcitamente o esa sea la configuracin predeterminada del sistema), excepto si Ud. es root.
Ejemplos:
$ cd ..$ cd ../../$ cd -$ cd /tmp$ cd ~
23 Ing. Ivan Ferreira
-
Manipulacin de archivos
$ cd ~juan
Listar el contenido de directorios
ls: listar archivos.
El comando ls (LiSt, LiStar) es equivalente a dir de DOS , pero puede hacer mucho ms. De hecho, esto se debe en gran parte al hecho de que los archivos tambin pueden hacer ms.
La sintaxis del comando ls es la siguiente:
ls [opciones] [archivo|directorio] [archivo|directorio...]
Si no se especifica archivo o directorio alguno en la lnea de comandos, ls mostrar la lista de los archivos del directorio corriente.
Sus opciones son muchas y slo citaremos unas pocas:
-a Listar todos los archivos, incluyendo los archivos ocultos (en Linux los archivos ocultos son aquellos cuyo nombre comienza con un . ); la opcin -A lista casi todos los archivos, lo que significa que se mostrarn todos los archivos que mostrara la opcin -a excepto . y ..
-l Muestra informacin adicional sobre cada archivo (formato largo)-s Muestra el tamao en kilobytes junto a cada archivo-h Muestra el tamao en formato fcilmente leble por el humano junto a cada
archivo-R Listar recursivamente, es decir, todos los archivos y subdirectorios del directorio
que se menciona en la lnea de comandos-d Trata a los directorios de la lnea de comandos como si fueran archivos
normales en vez de listar su contenido-S Organiza el listado por tamao de archivo -r Lista los archivo en orden inverso-t lista los archivos ordenados por fecha de creacin o modificacin
Puede combinar ms de una opcin en la lnea de comandos, por ejemplo puede listar todos los archivos, en formato largo, ordenados por fecha de modificacin en orden inverso:
$ ls -latr
24 Ing. Ivan Ferreira
-
Manipulacin de archivos
Comodines de la lnea de comandos
Los comodines permiten especificar de forma ms eficiente mltiples archivos en la lnea de comandos.
* Es reemplazado por el shell por "cualquier conjunto de caracteres"? Es reemplazado por un y solo un caracter en cualquier posicin [] Corresponde a cualquier caracter que se encuentre entre corchetes[!] Corresponde a cualquier caracter que no se encuentre entre corchetes ' El caracter ' (comilla simple), elimina el significado especial de los patrones
de englobamiento, tambin la barra invertida \{c1,c2} Corresponde con c1 o con c2
Ejemplos:
Listar todos los sub-directorios de directorio:
$ ls /directorio/*
Listar todos los archivos README un nivel por debajo de dir:
$ ls /dir/*/README
Listar los archivos que comianzan con a y tienen exactamente cuatro caracteres:
$ ls a???
Listar archivos cuyo nombre comience con a, A, b, B:
$ ls [aAbB]*
Listar archivos uyo nombre comience con cualquier letra del alfabeto:
$ ls [a-zA-Z]*
Listar archivos con nombre que comiencen con un nmero del 0 al nueve, seguido del nmero 5, es decir 05, 15, 25, 35, 45, 55, 65, 75, 85, 95:
$ ls [012345789]5
Un listado igual al anterior pero simplificado con el uso de rangos:
$ ls [0-9]5
25 Ing. Ivan Ferreira
-
Manipulacin de archivos
Listar todos los archivos cuyo nombre no comience con una vocal:
$ ls [!aeiou]*
Listar todos los archivos cuyo nombre no comience con letras minsculas:$ ls [!a-z]*
Listar el archivo salarios o el archivo sueldos:
$ ls {salario,sueldo}
Listar cualquier archivo que comience con sal o con sel:
$ ls {sal*,sel*}
$ ls {sal,sel}*
Listar los archivos README de los directorios /usr/share/doc/pam y /usr/share/doc/dovecot:
$ ls /usr/share/doc/{pam,dovecot}/README
Ejemplos de diferencias entre comillas simples y comillas dobles. Comillas dobles:
$ echo El valor de la variable $PS1 es $PS1El valor de la variable [\u@\h \W]\$ es [\u@\h \W]\$
Comillas simples:
$ echo 'El valor de la variable $PS1 es $PS1'El valor de la variable $PS1 es $PS1
Comillas dobles con carcter de escape para evitar la interpretacin de la variable de entorno PS1:
$ echo El valor de la variable \$PS1 es $PS1El valor de la variable $PS1 es [\u@\h \W]\$
Comprobando espacio disponible
El comando df muestra la cantidad de espacio en disco disponible en el sistema de archivos que contiene cada archivo proporcionado como argumento. Si no se especifica ningn argumento, muestra el espacio disponible en todos los sistema de archivos existentes montados.
Las opciones ms interesantes son:
26 Ing. Ivan Ferreira
-
Manipulacin de archivos
-k Muestra los tamaos en bloques de 1024 bytes (1K). Si no se especifica esta opcin, se mostrarn los tamaos en bloques de 512 bytes. Para convertir los tamaos de bloques a MB, es necesario dividir el tamao reportado por 2048.
-l Muestra informacin adicional sobre cada archivo (formato largo)-s Muestra el tamao en kilobytes junto a cada archivo-H Muestra en un formato fcil de interpretar -t Mustra solamente los sistemas de archivos del tipo indicado
Ejemplos:
Tamaos de todos los sistemas de archivos:
$ df -k
Tamaos del sistema de archivos que contiene el directorio actual en formato fcil de interpretar:
$ df -h .
Tamaos del sistema de archivos que contiene el archivo /etc/hosts:
$ df /etc/hosts
El comando du est relacionado a la obtencin de informacin de espacio en disco. Si deseamos conocer el tamao que ocupa en disco un directorio especfico y todo su contenido, utilizaremos el comando du.
El comando du tambin muestra el resultado en bloques de 512 bytes y tambin acepta la opcin -k para mostrarlos en bloques de 1024 bytes.
La opcin mas til es la opcin -s, que sumariza el total para el argumento dado.
Ejemplos:
Tamao que ocupan todos los directorios del directorio actual:
$ du -sk *
Tamao que ocupa el directorio actual:
$ du -sk .
27 Ing. Ivan Ferreira
-
Manipulacin de archivos
Crear y borrar archivos y directorios
mkdir: creacin de directorios vacos.mkdir (MaKe DIRectory, Crear directorio) se usa para crear directorios. Su sintaxis es simple:
mkdir [opciones] [directorio ...]
Slo una opcin es digna de inters: la opcin -p. La misma hace dos cosas:
1. Crear los directorios padre si es que an no existen. Si no se especifica esta opcin y los directorios padre no existen, mkdir simplemente fallar, quejndose que dichos directorios padre no existen;
2. Retornar silenciosamente si el directorio que Ud. desea crear ya existe. Similarmente, si no especifica la opcin -p, mkdir fallar, quejndose que el directorio ya existe.
Aqu tiene algunos ejemplos. Crea un directorio denominado pepe en el directorio actual:
$ mkdir pepe
Crea un directorio misc en el directorio images creando primero el ltimo si es que no existe:
$ mkdir -p images/misc/
touch: Creacin de archivos vacos.Inicialmente, el comando touch no est orientado a la creacin de archivos sino a la actualizacin de la hora de acceso y modificacin de los archivos. Sin embargo, touch crea los archivos mencionados como archivos vacos si es que no existan.
La sintaxis es:
touch [opciones] archivo [archivo...]
Entonces, ejecutar el comando:
$ touch archivo1 imagenes/archivo2
Crea un archivo vaco denominado archivo1 en el directorio corriente y un archivo vaco denominado archivo2 en el directorio imgenes.
28 Ing. Ivan Ferreira
-
Manipulacin de archivos
Borrar archivos y directorios
rm: borrar archivos o directorios El comando rm (ReMove, Quitar) es utilizado para eliminar archivos o directorios. Su sintaxis es la siguiente:
rm [opciones] [archivo|directorio...]
Las opciones incluyen:
-r -R Borrar recursivamente. Esta opcin es obligatoria para borrar un directorio, vaco o no. Sin embargo, tambin puede usar el comando rmdir para borrar
directorios vacos.-i Pedir confirmacin antes de cada supresin. -f La opuesta de -i, fuerza la supresin de los archivos o directorios.-H Muestra en un formato fcil de interpretar -t Muestra solamente los sistemas de archivos del tipo indicado
Algunos ejemplos:
Borrar todos los archivos cuyo nombre termina en .jpg en el directorio imagenes y borrar el archivo archivo1 en el directorio actual, pidiendo confirmacin para cada uno de los archivos
$ rm -i imagenes/*.jpg archivo1
Borra todo el directorio misc/ del directorio images/
rm -Rf images/misc/*
Mover o renombrar archivos
mv: mover o renombrar archivos La sintaxis del comando mv (MoVe, mover) es la siguiente:
mv [opciones] [archivo|dir. ...]
Algunas opciones:
29 Ing. Ivan Ferreira
-
Manipulacin de archivos
-f Fuerza la operacin no hay advertencia alguna en caso de que la operacin sobre-escriba un archivo que ya existe.
-i Lo contrario a -f, pedir confirmacin al usuario antes de sobre-escribir un archivo existente.
-v Modo verboso, reportar todos los cambios y la actividad.
Algunos ejemplos.
Mover todos los archivos del directorio /tmp/pics/ cuyos nombres terminan en .png al directorio corriente (.), pidiendo confirmacin antes de sobre-escribir cualquier archivo.
$ mv -i /tmp/pics/*.png .
Cambiar el nombre del archivo pepe a pepito.
$ mv pepe pepito
Mover, sin pedir confirmacin, todos los archivos del directorio corriente cuyos nombres comiencen con archivo junto con todo el directorio imagenes/ al directorio tacho/, y mostrar cada operacin llevada a cabo.
mv -vf archivo* imagenes/ tacho/
Copiando archivos y directorios
cp: copiar archivos y directorios
cp (CoPy, Copiar) permite copiar archivos y directorios. Su sintaxis es la siguiente:
cp [opciones] [archivo|dir. ...]
cp tiene muchas opciones. Estas son las ms comunes:
-R Copiar recursivamente; obligatoria para copiar un directorio, incluso si est vaco.
-i Pedir confirmacin antes de obre-escribir cualquier archivo que pudiera sobre-escribirse.
-f La opuesta de -i, reemplazar cualquier archivo existente sin pedir confirmacin alguna.
-v Muestra en un formato fcil de interpretar -t Modo verboso , reporta todas las acciones realizadas.
30 Ing. Ivan Ferreira
-
Manipulacin de archivos
Algunos ejemplos:
Copia todos los archivos del directorio /tmp/imagenes al directorio imagenes/ ubicado en el directorio corriente. Si se va a sobre-escribir un archivo se pide confirmacin:
$ cp -i /tmp/imagenes/* imagenes/
Copia todo el directorio docs ms todos los archivos del directorio /shared/mp3s al directorio miscosas ubicado en el directorio actual.
$ cp -vR docs/ /shared/mp3s/* miscosas/
Hace una copia del archivo pepe bajo el nombre pepito en el directorio actual.
$ cp pepe pepito
Determinando el tipo de un archivo
file: determina el tipo de archivoEl comando file prueba cada argumento e intenta clasificar el tipo de archivo.
En Linux todo est representado por medio de archivos, inclusive ciertos dispositivos del sistema, como discos, unidades de cinta y puertos de entrada y salida.
Existen dos tipos de archivos:
Archivos convencionales: son aquellos que contienen informacin y que generalmente sirven a los programas de aplicacin.
Archivos especiales: son aquellos que proveen un interfaz uniforme entre los programas y la E/S al hardware del ordenador
Los archivos pueden clasificarse en:
Archivo regular ( - ): Archivos comunes del sistema operativo, tipo ASCII o binario.
Directorios ( d ): Archivos contenedores de otros archivos.
Enlaces ( l ): Archivos que referencian a otros archivos.
Tuberas ( p ): Archivos que permiten el intercambio de informacin entre procesos.
31 Ing. Ivan Ferreira
-
Manipulacin de archivos
Archivos especial de bloques ( b ): Archivos que permiten el acceso a dispositivos que manejan la E/S de la informacin por bloques y de forma aleatoria, como los discos duros.
Archivos especial de caracter ( c ): Archivos que permiten el acceso a dispositivos que manejan la E/S de la informacin en forma secuencial y por caracter, como las terminales, teclado y mouse.
Archivos socket ( s ): Archivos relacionados a una conexin de red.
Visualizar archivos de texto
cat: mostrar el contenido de uno o ms archivos en la pantalla No hay mucho ms que decir, este comando simplemente hace eso: mostrar el contenido de uno o ms archivos en la salida estndar, normalmente la terminal. Utilizando redireccin de la salida estndar, puede concatenar uno o ms archivos usando cat. Por ejemplo:
$ cat archivo1 archivo2 > archivo3
less: un paginador Su nombre es un juego de palabras relacionado al primer paginador existente bajo Unix, que se denomina more. Un paginador es un programa que permite al usuario ver archivos largos pgina por pgina (o, ms precisamente, pantalla por pantalla).
Hablamos primero de less que de more porque su uso es mucho ms intuitivo. Utilice el comando less para ver archivos grandes, que no entran en una pantalla.
Por ejemplo:
$ less /etc/termcap
Para acceder a la pantalla siguiente, pulse [barra espaciadora]; para volver a la pantalla anterior, pulse [b]; para salir, presione [q]. Tambin puede usar las flechas de direccin para navegar con less.
Para buscar palabras dentro de un archivo de texto usando less, presione [/] y luego escriba la palabra que quiere buscar. Por ejemplo:
/Linux
De esta forma buscar las coincidencias dentro del texto de la palabra Linux. Para avanzar a la siguiente coincidencia, presione la tecla [n], para ir a la coincidencia
32 Ing. Ivan Ferreira
-
Manipulacin de archivos
anterior presione la tecla [N].
De hecho, simplemente presione [h] para la ayuda (en ingls) y eche un vistazo. Pero de todas formas, el objetivo de esta seccin es que Ud. sea capaz de leer archivos largos, y dicho objetivo ya est cumplido.
more: paginador de archivosEl comando more permite la visualizacin de un archivo por pginas, as como el comando less, excepto que las teclas de control son diferentes. La [barra espaciadora] es utilizada para avanzar una pgina del archivo, la tecla [Enter] para avanzar por lnea y la tecla [b] para retroceder una pgina. Para salir, utilice la tecla [q]. Puede buscar texto de la misma forma que en less, usando la tecla [/].
33 Ing. Ivan Ferreira
-
3Usuarios y grupos
-
Usuarios y grupos
Acerca de esta unidad
En esta unidad se cubren los siguientes tpicos:
Usuario y grupos, concepto
Modelo de seguridad de Linux
El usuario root y otros usuarios del sistema
Comandos para obtener informacin de usuarios
Cambiando la identidad del usuario
35 Ing. Ivan Ferreira
-
Usuarios y grupos
Usuarios y grupos
Usuario y grupos, concepto
El Linux es un sistema operativo multiusuario. Cada usuario debe tener un login para iniciar sesin en el sistema y pertenece a uno o ms grupos. Los grupos permiten organizar usuarios de funciones o caractersticas similares de tal modo que stos puedan compartir archivos, hacer ms fcil la administracin de la seguridad y configuracin restricciones del sistema.
Cada usuario y grupo tiene un identificador numrico que es utilizado por el sistema para diferenciar a los usuarios, conocidos como UID y GID. El sistema no reconoce diferencia entre los usuarios segn el nombre del usuario, por lo tanto, si dos usuarios con nombres distintos tienen el mismo ID, el sistema Linux no podr diferenciar quin es quin.
El usuario root y otros usuarios del sistema
Existen tres categoras de cuentas de usuarios, usuario administrativo (root), usuarios regulares y usuarios de servicio.
El usuario root tiene el control total del sistema y puede sobrepasar cualquier restriccin de seguridad.
Los usuarios regulares tienen privilegios necesarios para realizar las tareas normales en Linux, como guardar archivos en su directorio personal, usar procesadores de texto, navegadores, etc. No pueden realizar la configuracin del equipo o instalacin de software a menos que el usuario root explcitamente lo permita.
Como los usuarios regulares no tienen privilegios administrativos, no pueden accidentalmente o intencionalmente manipular archivos de configuracin, borrarlos o infectarlos con algn virus o programa trojano.
Existen servicios como samba, apache, mail, proxy, impresin, etc, que tienen su propia cuenta de usuario de servicio. Estas cuentas existen para permitir a estos programas interactuar con el computador y no necesitan de una contrasea vlida.
Modelo de seguridad de Linux
Linux utiliza un grupo privado de usuarios (UPG, del ingls "User Private Group"), que permite que el manejo de grupos UNIX sea mucho ms fcil. El esquema UPG no aade o cambia nada al modo tradicional UNIX de manejar grupos. Simplemente
36 Ing. Ivan Ferreira
-
Usuarios y grupos
ofrece una nueva convencin para ello. Cada vez que se crea un nuevo usuario, por defecto, se le asigna un nico grupo.
Anteriormente, los usuarios eran, por defecto, agregados a un grupo comn. Esto permite que cualquier persona dentro del mismo grupo, a menos que se haya configurado de lo contrario, pueda acceder al directorio personal de otro usuario y en ocasiones modificar o borrar archivos en l.
En el modelo UPG, ningn usuario puede acceder al directorio personal de otro, y si se desea que estos usuarios compartan archivos entre s, se los agrupa en un grupo secundario comn y a este grupo se permite el acceso a un directorio especfico.
Comandos para obtener informacin de usuarios
Puede utilizar el comando who para averiguar quienes estn utilizando el sistema actualmente. La sintaxis del comando es:
who [opciones]... [ archivo | arg1 arg2 ]
El comando who tiene algunas opciones interesante:
-b Indica cundo se inici por ltima vez el sistema.-r Indica el nivel de ejecucin actual. -H Muestra una cabecera para los campos.
Tambin puede utilizar el comando whoami para averiguar con qu usuario ha iniciado sesin.
El comando uptime le proporciona informacin de cuntos usuarios estn actualmente en el sistema, as como el tiempo que el equipo ha estado funcionando y la carga de trabajo hace 1, 5 y 15 minutos. Una carga normal de trabajo depende del equipo, cantidad de procesadores, memoria, etc.
El comando id le permite obtener informacin del nombre de usuario, su UID, los grupos a los que pertenece y el GID de cada uno de ellos. La sintaxis del comando es:
id [opcion]... [nombre_usuario]
Para mas informacin acerca del comando id consulte la pgina man del comando.
Cambiando la identidad del usuario
su: Usuario sustituto.
37 Ing. Ivan Ferreira
-
Usuarios y grupos
El comando su le permite ejecutar un shell con un UID o GID sustituto. La sentencia del comando es:
su [opcion]... [-] [usuario [arg]...]
Si se ejecuta sin opciones, le solicitar que ingrese la contrasea para el usuario root. Si la contrasea proporcionada es correcta, habr iniciado un shell como root y podr realizar tareas administrativas.
La alternativa -, como en su -, indica que las variables de entorno del usuario a nombre de quien estamos solicitando un shell, sean inicializadas.
Si se especifica un usuario especfico, le solicitar la contrasea para ese usuario, a menos que sea usted el usuario root, a quin no se le solicita ninguna contrasea.
La opcin ms interesante es la opcin -c, que ejecuta el comando dado como argumento y finaliza. Por ejemplo, para visualizar el archivo shadow como root ejecute:
$ su -c cat /etc/shadow
La contrasea del usuario root deber ser proporcionada.
38 Ing. Ivan Ferreira
-
4Permisos de acceso a archivos y directorios
-
Permisos de acceso a archivos y directorios
Acerca de esta unidad
En esta unidad se cubren los siguientes tpicos:
Seguridad de archivos en Linux
Examinando los permisos de archivos y directorios
Tipos de permisos de archivos
Categora de usuarios
Permisos por defecto de los archivos
Cambiando permisos de archivos
Permisos especiales
40 Ing. Ivan Ferreira
-
Permisos de acceso a archivos y directorios
Permisos de acceso a archivos y directorios
Seguridad de archivos en Linux
Como dueo del archivo, un usuario puede configurar permisos sobre sus archivos. Estos permisos distinguen tres categoras de usuarios: el dueo del archivo, todos los usuarios que son miembros del grupo asociado al archivo (denominado tambin grupo dueo) pero no son el usuario dueo, y los otros, que son todos los usuarios que no son ni el dueo ni miembros del grupo dueo.
Tipos de permisos de archivos
Hay tres permisos diferentes:
1. Permiso de lectura (r por Read, Leer): para un archivo, esto permite que se lea su contenido. Para un directorio, esto permite que se muestren los archivos que contiene (es decir, los archivos en este directorio).
2. Permiso de escritura (w por Write, Escribir): para un archivo, esto permite que se modifique su contenido. Para un directorio, esto permite que un usuario agregue y/o quite archivos de este directorio, incluso si no es el dueo de esos archivos.
3. Permiso de ejecucin (x por eXecute, Ejecutar): para un archivo, esto permite su ejecucin (en consecuencia, normalmente slo los archivos ejecutables tienen activo este permiso). Para un directorio, esto permite que un usuario lo recorra (lo que significa poder ingresar a, o pasar por, ese directorio). Note que esto est separado del acceso de lectura: bien puede ser que Ud. pueda recorrer un directorio, pero no leer su contenido! Todas las combinaciones de estos permisos son posibles.
Examinando los permisos de archivos y directorios
Los comandos ls -l y ls -ld nos permiten examinar los permisos de archivos y directorios.
Los diferentes campos de salida del comando ls -l son los siguientes (de izquierda a derecha):
El primer caracter es el tipo del archivo: contiene un guin (-) si es un archivo regular, una (d) si es un directorio, una (l) si es un enlace, una (c) si es un archivo de caracter, una (b) si es un archivo de bloques, una (p) si es una tubera o una (s) si es un archivo socket.
41 Ing. Ivan Ferreira
-
Permisos de acceso a archivos y directorios
Los nueve caracteres que siguen representan los permisos asociados con ese archivo. Aqu puede ver la distincin que se hace entre los diferentes usuarios para el mismo archivo:
Los primeros tres caracteres representan los derechos asociados con el dueo del archivo, los siguientes tres se aplican a todos los usuarios que pertenecen al grupo pero que no son el dueo, y los ltimos tres se aplican a los otros. Un guin (-) significa que el permiso no est activo.
Luego viene el nmero de vnculos del archivo. Posteriormente veremos que los archivos no slo se identifican por su nombre sino tambin por un nmero (el nmero de i-nodo), y por lo tanto es posible que un archivo en disco tenga varios nombres.
Para un directorio, el nmero de vnculos tiene un significado especial, que tambin veremos en administracin.
Luego viene el nombre del dueo del archivo y el nombre del grupo dueo.
Finalmente, se muestra el tamao del archivo (en bytes) y la fecha de su ltima modificacin, seguido por ltimo por el nombre del archivo o directorio propiamente dicho.
Cambiando permisos de archivos
chmod: Cambiar permisos (modos) de archivos.El comando chmod (CHange MODe, Cambiar el modo) tiene una sintaxis bien particular. La sintaxis general es:
chmod [opciones] [archivo|dir. ...]
pero lo que lo distingue son las diferentes formas que puede tomar el cambio de modo. Este se puede especificar de dos maneras:
En octal: entonces los derechos del usuario dueo se corresponden con nmeros de la forma 00, donde corresponde al permiso asignado:
4 para permiso de lectura
2 para permiso de escritura
1 para permiso de ejecucin;
42 Ing. Ivan Ferreira
-
Permisos de acceso a archivos y directorios
Similarmente, los derechos del grupo propietario toman la forma 0 y los permisos para los otros la forma . Por lo tanto, todo lo que Ud. necesita hacer es sumar los permisos asignados para obtener el modo correcto.
Por lo tanto, los permisos rwxr-xr-- corresponden a 400+200+100 (permisos del dueo, rwx) +40+10 (permisos del grupo propietario, r-x) +4 (permisos de los otros, r--) = 754; de esta forma, los permisos se expresan en trminos absolutos. Esto significa que los permisos previos se reemplazan incondicionalmente.
Puede utilizar una tabla como la inferior para asignar permisos, luego con prctica, mentalmente podr asignar estos permisos.
u g oR (4) 4 4 -W (2) 2 - -X (1) 1 1 -
7 5 0
El resultado de los permisos en octal calculado en el cuadro es 750, indicando todos los permisos para el usuario propietario, lectura y ejecucin para el grupo propietario y ningn permisos para los dems usuarios.
Con expresiones: aqu los permisos se expresan con una secuencia de expresiones separadas por comas. Por lo tanto una expresin toma la forma:
[categora]+|-|=
La categora puede ser una o ms de:
u (User. Usuario, permisos para el dueo)
g (Group. Grupo, permisos para el grupo propietario)
o (Others. Otros, permisos para los otros ).
Si no se especifica categora alguna, los cambios se aplicarn para todas las categoras. Un signo + otorga un permiso, un - lo niega. Finalmente, el permiso es uno o ms de:
r (Read, lectura)
w (Write, escritura)
43 Ing. Ivan Ferreira
-
Permisos de acceso a archivos y directorios
x (eXecute, ejecucin).
Las opciones principales son:
-R Cambiar los permisos recursivamente.-v Modo verboso , muestra las acciones efectuadas para cada archivo.
Ejemplos:
Quitar recursivamente el permiso de escritura para los otros sobre todos los archivos y subdirectorios del directorio /shared/docs/.
$ chmod -R o-w /shared/docs
Quitar recursivamente el permiso de escritura para el grupo y para los otros sobre todo el directorio privado/, y quitar el permiso de ejecucin para los otros.
$ chmod -R og-w,o-x privado/
Asignar permiso de lectura y ejecucin para todos:
$ chmod +rwx miarchivo.bash
Permisos especiales
Existen permisos especiales para archivos y directorios
T: Sticky (pegajoso) ((t) minscula si el permiso (x) adems est asignado para otros).
S: SGID (Set Group ID). ((s) minscula en el grupo si el permiso (x) adems est asignado).
S: SUID (Set User ID). ((s) minscula en el usuario si el permiso (x) adems est asignado)
El permiso Sticky en archivos no tiene funcin en Linux. El permiso Sticky en directorio provoca que los archivos contenidos dentro de ese directorio puedan ser borrados nicamente por el usuario propietario y por el usuario root.
El permiso SUID en directorios no tiene funcin en Linux. El permiso SUID en archivos permite que si el archivo es ejecutable, en lugar de correr con los permisos del usuario que ejecut el archivo, se ejecutar con los permisos del usuario propietario del archivo.
44 Ing. Ivan Ferreira
-
Permisos de acceso a archivos y directorios
El permiso SGID en archivos permite que si el archivo es ejecutable, en lugar de correr con los permisos del grupo al que pertenece el usuario que ejecut el archivo, se ejecutar con los permisos del grupo propietario del archivo.
El permiso SGID en directorios obliga a que los archivos que se crean por debajo del directorio, hereden el grupo propietario del directorio contenedor.
El SGID en directorios es parte del modelo de seguridad User Private Group.
Para asiginar los permisos especiales en forma octal debe utilizar:
Sticky: 1000
SGID: 2000
SUID: 4000
Para asignar con expresiones:
Sticky: +t
SUID: u+s
SGID: g+s
Ejemplos:
Establecer sticky, lectura, escritura y ejecucin para todos:
$ chmod 1777 archivo.bash
Establecer sticky:
$ chmod +t hola
Establecer SGID, lectura, escritura y ejecucin para el propietario, lectura y ejecucin para todos:
$ chmod 2755 directorio
Establecer SGID:
$ chmod g+s directorio
Establecer SUID:
45 Ing. Ivan Ferreira
-
Permisos de acceso a archivos y directorios
$ chmod u+s archivo.bash
Permisos por defecto de los archivos
Cuando se crea un archivo o directorio, ste se crea con ciertos permisos por defecto. Los permisos por defecto estn dados por la configuracin del umask.
El comando umask permite definir qu permisos tendrn por defecto los archivos y directorios son creados.
El comando umask sin parmetros nos devuelve dicho valor :
$ umask022
Los permisos se calculan en base al umask de la siguiente manera:
Para nuevos archivos ejecutables (Programas compilados):
777 Permisos predeterminados- 022 Se resta el valor de umask
-----755 Permisos permitidos
Esto significa que los permisos con los que el archivo ser creado sern 755 (rwxr-x-r-x).
Para nuevos archivos de texto o archivos regulares no ejecutables:
666 Permisos predeterminados- 022 Se resta el valor de umask
-----644 Permisos permitidos
En el caso anterior, 666-022 = 644 , es decir , cualquier fichero que creemos con un editor con otros comandos sern creados con permisos 644 (rw-r--r--) .
Para cambiar la mscara , usamos el comando umask con la nueva mscara que le deseamos dar :
$ umask 077
En cuyo caso , todos los ficheros a partir del se momento , y hasta que finalice la sesin, sern creados con sin permisos para el grupo y los otros.
46 Ing. Ivan Ferreira
-
Permisos de acceso a archivos y directorios
47 Ing. Ivan Ferreira
-
5El sistema de archivos
-
El sistema de archivos
Acerca de esta unidad
En esta unidad se cubren los siguientes tpicos:
Sistemas de archivos ext2/ext3
Vnculos o enlaces simblicos (blandos) y duros
Montando almacenamiento removible
Buscando y procesando archivos
Utilidades para comprimir y archivar
49 Ing. Ivan Ferreira
-
El sistema de archivos
El sistema de archivos
Sistemas de archivos ext2/ext3
Sistema de archivos Ext2: El Segundo Sistema de Archivos Extendido (Second Extended Filesystem) (su forma abreviada es Ext2FS o simplemente ext2) ha sido el sistema de archivos predeterminado de GNU/Linux por muchos aos. El mismo reemplaz al Sistema de archivos extendido (Extended File System). De all, el trmino segundo.
El sistema de archivos nuevo corrigi ciertos problemas y limitaciones. Ext2FS respeta las normativas usuales para los sistemas de archivos de tipo Unix. El mismo fue diseado para evolucionar desde su concepcin, a la vez de ofrecer una gran robustez y buen rendimiento.
Sistema de archivos Ext3: Como su nombre lo sugiere, el Tercer Sistema de Archivos Extendido (Third Extended File System es el sucesor de Ext2FS. El mismo es compatible con este ltimo pero est mejorado por una caracterstica muy interesante: journaling.
Una de las mayores fallas de los sistemas de archivos tradicionales como Ext2FS es su baja tolerancia a cadas del sistema abruptas (fallas de energa o programas que se cuelgan). En general, dichos eventos implican un examen prolongado de la estructura del sistema de archivos e intentos para corregir errores, resultando algunas veces en una corrupcin aun mayor del sistema de archivos.
En consecuencia puede producirse una prdida total o parcial de los datos grabados. El journaling responde a este problema. Para simplificar, digamos que la idea es grabar las acciones (tales como el guardar un archivo) antes de llevarlas a cabo efectivamente. Podemos comparar su funcionamiento al de un capitn de un bote que anota en su cuaderno de bitcora los eventos diarios.
El resultado, un sistema de archivos coherente siempre. Y si ocurren problemas, la verificacin es muy rpida y las reparaciones eventuales, muy limitadas. Por lo tanto, Ext3FS ofrece la tecnologa de sistemas de archivos con journal, a la vez que mantiene la estructura de Ext2FS asegurando una compatibilidad excelente.
Enlaces o vnculos simblicos (blandos) y duros
Los i-nodos son, junto con el paradigma todo es un archivo, la parte fundamental de cualquier sistema de archivos Unix. La palabra i-nodo es una abreviacin de Information NODE (NODO de Informacin). Los i-nodos se almacenan en el disco en una tabla de i-nodos. Existen para todos los tipos de archivos que se pueden
50 Ing. Ivan Ferreira
-
El sistema de archivos
almacenar en un sistema de archivos, y esto incluye a los directorios, las tuberas nombradas, los archivos de modo caracter, y as sucesivamente. Los i-inodos tambin son la forma en la que Unix identifica de forma unvoca a un archivo.
En Unix, Ud. no identifica a un archivo por su nombre, sino por un nmero de i-nodo. La razn para esto es que un mismo archivo puede tener varios nombres, o no tener ninguno.
Los enlaces o vnculos
La mejor forma de comprender qu hay detrs de esta nocin de vnculo es por medio de un ejemplo. Creemos un archivo (regular):
$ touch archivo1
$ ls -il archivo132555 -rw-rw-r-- 1 jperez jperez 0 sep 10 08:12 archivo1
La opcin -i del comando ls imprime el nmero de i-nodo, que es el primer campo de la salida. Como puede ver, antes de crear el archivo a, no haba archivo alguno en el directorio.
El otro campo de inters es el tercero, que es el contador de vnculos del archivo (bueno, de hecho, del i-nodo). De hecho, el comando touch archivo1 puede separarse en dos acciones distintas:
1. Creacin de un i-nodo, al cual el sistema le atribuye el nmero 32555, y cuyo tipo es el de un archivo regular,
2. Creacin de un vnculo a este i-nodo.
Por lo tanto, el archivo archivo1 es un vnculo al i-nodo numerado 32555, y por el momento es slo uno: el contador de vnculos muestra un 1.
Pero ahora, si ingresamos:
$ ln archivo1 archivo2
$ ls -il archivo? 32555 -rw-rw-r-- 2 jperez jperez 0 sep 10 08:12 archivo1 32555 -rw-rw-r-- 2 jperez jperez 0 sep 10 08:12 archivo2
Habremos creado otro vnculo al mismo i-nodo. Como puede ver, no hemos creado archivo alguno denominado archivo2, sino que slo hemos agregado otro vnculo al i-nodo numerado 32555 en el mismo directorio y lo denominamos archivo2. Puede ver en la salida de ls -l que el contador de vnculos para el i-nodo ahora es 2, y ya no es
51 Ing. Ivan Ferreira
-
El sistema de archivos
1.
Ahora, si hacemos:
$ rm archivo1$ ls -il archivo232555 -rw-rw-r-- 1 jperez jperez 0 sep 10 08:12 archivo2
Vemos que incluso cuando hemos borrado el archivo original, el i-nodo todava existe. Pero ahora el nico vnculo a l es el archivo denominado archivo2.
Por lo tanto, bajo Unix un archivo tiene uno o ms vnculos en uno o ms directorios, los cuales pueden ser considerados el nombre del archivo. Tambin los directorios se almacenan en i-nodos, pero su contador de vnculos, contrariamente a todos los otros tipos de archivos, es el nmero de subdirectorios que contiene. Existen al menos dos vnculos por directorio: el directorio en s mismo (.) y su directorio padre (..).
Ejemplos tpicos de archivos que no estn vinculados (es decir, no tienen un nombre) son las conexiones de red: nunca ver el archivo correspondiente a su conexin con un sitio web en su rbol de archivos, sin importar que directorio intente. Similarmente, cuando usa una tubera en el shell, el archivo que corresponde a la misma existe, pero no est vinculado.
Los vnculos simblicos y la limitacin de los vnculos duros
Los vnculos simblicos son archivos de un tipo particular que slo contienen una cadena de caracteres arbitraria, que puede, o no, apuntar a un nombre de archivo existente. Cuando se menciona un vnculo simblico en la lnea de comandos o en un programa, de hecho se accede al archivo al que apunta, si es que existe. Por ejemplo:
$ echo Hola > miarchivo $ ln -s miarchivo mivinculo $ ls -il total 4 169 -rw-rw-r-- 1 reina reina 6 sep 10 21:30 miarchivo 416 lrwxrwxrwx 1 reina reina 6 sep 10 21:30 mivinculo -> miarchivo $ cat miarchivo Hola $ cat mivinculo Hola
Puede ver que el tipo de archivo para mivinculo es 'l', por Link (Vnculo). Los derechos de acceso para un vnculo simblico son insignificantes: siempre sern rwxrwxrwx. Tambin puede ver que este es un archivo diferente de miarchivo, ya que su nmero de i-nodo es diferente. Pero se refiere al archivo miarchivo de manera simblica, por lo tanto cuando ingresa cat mivinculo, en realidad estar imprimiendo el contenido del archivo miarchivo.
Para demostrar que un vnculo simblico contiene una cadena de caracteres
52 Ing. Ivan Ferreira
-
El sistema de archivos
arbitraria, podemos hacer lo siguiente:
$ ln -s "No soy un archivo existente" otrovinculo $ ls -il otrovinculo 418 lrwxrwxrwx 1 reina reina 20 sep 10 21:43 otrovinculo -> No soy un archivo existente $ cat otrovinculo cat: otrovinculo: No existe el fichero o el directorio
Pero los vnculos simblicos existen porque superan varias de las limitaciones de los vnculos normales ( duros ):
No se puede crear un vnculo a un i-nodo en un directorio que est en un sistema de archivos diferente a dicho i-nodo.
No se pueden vincular dos directorios, debido a que el contador de vnculos para un directorio tiene un uso especial como hemos visto. Pero Ud. puede hacer que un vnculo simblico apunte a un directorio y usarlo como si realmente fuera un directorio. Por lo tanto los vnculos simblicos son muy tiles en muchas circunstancias, y muy a menudo, la gente tiende a usarlos para vincular archivos entre s, incluso cuando podra haberse usado un vnculo normal. No obstante, una ventaja de los vnculos normales es que Ud. no pierde el archivo si borra el original.
Los permisos de un vnculo no pueden ser modificados, siempre ser 777.
Finalmente, si ha observado atentamente, sabr que el tamao de un vnculo simblico es simplemente el tamao de la cadena de caracteres.
Para borrar un vnculo se utiliza el comando rm, como con cualquier otro archivo.
Buscando y procesando archivos
find: busca archivos basado en criterios.find es un utilitario de Unix muy antiguo. Su rol es buscar recursivamente uno o ms directorios y encontrar archivos que se correspondan con un cierto conjunto de criterios en esos directorios. Aunque es muy til, su sintaxis es verdaderamente compleja, y usarlo requiere cierta prctica. La sintaxis general es:
find [opciones] [directorios] [criterios] [accion]
Si no especifica directorio alguno, find buscar en el directorio corriente. Si no especifica el criterio, esto es equivalente a verdadero, por lo que se encontrarn todos los archivos.
Las opciones, criterios y acciones son tan numerosas que solo mencionaremos
53 Ing. Ivan Ferreira
-
El sistema de archivos
algunas de cada una. Comencemos por las opciones:
-xdev No extender la bsqueda a los directorios ubicados en otros sistemas de archivos.
-follow Seguir los vnculos simblicos si apuntan a directorios. Por defecto no los sigue.
Algunos criterios que pueden ser utilizados para la bsqueda son:
-type Busca los archivos de un tipo dado; puede ser uno de: f (archivo regular), d (directorio), l (vnculo simblico), s (socket), b (archivo en modo de bloques), c (archivo en modo caracter) p (tubera nombrada).
-name Encontrar los archivos cuyo nombre se corresponde con el dado. Con esta opcin, se trata a como un patrn de englobamiento del shell.
-iname Como -name, pero sin distinguir maysculas/minsculas.-mtime Encontrar los archivos a los que se han modificado hace das.
Tambin puede especificar + o -, en cuyo caso la bsqueda se har para los archivos modificados antes de n das o de das hasta ahora respectivamente.
-newer Encontrar los archivos que han sido modificados ms recientemente que el archivo .
Existen muchas otras pruebas, debe referirse a la pgina man para ms detalles.
Para combinar las pruebas, Ud. puede utilizar uno de:
-a : Verdadero si tanto como son verdaderas; -a est implcito, por lo tanto puede ingresar ... si quiere que todas las pruebas , , ... sean verdaderas.
-o : Verdadero si o o ambos son verdaderos. Note que -o tiene una precedencia menor que -a, por lo tanto si desea, por ejemplo, los archivos que verifican los criterios o y verifican el criterio , tendr que usar parntesis y escribir ( -o ) -a . Debe escapar (desactivar) los parntesis, ya que si no lo hace el shell los interpretar!
-not : Invertir la prueba , por lo tanto -not es verdadero si es falso.
54 Ing. Ivan Ferreira
-
El sistema de archivos
Finalmente, puede especificar una accin para cada archivo encontrado. Las acciones ms usadas frecuentemente son:
-print Simplemente imprime el nombre de cada archivo en la salida estndar. Esta es la accin predeterminada si Ud. no especifica accin alguna.
-ls Muestra en la salida estndar el equivalente de ls -ilds para cada archivo que encuentra.
-exec Ejecutar el comando sobre cada archivo encontrado. La lnea de comandos debe terminar con un ;, que deber desactivar para que el shell no lo interprete; la posicin del archivo se representa con {}.
-ok Igual que -exec pero pedir confirmacin para cada comando.
Ejemplos:
Digamos que quiere encontrar todos los directorios en /usr/share. Entonces ingresar:
$ find /usr/share -type d
Suponga que tiene un servidor HTTP, todos sus archivos HTML estn en /var/www/html, que coincide con su directorio corriente. Ud. desea encontrar todos los archivos que no se modificaron en el ltimo mes. Debido a que tiene pginas de varios autores, algunos archivos tienen la extensin html y otros la extensin htm. Desea mover estos archivos en el directorio /var/www/obsolete . Entonces ingresar:
$ find \( -name "*.htm" -o -name "*.html" \) -a -mtime -30 -exec mv {} \ /var/www/obsolete \;
Est bien, este es uno un poco complejo y requiere una pequea explicacin. El criterio es este: \( -name "*.htm" -o -name "*.html" \) -a -mtime -30 que hace lo que queremos: Encuentra todos los archivos cuyos nombres terminan con .htm o con .html \( -name "*.htm" -o -name "*.html" \) , y (-a) que no han sido modificados en los ltimos 30 das, lo que es ms o menos un mes (-mtime -30).
Note los parntesis, aqu son necesarios, porque -a tiene una precedencia mayor. Note tambin que los parntesis estn desactivados para el shell.
Y finalmente, est el comando a ejecutar para cada uno de los archivos: -exec mv {} /var/www/obsolete \; Aqu tambin, tiene que desactivar el ; para el shell, ya que de no ser as el shell lo interpretara como un separador de comandos. Si no lo hace, find se quejar que le falta un argumento a -exec.
55 Ing. Ivan Ferreira
-
El sistema de archivos
bzip2 y gzip: comandos de compresin de datos
Al principio, bzip2 haba sido escrito como un reemplazo de gzip. Sus relaciones de compresin generalmente son mejores, pero por otra parte, toma ms memoria. La razn por la cual todava est aqu gzip es que todava es ms usado que bzip2.
Ambos comandos tienen una sintaxis similar:
gzip [opciones] [archivo(s)] gunzip [opciones] [archivo(s)]
bzip2 [opciones] [archivo(s)] bunzip2 [opciones] [archivo(s)]
Si no se especifica un nombre de archivo, tanto gzip como bzip2 esperarn datos de la entrada estndar y enviarn los resultados a la salid