Você está na página 1de 77

Módulo 10: Administración de Linux

Índice

Descripción general ................................................................................................................................2


10.1 Administración de la Interfaz del Usuario .............................................................................3
10.1.1 Procedimientos de inicio de sesión ..............................................................................3
10.1.2 Interfaz GUI ........................................................................................................................3
10.1.3 Interfaz CLI .........................................................................................................................6
10.1.4 Los shells de Linux ........................................................................................................14
10.1.5 Editor VI ............................................................................................................................16
10.1.6 awk ....................................................................................................................................18
10.2 Cuentas de Usuario y Cuentas de Grupo ............................................................................21
10.2.1 Cuentas de usuario y grupo en un entorno Linux ....................................................21
10.2.2 Agregado y Eliminación de Cuentas de Usuario ......................................................24
10.2.3 Administración de cuentas de usuario .......................................................................27
10.2.4 Creación de grupos y agregado de usuarios a grupos ...........................................29
10.3 Sistema de Archivos y Administración de Servicios ........................................................32
10.3.1 Crear y compartir directorios .......................................................................................32
10.3.2 Uso de find y Grez.................................................................................................................32
10.3.2 Contraseñas y permisos................................................................................................34
10.3.4 Archivos de configuración del sistema de archivos ................................................37
10.3.5 Administración de niveles de ejecución.....................................................................45
10.3.6 Documentación de la configuración de un sistema Linux ......................................53
10.4 Daemons....................................................................................................................................57
10.4.1 Introducción a los daemons Linux ..............................................................................57
10.4.2 Inicio, detención y reinicio de daemons.....................................................................58
10.4.3 http ....................................................................................................................................61
10.4.4 FTP ....................................................................................................................................63
10.4.5 Telnet ................................................................................................................................64
10.4.6 Protocolo Bloque de Mensaje de Servidor (SMB).....................................................66
10.4.7 NFS (Sistema de Archivos de Red)..............................................................................68
10.4.8 Cliente de Correo ............................................................................................................69
10.4.9 Impresión en un entorno Linux ....................................................................................70
10.4.10 Scripts...............................................................................................................................75
Resumen .................................................................................................................................................77

1
Módulo 10: Administración de Linux

Descripción general

Este capítulo detalla el sistema operativo Linux. Linux tiene como objetivo principal ser un Sistema
Operativo de Red (NOS) basado en servidor. La instalación incluye unos pocos pasos adicionales
que no se encuentran en Windows 2000. Una vez verificado que el sistema es compatible, Linux
guía al administrador al paso final de iniciar sesión. Administrar cuentas de usuario y el sistema de
archivos también se tratan en este capítulo para proporcionar al administrador la información
necesaria para compartir carpetas, archivos, y asignar permisos. El alumno también aprenderá
sobre los daemons Linux que se configuran para servir contenido web, proporcionar servicio de e-
mail, etcétera.

2
Módulo 10: Administración de Linux

10.1 Administración de la Interfaz del Usuario

10.1.1 Procedimientos de inicio de sesión

Los usuarios pueden iniciar sesión en un sistema operativo Linux usando la Interfaz de Línea de
Comandos (CLI), que es similar a la interfaz de Windows 2000. Un ejemplo de la pantalla de inicio
de sesión en modo texto para Linux Red Hat se muestra en la Figura . La consola de Linux se
denomina CLI y se tratará en más detalle posteriormente en este capítulo. En lugar de mostrar
recuadros de texto y botones como la GUI de Windows 2000, la CLI de Linux proporciona al
usuario sucesivos prompts de texto para introducir un nombre de usuario y una contraseña. No se
requiere ninguna información adicional sobre el dominio. A diferencia de Windows 2000, las
contraseñas de Linux se enmascaran completamente al ser tipeadas, haciendo importante prestar
mucha atención al introducirlas. Los usuarios deberían también ser cuidadosos de no introducir
información de cuenta inválida continuamente. Esto se debe al hecho de que algunos
administradores de sistemas implementan funciones de seguridad para bloquear o reiniciar el
sistema después de una cantidad de intentos fallidos. Una vez que la información de la cuenta se
ha entregado exitosamente, el usuario iniciará sesión en el sistema, será llevado a su directorio
home, y se le otorgará un prompt de comandos.

Cuando el sistema está configurado para arrancar en la Interfaz Gráfica del Usuario (GUI), será
necesario introducir un nombre de usuario y una contraseña para autenticar al usuario en la red.

10.1.2 Interfaz GUI

Las diferencias entre una Interfaz de Línea de Comandos (CLI) y una Interfaz Gráfica del Usuario
(GUI) se trataron anteriormente. Recuerde que Linux usa una CLI con comandos basados en texto

3
Módulo 10: Administración de Linux

introducidos en un prompt de comandos. Aunque este formato tiene sus ventajas, también hay
ventajas en la GUI usada por Windows. En 1984, un equipo de expertos en software del Instituto
Tecnológico de Massachsetts (MIT) crearon una interfaz gráfica llamada "X Window" que permite a
Linux operar similarmente a las otras GUIs.

Debido al potente diseño del sistema operativo Linux, el aspecto de X Window puede
personalizarse fácilmente y programarse en una cantidad infinita de formas. En el OS Windows
2000, los principales elementos de la interfaz del usuario para íconos, menúes, la barra de tareas,
etcétera, son idénticos para todos los usuarios. Los usuarios de Linux pueden personalizar
completamente su interfaz X Window para que cumpla con sus necesidades y deseos específicos
instalando diferentes programas llamados "Administradores de Ventanas" y "Entornos de
Escritorio". Tratar todos estos diferentes paquetes de software está más allá del alcance de este
curso, en cambio nos concentraremos en las similitudes subyacentes halladas en todos los
sistemas X Window.

Similitudes con Windows 2000


Una interfaz X Window típica tendrá un aspecto bastante familiar a la de un usuario de Windows
2000. Se usa un mouse como dispositivo puntero. También hay una barra de tareas, íconos que
representan datos, y ventanas que muestran información al usuario. Un ejemplo de la GUI X
Window se muestra en la Figura . Aunque los tamaños, formas y colores de estos elementos
pueden variar, los principios básicos son muy similares a la GUI de Windows 2000. Este diseño
familiar tiene como objetivo ayudar a los usuarios a volverse rápidamente productivos con el
sistema X Window y es por lo común el enfoque estándar. Pero nuevamente, la flexibilidad de
Linux también permite a los programadores la creación de nuevas e innovadoras interfaces X
Window que podrían diferir radicalmente de cualquier cosa vista antes.

Aprendiendo los Conceptos Básicos


Los usuarios primerizos de X Window deberán sentirse cómodos con los diversos elementos del
sistema. Determine si los íconos se lanzan con un solo clic o con doble clic. Haga clic en la barra
de tareas para investigar las diversas herramientas que contiene. Practique cómo cambiar el
tamaño, minimizar y cerrar la ventana. Una vez que los usuarios se sienten cómodos al navegar
por la interfaz X Window, están listos para comenzar a aprender sus funciones básicas.

No importa qué colores, estilos y funcionalidad pueda tener un entorno de escritorio X Window, la
consola de línea de comandos es un elemento importante que siempre será constante. La consola
de línea de comandos permanece constante. Recuerde que Linux es una CLI, y X Window es
realmente una representación gráfica de esta CLI. Por lo tanto, tiene sentido que un usuario de X
Window probablemente quiera interactuar con una consola de comandos Linux en algún punto.
Esto puede hacerse por lo común de dos maneras: ventana terminal y consola principal.

Ventana Terminal
Una ventana terminal muestra un prompt de comandos Linux estándar en una pequeña ventana de
la pantalla. Un ejemplo de una ventana terminal de Linux se muestra en la Figura . El programa
terminal de X Window estándar se denomina xterm. Ejecutar xterm muestra una ventana terminal
de Linux para que el usuario introduzca comandos. Busque xterm o cualquier otro programa de
terminal en el menú de la barra de tareas de X Window.

Consola principal
Además de ejecutar una CLI Linux con ventanas dentro de X Window, los usuarios también pueden
pasar sus pantallas a la consola principal de pantalla completa. Recuerde que al arrancar la
computadora, Linux se carga primero seguido por X Window, el administrador de ventanas, y luego
el entorno de escritorio. Puesto que Linux en sí siempre se está ejecutando en segundo plano, es
posible pasar el sistema de X Window a la CLI de Linux usando el teclado [CTRL + ALT + (F1 -
F6)]. La consola principal y las ventanas de terminal funcionan idénticamente. Usar una en lugar de
la otra es por lo general una cuestión de preferencia personal. Es posible ejecutar dos sesiones X

4
Módulo 10: Administración de Linux

al mismo tiempo así como usar terminales virtuales. X se ejecuta en la terminal virtual 7, y como se
enunció antes, puede pasarse a cualquiera de las terminales virtuales CLI usando el comando
[CTRL + ALT + (F1 - F6)]. Una segunda sesión de X puede iniciarse en la terminal virtual 8 usando
el comando [startx - :1 vt8].

Aunque muchas tareas comunes de Linux pueden llevarse a cabo usando las aplicaciones gráficas
de X Window, hay muchas más que solamente están disponibles para los usuarios mediante el
prompt de comandos. Por esta razón es importante saber cómo llegar al prompt de comandos de
Linux desde dentro de X Window. En secciones posteriores prestaremos más atención a la CLI
Linux y sus comandos básicos.

La última habilidad básica X Window a comprender es la capacidad para salir del sistema.
Dependiendo de qué entorno de escritorio se está ejecutando actualmente, esto se hace por lo
común de manera muy similar a Windows 2000. Simplemente ubique el menú de la barra de tareas
y una de las primeras selecciones del menú será la opción Cerrar Sesión [Log Off]. Seleccionar
esta opción permitirá al usuario apagar o reiniciar Linux.

5
Módulo 10: Administración de Linux

10.1.3 Interfaz CLI

6
Módulo 10: Administración de Linux

La interfaz de línea de comandos (CLI) Linux permite al usuario interactuar con el sistema de la
misma forma que el intérprete de comandos de Windows 2000. Después de iniciar sesión en Linux,
el sistema navega hasta el directorio home del usuario y presenta el prompt de comandos. Los
usuarios ahora pueden tipear comandos, presionar la tecla Enter, y ver cualquier salida en la
pantalla. Aunque la operación de Linux sigue el mismo flujo básico que el intérprete de comandos
de Windows 2000, la sintaxis de comandos entre los dos es por lo general bastante diferente.

Como ayuda para familiarizarse mejor con el uso de Linux, los usuarios deberían intentar introducir
los comandos básicos mostrados en la Figura en el prompt. Un ejemplo de la salida del comando
whoami se muestra en la Figura . Algunos de los diferentes usos para el comando cd se
muestran en la Figura .

No se recomienda que los usuarios intenten adivinar comandos al azar, ya que una actividad tal
descuidada podría tener un serio impacto en el sistema. La mayoría de los sistemas operativos CLI
suponen que los usuarios saben lo que están haciendo y no verifican la intención de sus
comandos. Por lo tanto, los usuarios siempre deberán ser precisos y alertas al emitir comandos en
el sistema para evitar resultados no deseados.

Páginas Man
Los usuarios pueden aprender más acerca de cualquier comando mediante el uso de las páginas
man, que es abreviatura de páginas del manual. Estos archivos de ayuda muestran información
detallada acerca de cualquier comando Linux disponible para el usuario.

Las páginas man describen lo que los usuarios necesitan saber acerca de los comandos online del
sistema, llamados al sistema, formatos de archivos y mantenimiento del sistema. Las páginas man
online son parte del OS Linux y se instalan por defecto. Las páginas man asumen la forma de
pantallas basadas en caracteres simples y no son gráficas.

Para acceder a las páginas man, los usuarios necesitan estar en un prompt de comandos. Los
usuarios pueden iniciar sesión en la línea de comandos o abrir una ventana de Terminal en la
interfaz KDE e iniciar con un prompt de comandos. Las páginas man son de ayuda cuando los
usuarios desean usar un comando o utilidad y han olvidado la sintaxis o tan sólo necesitan alguna
información respecto a cómo usarlo. Las páginas man proporcionan información acerca de cómo
introducir el comando, una descripción de su propósito, y qué opciones o argumentos están
disponibles. Algunos comandos no funcionarán con los tres shells. Las páginas man indican qué
comandos funcionarán con qué shells. Se refieren al shell Bourne como (sh), al shell Korn como
(ksh), al shell C como (csh) y al Bourne Again SHell como (bash). Los alumnos aprenderán acerca
de estos shells diferentes en la siguiente sección.

El Comando man
El comando man muestra páginas man online para cualquiera de los cientos de comandos Linux
disponibles. Un listado de todos los comandos Linux con una breve descripción de lo que hacen
puede obtenerse introduciendo man intro en la línea de comandos. Incluso puede mostrarse una
página man sobre el comando man en sí tipeando man man.

El comando man puede usarse de varias formas. La forma básica es man nombre, donde nombre
es el nombre del comando para el cual el usuario desea información. Hay varias opciones útiles
que usar con el comando man para llevar a cabo búsquedas de palabras clave y mostrar secciones
específicas del Manual del Programador. Hay varias formas diferentes de usar el comando man
como muestra la Figura .

La Figura ilustra un ejemplo del uso del comando man para obtener ayuda con el comando
mkdir.

7
Módulo 10: Administración de Linux

Trabajo con las Páginas Man


Las páginas man son una forma rápida y conveniente de verificar la sintaxis de comandos Linux
desde un prompt de comandos.

Encabezados de las Páginas Man


Una cantidad de diferentes encabezados o áreas informativas aparecen en una página man típica.
Los más comunes se incluyen en la lista mostrada en la Figura .

Estos encabezados se muestran en la salida de la página man en todas letras mayúsculas.


Dependiendo del comando y de su propósito, la página man podría no contener todos los
encabezados. Por ejemplo, el comando imprimir directorio de trabajo (pwd) no tiene un
encabezado de opción o información sobre operandos porque no se pueden usar opciones ni
operandos con el comando. Todos los comandos tendrán al menos un nombre, una sinopsis y una
descripción. Un comando Linux común es cd, que permite a los usuarios cambiar de directorio. Los
resultados de la página man para el comando ls se muestran en la Figura . Note los diferentes
encabezados que se trataron anteriormente. Parte de la salida se ha omitido porque la salida de la
página man de cd es normalmente de nueve páginas de largo.

El Comando ls
Uno de los más importantes comandos que se usarán al navegar por el sistema de archivos Linux
en la Interfaz de Línea de Comandos es el comando ls. El propósito del comando ls es hacer una
lista del contenido del directorio actual. La sintaxis para el comando ls es la siguiente:

ls [opciones] [archivos]

Una vez que se ha visto la página man para el comando ls entonces se conocerán las numerosas
opciones que pueden usarse junto con este comando. Algunas de las opciones más comunes que
se usan con el comando ls se muestran en la Figura .

El comando ls puede emitirse con las [opciones] y la lista de [archivos] para mostrar el
contenido de un directorio específico. No obstante estos son opcionales y cuando se emite el
comando ls sin estas opciones entonces se presentará el contenido del directorio actual. Además,
más de un nombre de archivo puede darse para que el comando ls muestre la lista del contenido
de varios directorios. La Figura ilustra algunas de las tareas típicas de navegación llevadas a
cabo mediante el comando ls.

8
Módulo 10: Administración de Linux

9
Módulo 10: Administración de Linux

10
Módulo 10: Administración de Linux

11
Módulo 10: Administración de Linux

12
Módulo 10: Administración de Linux

13
Módulo 10: Administración de Linux

10.1.4 Los shells de Linux

Los shells de Linux operan como "intérpretes de comandos". Los shells de Linux funcionan de
manera muy similar a como el programa command.com funciona para MS-DOS. Los shells de
Linux toman la entrada que tipea el administrador y usan esa entrada para lanzar comandos y
controlar el sistema operativo. No obstante, éstas son las únicas funciones similares de los shells
de Linux y el intérprete de comandos MS-DOS. Por ejemplo, en Linux el shell solamente se carga
al sistema cuando el usuario lo solicita o si el usuario inicia sesión en el shell. En MS-DOS, el
intérprete de comandos se integra al kernel y está siempre en funcionamiento. En Linux, el shell
funciona como cualquier otro programa y no está integrado al kernel del sistema operativo. Otra
diferencia principal de los shells Linux es que el usuario puede elegir de muchos shells diferentes.
Con Linux, puede elegirse un shell que se ajusta a las preferencias o el entorno.

El Shell Bourne
Éste es conocido como el shell UNIX original. El nombre del programa es (sh) y es conocido como
shell bash en sistemas Linux. Este shell proporciona todas las funciones de (sh) así como
programación del shell usando archivos script del shell.

El Shell C
Este shell no se usa ampliamente porque es uno de los shells más complicados con los cuales
trabajar. Usa una sintaxis mucho más compleja para la programación del shell que algunos de los
otros shells. Por esta razón el shell C no se recomienda para programación del shell o para crear
programas de shell.

El Shell Korn
Éste es un shell que fue escrito por David Korn. Combina las funciones interactivas que hicieron
popular al shell C con la sintaxis de programación del shell del shell Bourne. Un ejemplo de la

14
Módulo 10: Administración de Linux

sintaxis usada para cambiar el Shell Korn y el prompt del shell Korn se muestran en la Figura . El
shell Korn (habilitado ejecutando ksh) no se incluye en la instalación por defecto de Red Hat.

Shell Born Again


Como se dijo antes, este shell fue creado como extensión mejorada del Shell Bourne. Este shell se
denomina shell bash y se usa en muchos sistemas "tipo UNIX", como Linux. La Figura
proporciona un ejemplo del prompt del shell bash.

15
Módulo 10: Administración de Linux

10.1.5 Editor VI

16
Módulo 10: Administración de Linux

La mayor parte de toda la administración de Linux se hace desde la línea de comandos usando los
diversos comandos, configuración, y archivos script para llevar a cabo estas funciones. A menudo
estos comandos, configuración y archivos script necesitan editarse y cambiarse para que funcionen
de la forma que es apta para el entorno de red. Linux incluye una potente herramienta de edición
llamada Editor vi que permite la edición de los archivos de configuración y script así como la
creación de algunos archivos de configuración y script. Un ejemplo de la pantalla del editor vi se
muestra en la Figura . Llevar a cabo cualquier tipo de administración del sistema con un servidor
Linux requiere que el administrador tenga un conocimiento funcional del Editor vi. La flexibilidad del
Editor vi permite la interacción con aplicaciones del sistema de manera tal que virtualmente
proporcionará a un administrador cualquier funcionalidad necesaria. El Editor vi puede parecer
difícil de comprender porque no funciona como Microsoft Word para su software suite de oficina u
otros editores de texto. Cuando se abre el Editor vi y se intenta tipear nada ocurrirá excepto que el
sistema hará "bip". Esto se debe a que el Editor vi está en modo de "comandos" cuando se lo abre
por primera vez. El comando correcto debe tipearse para entrar al modo "edición", modo de
entrada, donde la introducción de texto puede comenzar. Entre al modo "edición" eligiendo el
comando i.

Los Modos de vi
Los tres modos de operación en el Editor vi son comandos, edición/entrada, y última línea.
Comprender la función de estos tres modos es la clave para trabajar con el Editor vi. Todos los
comandos disponibles con el Editor vi pueden clasificarse en uno de los tres modos. La Figura
presenta una lista de los modos y proporciona una breve descripción de cada uno.

Lo importante a saber acerca del Editor vi es que no funcionará como un editor de texto típico.
Puede tipearse cualquier clase de texto pero no funciona como un editor Lo Que Ve Es Lo Que
Obtiene [What You See Is What You Get (WYSIWYG)] como Microsoft Word. El Editor vi no
contiene ninguna función de formato. Si el usuario desea que una cadena de texto tenga sangría,
el Editor vi no contiene ningún medio para ello. El usuario debe tipear el comando que hará la
sangría. Esta salida aparecerá en la copia impresa.

Obtener una completa comprensión del Editor vi y de cuáles son sus capacidades estaría más allá
del alcance de este curso. Hay libros y clases completos que tratan el Editor vi solamente. No
obstante, el potencial completo de un servidor Linux no puede lograrse sin tener conocimiento del
Editor vi y de algunos de los comandos básicos que se usan para navegar y editar scripts y
archivos de configuración. Los laboratorios acompañantes proporcionan algunos ejemplos para
abrir el Editor vi y ejecutar algunos de estos comandos para editar texto y crear un archivo script.

17
Módulo 10: Administración de Linux

10.1.6 awk

18
Módulo 10: Administración de Linux

La utilidad awk le permite crear programas breves que leen archivos de entrada, ordenan datos, los
procesan, llevan a cabo aritmética en la entrada, y generan informes. Para expresarlo de la manera
más simple posible, awk es una herramienta de lenguaje de programación usada para manipular
texto. El lenguaje de la utilidad awk se parece al lenguaje de programación de shell en muchas
áreas, aunque la sintaxis de awk es única. awk fue diseñado inicialmente para trabajar en el área
del procesamiento de texto, y el lenguaje se basa en la ejecución de una serie de instrucciones
cada vez que un patrón coincide en los datos entrantes. La utilidad escanea cada línea de un
archivo, buscando patrones que coincidan con los proporcionados en la línea de comandos. Si se
encuentra una coincidencia, da el siguiente paso de programación. Si no se encuentra ninguna
coincidencia, procede hacia la siguiente línea. Aunque las operaciones pueden volverse complejas,
la sintaxis para el comando es la misma, que es la que sigue:

awk '{patrón + acción}' {nombresdearchivos}

En la sintaxis de arriba, "patrón" representa lo que AWK busca en los datos, y "acción" es una
serie de comandos ejecutados cuando se encuentra una coincidencia. Las llaves ({}) no siempre se
requieren encerrando su programa, pero se usan para agrupar una serie de instrucciones basadas
en un patrón específico.

Considere el siguiente ejemplo del uso de awk. El primer paso sería crear un archivo de datos
usando cualquier editor de texto como vi, como se muestra a continuación:

inventario

vestidos pedir 5

zapatos bien 12

camisas pedir 6

medias bien 15

pantalones bien 8

Una vez creado y guardado el archivo, emita el siguiente comando:

#awk '/bien/ {print $3}' inventario


12
15
8

El comando anterior le indica a la utilidad awk que seleccione cada registro del archivo que
contenga la palabra "bien" y una acción de imprimir el tercer campo (Cantidad de ítems
disponibles). Usando la salida de arriba como ejemplo se puede apreciar que sería posible crear
una multitud de archivos de datos conteniendo una multitud de información de cualquier tipo. Luego
utilizando la utilidad awk, se puede extraer la información exacta de los archivos usando palabras
clave específicas como alias. awk lee la entrada de estos archivos dados una línea a la vez, luego
cada línea se compara con el "patrón". Si el "patrón" coincide para cada línea entonces la
acción dada se toma. "patrón" puede consistir en una o más expresiones regulares. Un resumen de
metacaracteres awk comunes se muestra en la Figura .

19
Módulo 10: Administración de Linux

20
Módulo 10: Administración de Linux

10.2 Cuentas de Usuario y Cuentas de Grupo

10.2.1 Cuentas de usuario y grupo en un entorno Linux

Antes de introducirnos en la verdadera administración de usuario y grupo, es una buena idea


aprender los conceptos e y detalles de implementación de las cuentas de usuario en un sistema
multiusuario. Comprender estos conceptos puede ayudar a cualquier administrador a planificar una
seguridad eficaz de cuentas de usuario y grupo.

Cuentas de Usuario en un Entorno Multiusuario


Las cuentas de usuario en un sistema Linux permiten a varias personas iniciar sesión en el sistema
al mismo tiempo o an momentos diferentes sin interferir entre sí. Un usuario puede incluso tener
varios inicios de sesión activos a la vez. Antes de llevar a cabo tareas administrativsa con cuentas
de usuario o grupo, es importante comprender qué permiten hacer las cuentas de usuario a un
multiusuario en el sistema Linux, y cómo se identifican usuarios y grupos diferentes.

Hay varios términos importantes que es necesario aprender para poder comprender el lenguaje
que trata con la administración de cuentas del usuario. Primero, los términos usuario y cuenta a
veces se usan de manera intercambiable. Por ejemplo, pueden escucharse los términos "borrar
una cuenta" o "borrar el usuario". Con este propósito significan lo mismo, borrar la cuenta del
usuario o su acceso al sistema. Hay varios otros términos importantes que es necesario aprender.
Algunos de ellos se muestran en la Figura y se tratan a continuación.

Nombre de usuario
Éste es un nombre único que se otorga a cada persona a quien esté permitido iniciar sesión en el
sistema. Es una buena idea tener reglas respecto a los nombres de usuario para hacer más fácil
identificar a un usuario por su nombre de usuario. Nombres de usuario comunes son la primera
letra del nombre del usuario y su apellido entero. Por ejemplo, el nombre de usuario de John Smith
sería jsmith.

Privilegios de Inicio de Sesión


Una vez que se ha otorgado un nombre de usuario y contraseña a un usuario y se les permite
iniciar sesión en el sistema, a los usuarios solamente se les otorga acceso a ciertos directorios. Los
usuarios también se ven limitados en cuanto a lo que se les permite hacer en el sistema. Los
privilegios de inicio de sesión enuncian qué tipo de derecho se otorgará a un usuario una vez que
acceda al sistema.

Protección con Contraseñas


Junto con un nombre de usuario, los usuarios deben proporcionar una contraseña para iniciar
sesión en un sistema Linux. La contraseña está oculta a diferencia del nombre de usuario, que se
conoce públicamente. Muchos sistemas Linux tienen reglas respecto a las contraseñas como la
longitud o tipos de caracteres usados.

Permisos
El sistema de archivos controla quién tiene permiso para acceder a archivos y ejecutar programas.
Los permisos de archivos se tratarán en detalle en este capítulo.

Directorio Home
En un sistema Linux, cada cuenta de usuario tiene un directorio home asociado a él. El usuario
tiene completo acceso a este directorio. El usuario puede agregar o borrar archivos de este
directorio o puede usárselo simplemente para almacenar archivos.

21
Módulo 10: Administración de Linux

IDs de Usuario y Grupo


Éstos son números que el sistema operativo Linux usa para identificar a un usuario o grupo. Linux
no usa nombres. El sistema operativo usa números por lo que usa la ID de usuario (UID) para
identificar usuarios y una ID de grupo (GID) para identificar grupos de usuarios.

Shell por Defecto


Cuando un usuario inicia sesión en un sistema Linux e introduce comandos en la línea de
comandos, lo está haciendo desde el prompt del shell. Esto es lo que se usa para interpretar estos
comandos para el kernel Linux. Hay varios shells de los cuales elegir. El shell por defecto es el
shell presentado al usuario cuando inicia sesión.

Toda esta información para cuentas de usuario se almacena en dos archivos de configuración del
sistema Linux: los archivos /etc/passwd y /etc/shadow. El propósito y la diferencia entre estos
archivos se explicaron en el capítulo anterior.

Cuentas de Usuario en un Sistema Multitarea


El sistema operativo Linux es tanto un sistema multiusuario como multitarea. La naturaleza de las
cuentas de usuario es tal que varios usuarios pueden haber iniciado sesión en un único sistema
Linux al mismo tiempo. Los usuarios pueden haber iniciado sesión localmente o remotamente por
medio de una red. Por esta razón, un sistema multitareas que está siendo usado por usuarios
simultáneos requerirá conectividad de red. Estos usuarios pueden estar usando más de un
programa a la vez y pueden incluso usar el mismo programa al mismo tiempo. Por ejemplo, un
usuario puede haber iniciado sesión y estar usando XEmacs, otro usuario puede haber iniciado
sesión y estar usando el navegador web, y otros dos usuarios pueden haber iniciado sesión
usando un editor de texto al mismo tiempo. Es posible configurar Linux para que sea un OS de
usuarios múltiples en el que varios usuarios pueden iniciar sesión usando una única cuenta de
usuario. No obstante, esto no se recomienda por varias razones. Proporcionar a cada usuario su
propia cuenta de usuario otorga al administrador la capacidad de controlar la seguridad usuario por
usuario.

Tenga en cuenta que aunque Linux es un sistema multitareas, no puede soportar una cantidad
ilimitada de usuarios simultáneos. Si una gran cantidad de usuarios han iniciado sesión en el
sistema y muchos de estos usuarios están intentando todos usar el mismo programa,
experimentarán un deterioro en el desempeño. La cantidad real de usuarios que un único sistema
Linux puede soportar depende de diversos factores. Depende de qué programas están siendo
usados en ese momento. Algunos programas consumen más recursos del sistema, como la RAM,
el tiempo de la CPU, o I/O de disco, que otros. Por esta razón, otros factores incluyen cuántos de
estos recursos tiene el sistema. Un sistema con más RAM, una CPU más rápida, velocidad de
disco más rápida, y más capacidad en disco puede manejar más usuarios simultáneos.

La Cuenta Superusuario
La cuenta de usuario más importante en un sistema Linux es la cuenta Superusuario. También se
denomina cuenta raíz. Recordemos del capítulo anterior, esta cuenta es creada por defecto
durante el proceso de instalación. Ésta es la cuenta que es usada por el administrador del sistema
para llevar a cabo cualquier tarea administrativa en un sistema Linux. La cuenta Superusuario
puede usarse de varias maneras.

• Inicio de sesión como raíz La cuenta raíz puede usarse para iniciar sesión en la
computadora desde la consola principal. De hecho, iniciar sesión como raíz de esta
manera solamente puede hacerse desde la consola principal. Una vez iniciada la sesión,
cualquier acción que se lleve a cabo en el sistema se hará como raíz. Esto puede
representar amenazas a la seguridad por lo cual se recomienda que se haga durante
breves periodos y después cerrar la sesión de la cuenta Superusuario.
• Su La cuenta su puede usarse para adquirir temporalmente privilegios de superusuario en
un sistema Linux para llevar a cabo tareas administrativas o ejecutar un comando que

22
Módulo 10: Administración de Linux

requiere privilegios de superusuario. Tipee el comando y presione Enter. Aparecerá un


prompt para la contraseña superusuario y si se la introduce correctamente se otorgarán
privilegios raíz. Para volver a la cuenta con privilegios de usuario normal tipee exit. El
comando su también puede usarse para pasarse a la cuenta de otro usuario. Por ejemplo,
tipee su jsmith para asumir el rol de la cuenta de jsmith. Si ya había iniciado sesión como
raíz no habrá prompt para la contraseña de jsmith. Esto se debe al hecho de que cuando
se ha iniciado sesión como raíz se otorgará acceso a cualquier cuenta de usuario del
sistema.
• Sudo Este comando permite a un administrador seleccionar ciertos comandos que pueden
introducirse sin tener que ser raíz, que de otro modo requerirían privilegios de
superusuario. Esto se hace editando el archivo /etc/sudoers y especificando qué usuarios y
comandos pueden introducir estos comandos en la línea de comandos sin tener que ser
raíz.
• Archivos raíz SUID Es posible seleccionar un archivo a ejecutar como si fuera ejecutado
por el raíz, pero puede ser ejecutado por cualquier usuario del sistema.

Es importante ser muy cauteloso al usar la cuenta superusuario a causa de los problemas de
seguridad y del daño que puede causar a la computadora. Por esta razón, no se recomienda que la
cuenta raíz sea usada como cuenta regular incluso por el administrador del sistema. Un simple
error tipográfico al ejecutar un comando puede ocasionar un daño serio y no intencional al sistema.
Por ejemplo, supongamos que hubiera que borrar /home/jsmith/tempdir. El comando rm -r
/home/jsmith/tempdir se introduciría para ello. No obstante, supongamos que se cometió un error
y se introdujo el comando equivocado. Se introdujo rm -r / home/jsmith/tempdir por error,
colocando un espacio entre / y home. Esto haría que la computadora borrara todos los archivos en
el directorio / así como en /home/jsmith/tempdir. Si esto ocurriera mientras se ha iniciado sesión
con una cuenta de usuario regular, habría un prompt para cambiar a la cuenta superusuario para
llevar a cabo esto y el error se atraparía antes de completar este comando.

Cuentas de Grupo
Los grupos en un sistema Linux se usan con los mismos propósitos que en otros sistemas
operativos. Los grupos proporcionan un medio para vincular usuarios similares por motivos de
productividad y hacer la administración de cuentas de usuario mucho más fácil. Las cuentas de
grupo son similares a las cuentas de usuario en el hecho de que se las define en un único archivo,
/etc/groups, similar al archivo /etc/passwd para cuentas de usuario. Segundo, los grupos también
tienen nombres, similares a los nombres de usuario para las cuentas de usuario. Por último, como
se mencionó anteriormente, los grupos están ligados a una ID (GID).

Las cuentas de grupo no obstante, no son cuentas de usuario. Las cuentas de grupo son una
forma de agrupar un conjunto de usuarios similares con propósitos de seguridad. Por ejemplo, es
posible agrupar a los ejecutivos de una compañía que podrían tener cierto acceso a archivos y
agrupar a otros empleados, que pueden no tener acceso a estos archivos. Recuerde que Linux
controla el acceso al hardware mediante archivos. Los grupos pueden usarse para limitar el uso de
hardware del sistema a un grupo específico de usuarios también. Más detalles, incluyendo la
creación de grupos y el agregado de usuarios, se tratarán posteriormente en este capítulo.

23
Módulo 10: Administración de Linux

10.2.2 Agregado y Eliminación de Cuentas de Usuario

La primera cuenta de usuario creada durante una instalación de Linux es la cuenta "raíz". Esta
cuenta superusuario es usada por el administrador del sistema para crear todas las otras cuentas
de usuario del sistema. Por defecto y por razones de seguridad, ningún otro usuario tiene el poder
de agregar usuarios excepto por el raíz. El proceso de crear un usuario Linux completamente
personalizado puede ser bastante complejo, por lo tanto solamente los comandos, indicadores y
parámetros básicos se tratarán aquí.

El Comando useradd
El usuario raíz crea otros usuarios Linux mediante el comando useradd. Un ejemplo de este
proceso está ilustrado en la Figura . Cuando este comando se introduce en el prompt, Linux lleva
a cabo muchas tareas simultáneas para crear la cuenta del usuario, como crear un directorio home
y asignar permisos por defecto. La sintaxis básica del comando es la siguiente:

useradd nombreusuario -c"nombre real"


Por ejemplo: useradd jdoe -c "John Doe"

Esta cadena entera se tipea en el prompt de comandos Linux antes de presionar la tecla Enter. El
parámetro nombre de usuario será el nombre de inicio de sesión para el nuevo usuario al iniciar
sesión en el sistema. Es sensible al uso de mayúsculas y minúsculas y siempre deberá tipearse en
todos caracteres minúsculos. El indicador -c se usa para introducir el campo de comentario, que en
la mayoría de los sistemas se usa para almacenar el nombre real del usuario. Otros indicadores de
parámetros existen para el comando useradd y pueden encontrarse viendo su página man. La
salida de la página man para el comando useradd (man useradd) se muestra en la Figura . Los
administradores del sistema en general usarán muchos más de estas opciones de comandos para

24
Módulo 10: Administración de Linux

personalizar completamente a sus nuevos usuarios. No obstante, el ejemplo demuestra los


conceptos básicos del comando con configuraciones por defecto principalmente.

El Comando passwd
Una vez que una nueva cuenta de usuario ha sido creada, debe dársele una contraseña antes de
que el usuario pueda iniciar sesión en el sistema. Esto se hace en Linux mediante el comando
passwd. Los usuarios pueden ejecutar este comando para cambiar sus propias contraseñas, pero
el usuario raíz también puede usarlo para modificar las contraseñas de todos los usuarios. Por lo
tanto, una vez creada una nueva cuenta, el siguiente comando es introducido por el usuario raíz
para crear la contraseña de la nueva cuenta:

passwd nombreusuario
Por ejemplo: passwd jdoe

Al usuario raíz se le pedirá que introduzca una nueva contraseña y que la confirme volviéndola a
tipear. Una vez completo este proceso, el nuevo usuario estará listo para iniciar sesión en el
sistema con los recientemente creados nombre de usuario y contraseña. Después de iniciar sesión
por primera vez, la contraseña deberá cambiarse nuevamente mediante el comando passwd.
Hágalo sin el parámetro nombreusuario, y a una que sea más privada y desconocida por el
administrador del sistema.

El Comando userdel
La forma más fácil de eliminar una cuenta de usuario es mediante el comando "userdel". Este
comando solamente puede ejecutarse con la cuenta raíz. Un ejemplo de la sintaxis del comando es
el siguiente:

userdel nombreusuario

El comando anterior eliminará la entrada que coincide con el nombre de usuario del archivo
"/etc/passwd''. Si está usando el formato de contraseña Shadow, eliminará la cuenta del usuario del
archivo "/etc/shadow''.

Tenga en cuenta que emitiendo el comando anterior sin opciones, se borrará solamente la cuenta
del usuario. El directorio home y cualquier archivo dentro del directorio home de la cuenta del
usuario no se borrarán. Si desea borrar el directorio home del usuario también, agregue la opción "-
r" al comando "userdel', como se muestra a continuación.

userdel -r nombreusuario

25
Módulo 10: Administración de Linux

26
Módulo 10: Administración de Linux

10.2.3 Administración de cuentas de usuario

Con la CLI Linux, la administración de usuarios nuevamente se realiza mediante diversos


comandos, indicadores y parámetros, como lo muestra la Figura . En particular, cambiar un
nombre de usuario, cambiar una contraseña, o borrar una cuenta puede llevarse a cabo con
comandos mínimos. No obstante, el proceso de inhabilitar una cuenta requiere un poco más de
esfuerzo. El administrador del sistema debe editar el archivo que almacena toda la información de
usuarios del sistema e inhabilitar manualmente la contraseña del usuario.

Este procedimiento no es tan difícil como puede sonar. En la mayoría de los sistemas Linux, las
contraseñas del usuario se almacenan en un archivo central denominado archivo "shadow", que
está ubicado en el directorio /etc. Este archivo puede editarse con un editor de texto como el Editor
vi. El comando para editar el archivo shadow sería el siguiente:

vi /etc/shadow

La Figura muestra un ejemplo del archivo /etc/shadow mostrado en el editor vi.

27
Módulo 10: Administración de Linux

Pico, otro editor de texto, permite el uso de las teclas de flechas para navegar por la lista de
cuentas de usuario hasta hallar la cuenta a ser inhabilitada. La información del usuario se enumera
de manera continuada en una única fila con dos puntos (:) separando cada campo. El primer
campo es el nombre de usuario, y el segundo es la contraseña cifrada del usuario. Para inhabilitar
la cuenta, el administrador del sistema puede simplemente colocar un asterisco (*) al principio de la
contraseña cifrada. Esto hará que la contraseña sea imposible de introducir al iniciar sesión,
inhabilitando así eficazmente la cuenta hasta que el administrador del sistema elimina el asterisco
nuevamente. Para guardar el archivo shadow, presione CTRL-X para salir de pico y presione la
tecla Y para guardar los cambios.

Algunos de los otros comandos importantes y útiles para ayudar a administrar y controlar la
seguridad de las cuentas de usuario y grupo se muestran en la Figura .

28
Módulo 10: Administración de Linux

10.2.4 Creación de grupos y agregado de usuarios a grupos

29
Módulo 10: Administración de Linux

Cada grupo de un sistema Linux puede tener desde ningún miembro hasta muchos miembros
como cuentas de usuario en el sistema. Recuerde de la sección anterior, la membresía de grupo
está controlada por el archivo /etc/group. Éste es el archivo que contiene una lista de todos los
grupos y miembros de esos grupos en un sistema Linux.

Cada usuario, al iniciar sesión en un sistema Linux, inicia sesión en su grupo principal. Éste es el
grupo que es pecifica la membresía de grupo por defecto y se establece en el archivo de
configuración del usuario. Cuando un usuario inicia sesión en su grupo principal, puede acceder a
los archivos y ejecutar programas asociados con ese grupo en particular al cual pertenecen. Si un
usuario desea acceso a los archivos o programas que no están en su grupo principal, pueden
pasar al grupo con el cual el archivo o programa en particular está asociado. No obstante, el
usuario debe ser miembro de ese grupo para poder pasarse a él. Éste es un medio excelente de
controlar la seguridad en un sistema Linux. Para cambiar a un grupo diferente después de iniciar
sesión en el sistema use el comando newgrp. La sintaxis para este comando es la siguiente:

newgrp nombre-grupo
Por ejemplo: newgrp ingeniería

En un sistema Linux, solamente la cuenta raíz, superusuario, tiene el poder para crear y
administrar grupos. Estas tareas se llevan a cabo usando comandos simples para crear,
renombrar, o borrar grupos desde el sistema. A la mayoría de los usuarios Linux se les asigna un
grupo durante el proceso de creación de la cuenta. La siguiente sintaxis se usa para crear un grupo
en un sistema Linux:

groupadd nombregrupo
Por ejemplo: groupadd ingeniería

Este comando crea el grupo ingeniería. Una vez creado el grupo, los usuarios pueden agregarse al
grupo. Esto se puede hacer mediante los siguientes comandos.

Una forma de agregar un usuario a un grupo es hacerlo al crear la cuenta de usuario. La siguiente
sintaxis se usa para expandir el comando useradd:

useradd -g grupo nombreusuario -c "nombre real"


Por ejemplo: useradd -g ejecutivos jdoe -c "John Doe"

Para agregar uno o más usuarios (miembros) a un grupo, se usa el siguiente comando:

gpasswd -M nombreusuario1 [nombreusuario2 nombreusuario3 ...] grupo

El comando gpasswd puede usarse para modificar grupos existentes. Solamente el usuario raíz
(administrador del sistema) puede usar la opción -M (miembros). Algunas otras opciones que están
disponibles para usar con el comando gpasswd se muestran en la Figura .

Este comando puede introducirse sin ninguna opción en cuyo caso permitirá el cambio de la
contraseña de grupo. Ésta es la contraseña que puede ser usada por los usuarios para volverse
miembros temporales de un grupo si necesitaran acceso a los archivos o programas asociados a
ese grupo.

El comando groups puede usarse entonces para mostrar los grupos actuales al cual pertenece un
usuario. Note que el usuario raíz es un miembro de todos los grupos por defecto. Los
administradores de sistemas Linux deberían asegurarse de consultar las páginas man para todos
estos comandos para aprender más acerca de sus otras funciones relacionadas.

30
Módulo 10: Administración de Linux

31
Módulo 10: Administración de Linux

10.3 Sistema de Archivos y Administración de Servicios

10.3.1 Crear y compartir directorios

Al igual que navegar por el sistema de archivos Linux, crear archivos y directorios en Linux es
simplemente una cuestión de conocer los comandos apropiados y cómo usarlos. Los comandos
aquí presentados permitirán al usuario crear, copiar, mover, renombrar y borrar archivos,
directorios, o ambos. Note que algunos de los comandos usan la misma sintaxis tanto para
archivos como para directorios, mientras que otros son diferentes. Como todos los sistemas CLI,
esto requiere que el usuario memorice y comprenda cómo usar cada comando.

Cuando se usa cualquiera de estos comandos por primera vez, especialmente los comandos de
eliminación, es una buena idea probar los comandos en archivos de prueba y directorios de
prueba. Note que los usuarios pueden modificar solamente archivos y directorios para los cuales
tengan los permisos del sistema necesarios. Esto evita que los usuarios maliciosa o
accidentalmente modifiquen datos, como borrar archivos del sistema Linux importantes. Los
permisos se tratarán en una sección posterior.

10.3.2 Uso de find y Grez

El comando find
El comando find es una de las más útiles e importantes utilidades de administración de archivos

32
Módulo 10: Administración de Linux

en Linux. El comando find se usa para localizar uno o más archivos suponiendo que se conocen
sus nombres de archivo aproximados. Vale la pena comprenderlo en profundidad porque hace
mucho más que localizar archivos. El comando find le permite especificar filtros, y ejecutar
comandos en el contenido de árboles de directorio enteros. Desafortunadamente, find no está bien
documentado, pero es realmente simple de usar y una excelente herramienta Linux.

Para comprender cómo usar el comando find considere un caso en el cual puede haberse
tipeado un documento y no se recuerda el nombre del documento, pero sabe que lo creó hace
menos de 4 días, era más pequeño que 350k, y contenía el trabajo
'Biología_Ciencia_Experimento'. La siguiente sintaxis es un ejemplo de cómo podría usar el
comando find para ubicar el archivo.

$ find /home/rtalbot
-type f -size -350k -atime
-4 | xargs -0 grep
'Biología_Ciencia_Experimento'

El comando find desciende a través de la jerarquía de directorios y aplica la cadena lógica a cada
ítem de la carpeta. En el ejemplo, find comienza en la carpeta home /rtalbot. Luego para cada
ítem de esa carpeta, aplica la cadena lógica. En este caso: -type f -size -286k -atime -4. Cada
atributo de prueba es evaluado, y si es cierto, pasa al siguiente atributo de prueba. Si la entrada es
un directorio, find desciende en él.

La siguiente lista describe los diversos atributos del ejemplo anterior:

• '-type f' ¿es la entrada un archivo?


• '-size -100k' ¿tiene la entrada menos de 100k?
• '-atime -7' ¿es el tiempo de acceso menos de hace 7 días?

Si cualquiera de los atributos de prueba falla, find deja de procesar el resto de los atributos de
prueba y pasa a la siguiente entrada. Usando el ejemplo de arriba, cualquier archivo que sea más
de 350k falla la prueba del atributo tamaño y no se probará para su tiempo de acceso o cualquier
atributo de prueba subsecuente.

El comando grep
El comando grep le permite buscar un patrón en una lista de archivos. Estos patrones se
especifican como expresiones regulares, que son cadenas, como palabras o fragmentos de
oraciones. La forma de buscar una cadena mediante el comando grep es colocar las palabras que
está buscando juntas entre comillas simples. La sintaxis de grep es la siguiente:

$ grep pattern file-name-1


file-name-2 file-name-n

Un ejemplo se muestra en el ejemplo de arriba del comando find. También podrían agregarse al
final los nombres de archivos "Lab_A", "Lab_B", y "Lab_C" después de la cadena de búsqueda
"Biología_Ciencia_Experimento" como se muestra a continuación:

$ grep 'Biología_Ciencia_ Experimento' Lab_A Lab_B Lab_C

El resultado que se devuelve mostraría todas las líneas de los archivos "Lab_A", "Lab_B", y
"Lab_C" que contengan la cadena "Biología_Ciencia_Experimento".

33
Módulo 10: Administración de Linux

10.3.2 Contraseñas y permisos

El sistema de permisos de Linux es mucho más difícil que el de Windows 2000. Se da más control
a los administradores de sistemas mediante el uso de tres categorías de permisos distintivas de
lectura, escritura y ejecución. Un ejemplo de algunos archivos Linux con explicaciones detalladas
de los permisos de archivos y directorios por defecto se muestran en la Figura . En Windows
2000, el permiso de lectura controla la capacidad de un usuario para entrar a y ver un directorio.
Esta funcionalidad se divide en dos permisos separados en Linux. Por lo tanto, el permiso de
ejecución controla la capacidad de un usuario de entrar a un directorio, mientras que el permiso de
lectura controla su legibilidad. Esto permite un control muy detallado de los permisos del sistema.
También hace a la necesidad de seguridad aún más importante ya que usuarios inexpertos pueden
no estar al tanto de ningún "agujero" de seguridad que hayan creado inintencionadamente.

El Comando chown
Los permisos de archivos y directorios en Linux se controlan mediante el uso de los dos comandos
muy importantes chown y chmod. El comando chown es llevado a cabo por todos los usuarios
para especificar la pertenencia a usuario y gruop de un archivo o directorio y sigue el formato:

chown nombreusuario.grupo nombrearchivo


Por ejemplo: chown jdoe.ejecutivos informe_01

En este ejemplo, el usuario jdoe y el grupo ejecutivos son ahora los propietarios del archivo
llamado informe_01.

El Comando chmod
La propiedad de archivos y directorios es un concepto importante en Linux porque los permisos se
declaran tanto para usuarios como para grupos basándose en esta pertenencia. Por ejemplo, si el
archivo informe_01 permite acceso completo al usuario y denega todo acceso del grupo, entonces
jdoe podrá acceder al archivo, pero los miembros del grupo ejecutivos serán bloqueados. Estos
permisos se declaran mediante el uso del comando chmod:

chmod modo nombrearchivo


Por ejemplo: chmod 700 informe_01

Este comando de muestra ha otorgado ahora al usuario todos los permisos de lectura, escritura y
ejecución, no dándole a su grupo ni a todos los otros usuarios ningún permiso. Esto se especifica
en el modo del comando, que en este caso es 700. Cada dígito del número representa los tres
diferentes tipos de usuarios del sistema. Comenzando desde la izquierda, el primer dígito
representa al usuario o propietario, el dígito medio representa al grupo, y el dígito del extremo
derecho representa a todos los otros usuarios del sistema (usuario-grupo-otro). A los tres tipos de
permisos de lectura, escritura y ejecución se les otorga valores numéricos según se muestra a
continuación:

Lectura = 4
Escritura = 2
Ejecución = 1

Para otorgar a un usuario en particular permisos específicos, los números apropiados se suman y
luego se los enumera en el orden apropiado. Por ejemplo, para otorgar al propietario permisos de
lectura y ejecución, al grupo permiso de ejecución, y a todos los otros usuarios permiso de
escritura, el número apropiado sería 512. Y por supuesto, para no otorgar ningún permiso, un cero

34
Módulo 10: Administración de Linux

se adjudica para esa categoría de usuario. Asignar permisos en Linux es bastante más tedioso que
la interfaz manejada por menúes de Windows 2000. No obstante, la flexibilidad de Linux sí
proporciona mayor control al administrador de sistemas experimentado.

El atributo sticky bit


Los permisos de acceso a directorios estipulan que si un usuario tiene permiso de escritura en un
directorio, puede modificar o borrar archivos en dicho directorio, incluso archivos que no le
pertenecen. Muchas versiones de Linux tienen una forma de evitar eso. El propietario de un
directorio puede establecer el atributo sticky bit. En este caso, la única persona que puede
renombrar o eliminar cualquier archivo en ese directorio son el propietario del archivo, el propietario
del directorio o la cuenta raíz. El siguiente ejemplo muestra cómo establecer el permiso sticky bit
en el directorio testdir y también la diferencia entre antes y después de haber establecido el
atributo:

Root$ ls -ld testdir


drwxrwxrwx 2 rtalbot rtalbot 512 Jul 15 21:23 testdir
Root$ chmod +t testdir
Root$ ls -ld testdir
drwxrwxrwt 2 rtalbot rtalbot 512 Jul 15 21:23 testdir

10.3.3 Montaje y administración de sistemas de archivos

Los dos comandos que usa Linux para montar y desmontar sistemas de archivos y particiones son
mount y umount. La sintaxis para el comando mount es la siguiente:

mount [-alrsvw] [-t fstype] [-o options]

Sigue una lista de los parámetros comunes que pueden usarse junto con el comando mount.
Tenga en cuenta que ésta no es una lista completa de todos los parámetros que pueden usarse
con el comando mount Para encontrar una lista abarcativa, se recomienda consultar la página man
de mount. Algunas de las opciones que pueden usarse junto con el comando mount se muestran
en la Figura .

La opción -o toma una lista de las opciones separadas por coma, que se muestra en la Figura .

Un administrador muy a menudo sólo utilizará el argumento por defecto con el comando mount. La
sintaxis tendría este aspecto:

mount/dev/hda4/mnt/ITEss2

Este comando montaría el contenido de /dev/hda4 en el directorio /mnt/ITEss2, auto-detectando e


tipo de sistema de archivos y usando las opciones por defecto.

Uso del Comando umount


El uso del comando umount es más simple que el uso del comando mount. La sintaxis para el uso
del comando umount es la siguiente:

umount[-anrv] [-t fstype] [device | mountpoint]

Los parámetros que se usan con el comando umount son muy similares a los usados con el
comando mount. Algunas de las diferencias más importantes se muestran en la Figura .

35
Módulo 10: Administración de Linux

Las mismas reglas para mount se aplican a umount en relación a quién se le permite ejecutar estos
comandos. Solamente el usuario raíz puede usar el comando umount. Esto es a menos que un
usuario o propietario específico en la lista del archivo /etc/fstab/ tenga permiso para usar el
comando umount para desmontar una partición, sistema de archivos, o dispositivo.

Uso del Comando df


El comando df es un comando útil usado para ayudar a administrar sistemas de archivos en
máquinas Linux. Un ejemplo de la salida del comando df se muestra en la Figura . El comando
df mostrará información acerca de una unidad de disco rígido o partición que incluya espacio en
disco rígido total, usado y disponible. Hay muchos parámetros que pueden usarse con este
comando también. Algunos de los importantes se muestran en la Figura .

El comando df puede usarse solo o en combinación con estos parámetros para mostrar
información sobre cualquier sistema de archivos que se monta en un sistema Linux. Puede
mostrarse información sobre un dispositivo o partición específicos agregando el dispositivo en el
cual reside la partición o cualquier archivo o directorio del sistema de archivos, que limitará la
salida a una partición específica.

Uso del Comando du


El comando df es un comando muy útil que puede usarse para mostrar información acerca de
sistemas de archivos y particiones que se montan en un sistema Linux. No obstante, a veces es
necesario encontrar información acerca de directorios o archivos individuales que están ubicados
en una de estas particiones. Por ejemplo, si es necesario liberar espacio en un disco rígido, use el
comando du para mostrar información acerca del directorio home de un usuario específico para
tomar una decisión respecto a qué archivos mover o borrar para hacer espacio. Un ejemplo de la
salida del comando du se muestra en la Figura . Usar el comando df podría brindar información
sobre toda la partición o unidad pero no sobre un directorio específico.

Al igual que con el comando df, hay varios parámetros que pueden usarse junto con el comando
du. Algunos de ellos se muestran en la Figura .

Ésta no es una lista completa de todos los parámetros que pueden usarse con el comando du.
Para encontrar una lista abarcativa, se recomienda consultar la página man de mount. El comando
du puede usarse solo o en conjunción con estos parámetros para mostrar información acerca de
cualquier archivo o directorio que se monta en un sistema Linux.

36
Módulo 10: Administración de Linux

10.3.4 Archivos de configuración del sistema de archivos

Existen dos tipos de archivos de configuración para el sistema de archivos Linux. Ellos son
archivos de configuración del Usuario y del Sistema. Los archivos de configuración del usuario
almacenan información que es específica de un usuario individual como las ubicaciones de los
íconos del escritorio, las preferencias del administrador de ventanas, y los scripts que se configuran
para ejecutarse automáticamente. Los archivos de configuración del usuario son componentes
esenciales que componen un sistema multiusuario. Estos archivos almacenan información para
cada usuario para que cuando inician sesión para usar el sistema, todas sus configuraciones
permanezcan intactas. Los archivos de configuración del sistema controlan las configuraciones
para todo el sistema. Éstos son archivos que controlan servicios que se configuran para ejecutarse
para cada usuario que inicia sesión en el sistema. Saber dónde localizar estos archivos y editarlos
ayudará a cualquier administrador a resolver una variedad de problemas asociados con el sistema
operativo Linux.

Archivos de Configuración del Usuario


Puesto que estos archivos controlan la configuración de cada usuario individual, los archivos que
almacenan estas configuraciones se almacenan en el directorio home de cada usuario. Los
archivos de configuración del usuario se almacenan como archivos de punto (.). La Figura
proporciona un ejemplo de un directorio home de muestra con los archivos de punto (.) visibles. Por
ejemplo, la configuración del usuario para la interfaz KDE se almacenan en los archivos .kde y
.kderc. Estos archivos de punto están ocultos y son ignorados por la mayoría de las herramientas
de Linux. Si se usa el comando ls para enumerar el contenido del directorio home del usuario,
estos archivos no figurarán en la lista. Pueden figurar agregando el parámetro -A al comando ls.
Este comando enumera todo excepto los archivos . y ... El OS Linux hace a estos archivos ocultos
para que no distraigan y parezcan ejecutarse en segundo plano. Algunos archivos de configuración
del usuario importantes se muestran en la Figura .

37
Módulo 10: Administración de Linux

Éstos son solamente algunos de los archivos de configuración del usuario que se almacenan en un
sistema Linux. Al inspeccionar el directorio home se notarán más y a medida que se instalan y
ejecutan programas, incluso más pueden aparecer. También hay muchos archivos de
configuración asociados con programas que almacenan información específica de un usuario
individual.

Archivos de Configuración del Sistema


Los archivos de configuración del sistema controlan aspectos del sistema operativo que se
relacionan con todo el sistema en oposición a cualquier usuario específico. Estos archivos se
encuentran usualmente en su correspondiente subdirectorio ubicado en el directorio /etc. Por
ejemplo, los archivos de configuración de Samba pueden encontrarse en el directorio /etc/Samba.
Éstas son unas pocas diferentes categorías de archivos de configuración del sistema. Algunos se
ejecutan cuando el sistema se inicia, otros controlan el sistema después de que se ha iniciado, y
otros controlan servidores específicos de un sistema Linux.

Archivos de Configuración de Inicio


El programa principal que se usa para ejecutar los archivos de configuración de inicio es el
programa init. Este programa usa el archivo de configuración /etc/inittab para almacenar las
configuraciones respecto a cómo deberá iniciarse el sistema. Red Hat Linux usa el script de
inicialización /etc/rc.d/rc.sysinit, que se especifica en el archivo de configuración para que ejecute
una serie de scripts de inicio que indican cómo se supone que arranque el sistema.
Específicamente, estos scripts se ejecutan de acuerdo al nivel de ejecución del sistema. Los
niveles de ejecución se tratarán posteriormente en este capítulo. En este punto simplemente
comprenda que el sistema siempre se inicia en un nivel de ejecución en particular, 0-6. Si el
sistema se configura para que inicie en el nivel de ejecución 5, entonces todos los scripts que están
configurados para ejecutarse en el script de inicialización /etc/rc.d/rc.sysinit inician cuando el
sistema se inicia en el nivel de ejecución 5. Todos los servidores y utilidades del sistema que están
configurados para ejecutarse en un nivel de ejecución en particular se almacenan en archivos de
acuerdo al nivel de ejecución en particular en el cual se inician. En Red Hat Linux, el nombre de
este archivo es /etc/rc.d/rc#.d, donde # es el número de nivel de ejecución. Los scripts que se
almacenan en estos archivos se configuran para iniciar o eliminar un servidor o utilidad del sistema
en particular cuando el sistema se inicia en ese nivel de ejecución en particular.

El resultado de estos archivos de configuración de inicio es que un administrador puede configurar


un sistema para controlar qué servidores y utilidades del sistema se inician en cualquier nivel de
ejecución determinado automáticamente al iniciarse el sistema.

Archivos de Configuración de Función del Sistema


Los archvos de configuración de función del sistema controlan las funciones del sistema una vez
que éste ha arrancado. A diferencia de los archivos de configuración de inicio, estos archivos no
son scripts. Son archivos usados por otros programas. Algunos de los más importantes archivos de
configuración de función del sistema se muestran en la Figura .

Éstos son solamente unos pocos de los muchos archivos de configuración que controlan funciones
del sistema una vez que el sistema ha arrancado. Hay muchos más pero la mayoría de ellos nunca
necesitarán ser configurados. Dependiendo de la distribución de Linux en particular que se está
usando, las ubicaciones o nombres exactos de estos archivos podrían ser levemente diferentes. No
obstante, usualmente todos llevarán a cabo las mismas funciones.

Archivos de Configuración para Servidores Específicos


Los archivos para servidores también están ubicados en el directorio /etc. Estos archivos controlan
programas que se ejecutan en segundo plano, más a menudo inadvertidos por el usuario. Estos
archivos están configurados usualmente para iniciar el servidor o cambiar su comportamiento en
alguna forma si el servidor ya se ha iniciado. Algunos de los servidores más importantes que usará
un administradores se muestran en la Figura .

38
Módulo 10: Administración de Linux

Nuevamente, hay muchos otros servidores ubicados en /etc o en un subdirectorio de /etc. No


obstante, estos servidores son los más populares que se configurarán en un sistema Linux. Es
posible también que los archivos de configuración de los servidores estén ubicados en otros
directorios. Usualmente es fácil hacer coincidir un servidor en particular con el nombre hallado en el
directorio. Como puede apreciarse, como con el archivo httpd.conf por ejemplo, tiene sentido que
éste tuviera algo que ver con el servidor web.

Edición de los Archivos de Configuración


Comprender la diferencia entre archivos de configuración del usuario y del sistema y dónde se
ubican estos archivos es solamente el primer paso para poder administrar apropiadamente un
sistema Linux. Un administrador de un sistema Linux tendrá que editar apropiadamente estos
archvos para que éstos configuren apropiadamente un sistema Linux. No hay una forma de
explicar a alguien cómo editar cualquiera de estos archivos. Esto es porque dependiendo del
sistema en sí, el usuario, y muchos otros factores, cómo se editan estos archivos puede variar
completamente de un sistema a otro. Un mejor enfoque a tomar es explicar el formato de estos
archivos y cómo todas las líneas de los siguientes archivos de configuración cambiarán qué hará el
sistema. Tomando este enfoque, cualquier administrador de sistemas puede configurar estos
archivos según sus propias necesidades. Tenga en cuenta que estos archivos pueden editarse
usando cualquier editor de texto como vi y que más información puede hallarse sobre estos
comandos observando sus páginas man.

El Archivo /etc/inittab
El archivo /etc/inittab se describió en la sección anterior. Recuerde que el archivo /etc/inittab es
responsable de controlar procesos init, lo cual ejecuta los scripts de inicio en un sistema Linux. Hay
dos tipos de líneas que se encontrarán en los archivos /etc/inittab: líneas de comentario y líneas
de control. Las líneas de comentario son tipos típicos de líneas que se encontrarán en todos los
scripts de cualquier sistema operativo. Éstas son las líneas que se comentan usando un signo
numeral (#). Estas líneas se ignoran y no se procesan. Las líneas de control son las líneas que lee
el programa. Las líneas de control del archivo /etc/inittab se muestran en el siguente formato en
las Figuras y .

id:runlevel:action:process

Observe la Figura para ver que la parte de id del archivo se muestra en el formato n, donde n es
el nivel de ejecución (0-6). Esto representa la acción a tomar al pasar a un nuevo nivel de
ejecución. Refiérase a la Figura , para ver qué nivel de ejecución puede mostrarse usando un
único nivel de ejecución o múltiples niveles de ejecución y puede usarse aquí como 2345 para los
niveles de ejecución 2-5.

Hay diversas razones por las cuales un administrador necesitaría editar el /etc/inittab. Una de las
razones más comunes es cambiar el nivel de ejecución por defecto del sistema. Los niveles de
ejecución se tratarán en más detalle en la sección 10.3.6.

El Archivo /etc/fstab
Tal como se aprendió en la sección anterior, el archivo /etc/fstab proporciona acceso a particiones
de disco y a dispositivos de medios removibles. Linux soporta una estructura de directorios
unificada lo que significa que cada directorio está ubicado en algún lugar en relación a la raíz del
árbol que es /. Cualquier dispositivo o partición que se monta en un sistema Linux también se ubica
en esta estructura de directorios. Por ejemplo, los archivos de un cdrom que se monta pueden
hallarse en el directorio /mnt/cdrom. Los directorios ubicados fuera de esta raíz (/) pueden ser
otras particiones, discos o directorios. Un sistema Linux tratará a todos de la misma manera. El
directorio /etc deberá estar en el mismo directorio que la raíz pero otros directorios como los
directorios home pueden almacenarse en otra partición o disco en el cual no esté la raíz. El archivo
/etc/fstab maneja esto permitiendo a un sistema Linux saber dónde se ubican estos archivos para
que puedan ser accesibles al sistema operativo.

39
Módulo 10: Administración de Linux

La estructura de /etc/fstab es como la muestra la Figura . Observe este archivo y note que hay
seis columnas separadas por espacios. Vea la línea comentada en la parte superior, que indica lo
que cada una de estas columnas representa. Nuevamente, cualquier línea que comience con un
signo numeral (#) será comentada e ignorada. Los significados de cada una de estas columnas se
muestran en la Figura .

40
Módulo 10: Administración de Linux

41
Módulo 10: Administración de Linux

42
Módulo 10: Administración de Linux

43
Módulo 10: Administración de Linux

44
Módulo 10: Administración de Linux

10.3.5 Administración de niveles de ejecución

Los niveles de ejecución se han mencionado en las secciones anteriores de este capítulo. Hasta
este punto todo lo que ha sido mencionado acerca de los niveles de ejecución es que controlan
qué conjunto predeterminado de programas se ejecutarán en el sistema cuando el sistema arranca.
En otras palabras, hay programas que solamente se ejecutan en niveles de ejecución específicos.
En qué nivel de ejecución se arranca el sistema determinará qué programas se cargan al sistema.
La misma regla se aplica aquí para los niveles de ejecución que para los archivos de configuración.
Como administrador, no es suficiente simplemente saber qué hacen los niveles de ejecución. El
conocimiento de cómo administrar eficazmente niveles de ejecución en un sistema Linux también
es necesario.

La administración apropiada de niveles de ejecución es un método que puede usar un


administrador de sistemas para cambiar qué servicios ofrece un sistema. Por ejemplo, un sistema
Linux puede configurarse para arrancar con dos configuraciones diferentes. Una configuración
podría ser con todos los servidores de red y la otra podría ser un conjunto más limitado de servicios
del sistema en el cual otras tareas como mantenimiento del sistema necesiten hacerse. En lugar de
tener que detener manualmente todos estos servicios, puede arrancarse con un nivel de ejecución
diferente y ninguno de los servidores del sistema se cargarían. Usar el sistema X Window es otro
ejemplo donde puede usarse el nivel de ejecución. Arrancar en una interfaz en modo texto o en
una interfaz GUI puede hacerse automáticamente arrancando con diferentes niveles de ejecución.

Cambio del Nivel de Ejecución


También se mencionó en secciones anteriores de este capítulo que el programa init controla los
niveles de ejecución en un sistema Linux. Las configuraciones que controlan cómo arranca el
sistema y en qué nivel de ejecución arrancar están almacenadas en el archivo /etc/inittab. El

45
Módulo 10: Administración de Linux

programa init lee las configuraciones de este archivo y por lo tanto configura el nivel de ejecución
inicial del sistema.

Una vez que el sistema ha arrancado es posible cambiar el nivel de ejecución usando los
programas init o telinit. La sintaxis para estos dos comandos es la siguiente:

telinit niveldeejecución
init niveldeejecución

La mayoría de las veces, para nivel de ejecución, simplemente introduzca el nivel de ejecución al
que ha de pasarse, ya sea 0-6. No obstante, también hay unos pocos códigos que pueden
introducirse aquí en lugar de un número. Por ejemplo introducir S o s cambiará el nivel de
ejecución a modo de usuario único y Q o q leerá nuevamente el archivo /etc/inittab e
implementará cualquier cambio que se hayan hecho en el mismo.

Para averiguar cuál es el nivel de ejecución actual, use el comando runlevel. Este comando
mostrará el nivel de ejecución anterior del sistema, así como el nivel de ejecución actual.

Un parámetro de utilidad a usar con los programas telinit o init es -t tiempo. Esto retrasará el
cambio hasta el tiempo especificado. Este parámetro puede ser útil porque al cambiar de nivel de
ejecución muchos de los procesos del sistema se eliminarán. Inicialmente, los sistemas intentan
hacer esto mediante el comando SIGTERM. El comando SIGTERM permite a un programa
administrar su propio proceso de cerrado, haciéndolo por lo tanto de manera segura. No obstante,
si el proceso no se cierra, el sistema usará el comando SIGKILL que inmediatamente finalizará el
proceso y podría ocasionar daño al sistema. Usar el parámetro -t tiempo puede retrasar el proceso
durante un tiempo para dar a todos los procesos del sistema tiempo para cerrarse por sí mismos.

Cambiar al nivel de ejecución 0 es un caso especial porque requiere apagar la computadora y


detenerla. Dependiendo de la distribución de Linux que se esté usando, cambiar a nivel de
ejecución 0 apagará el sistema así como toda la alimentación del mismo donde sea seguro apagar
manualmente la alimentación. Pasar a nivel de ejecución 0, para apagar el sistema, puede hacerse
mediante los comandos telinit o init. No obstante, se recomienda usar el comando
shutdown en cambio por las muchas opciones que brinda. La sintaxis para el comando shutdown
es:

shutdown [-t sec] [-arkhcfF] time [warning-message]

Estos parámetros para el comando shutdown se explican en la Figura .

Cambiar el Nivel de Ejecución por Defecto


Cambiar el nivel de ejecución por defecto en un sistema Linux permanentemente es un proceso
muy simple. Simplemente involucra editar el archivo /etc/inittab. Específicamente, la línea
id:3:initdefault:. Esta línea indica a un sistema que está configurado para el nivel de ejecución tres
(3) por defecto. Para cambiar esto, simplemente cambie el 3 por el nivel de ejecución deseado en
el que ha de arrancar el sistema. Despues de hacer este cambio, use el comando init q para
escanear el archivo /etc/inittab e implementar el cambio.

46
Módulo 10: Administración de Linux

47
Módulo 10: Administración de Linux

48
Módulo 10: Administración de Linux

49
Módulo 10: Administración de Linux

50
Módulo 10: Administración de Linux

51
Módulo 10: Administración de Linux

52
Módulo 10: Administración de Linux

10.3.6 Documentación de la configuración de un sistema Linux

53
Módulo 10: Administración de Linux

Un paso muy importante a recordar para cualquier administrador, al cambiar cualquier tipo de
configuración en un sistema Linux, es documentar los cambios que se han realizado. La
documentación es un paso extremadamente importante, especialmente al administrar un sistema
Linux. Como se aprendió a lo largo de los pasos anteriores, la mayor parte de todas las
configuraciones Linux tienen lugar editando los diversos archivos de configuración. Puede ser
imposible seguir el rastro de todos los cambios que se han hecho en un sistema sin mantener una
buena documentación. Sin una documentación apropiada, los cambios que se han efectuado
pueden olvidarse, lo cual puede conducir a problemas en el futuro. Una documentación apropiada
ahorrará tiempo valioso al detectar problemas en el sistema posteriormente. Por ejemplo, si los
cambios en la configuración se hicieron en un script de inicio para lanzar un servidor al inicio,
entonces posteriormente un servidor se actualiza o reemplaza sin actualizar la configuración del
script de inicio, serios errores podrían resultar, haciendo que el sistema no pueda iniciar. La
documentación apropiada del sistema habría ahorrado mucho tiempo y problemas. Los cambios de
configuración que se hicieron podrían haber sido vistos y luego cambiados de acuerdo a ello.

Log de Mantenimiento del Sistema


Muchos administradores mantienen un log para administradores en el cual mantienen registro de
todos los cambios de configuración que hacen en sus sistemas. En general es una buena regla
mantener un log del administrador en un cuaderno que puede escribirse y no electrónicamente en
una computadora. Esto hace fácil la referencia, pero también lo hace disponible incluso si la
computadora en la cual se almacena se cae.

Hay varias cosas importantes que documentar en un log del administrador. Unos pocos de estos
ítems son los siguientes, pero esto puede ser diferente dependiendo de la red y la configuración del
sistema.

• Configuración inicial
• Instalaciones de paquetes
• Ediciones de los archivos de configuración
• Cambios en el sistema de archivos
• Recompilaciones del kernel
• Cambios en el hardware

Configuración Inicial
Es importante documentar cómo estaba configurado originalmente el sistema durante el proceso
de instalación. Esto puede incluir cosas como el hardware que se instaló en el sistema. Además,
incluya cualquier configuración de hardware que se haya hecho, cualquier información sobre el
disco rígido como esquemas de particionamiento, el número de versión de la distribución de Linux,
y también qué opciones de instalación se instalaron, como los paquetes.

Instalaciones de Paquetes
Es importante registrar qué paquetes de software se instalaron en el sistema. Esto es
especialmente importante si los paquetes instalaron son tarballs o si el paquete se ha compilado
manualmente. No se mantiene ninguna base de datos de estos paquetes, por lo cual es importante
tener una.

Ediciones de los Archivos de Configuración


Han habido muchos archivos que se han tratado en este capítulo que requieren efectuar ediciones
de configuración. Es una buena idea mantener un registro de estos cambios en el libro log. Si el
cambio es pequeño, escribir el cambio exacto que se efectuó está bien. Si fue un gran cambio en el
archivo de configuración, usualmente lo mejor es escribir una descripción general de qué cambio
se efectuó.

54
Módulo 10: Administración de Linux

Cambios en el Sistema de Archivos


A menudo hay muchos cambios que deben efectuarse en el sistema de archivos. Estos cambios
podrían ser archivos o directorios que es necesario mover o cuando el sistema de archivos
necesita un cambio de tamaño.

Recompilaciones del Kernel


Si y cuando el kernel Linux necesita recompilarse o actualizarse, siempre es una buena idea hacer
notas acerca de los cambios. Estos cambios deberán incluir el número de versión, cualquier
función que se agregó o eliminó, así como el nombre del nuevo Kernel.

Cambios en el Hardware
Cada vez que se hace cualquier cambio en el hardware, es importante tomar notas de los cambios
que se harán en el archivo /etc/fstab para el disco rígido y para las configuraciones del servidor X
con la placa de video.

El libro log deberá ser fácilmente accesible pero también deberá almacenarse en un lugar seguro.
La documentación de los cambios de configuración ahorrará tiempo a un administrador al hacer
actualizaciones e instalar cualquier nuevo hardware o software. Esta práctica es invalorable para
cualquier buen administrador de sistemas.

Copia Backup del Directorio /etc


Otro medio de documentar cualquier cambio de configuración es hacer un backup de todo el
directorio /etc. Usando el comando tar es posible hacer un backup del directorio /etc en cualquier
dispositivo montado. Hacer esto esencialmente preserva una copia de la documentación del
sistema. Esto puede usarse para ir hacia atrás y usarse como referencia para ver qué cambios en
la configuración se han efectuado. La sintaxis de comandos para ello se muestra en la Figura .

En este ejemplo, en lugar de xxxx, coloque cualquier dispositivo en el que se hizo el backup. Hacer
un backup de todo el directorio /etc es a veces una buena idea para hacerlo antes de hacer
cualquier cambio extensivo en la configuración. De esta forma, si se comete un error el antiguo
directorio siempre puede restaurarse del backup.

Tenga en cuenta no obstante, que este método no es un sustituto de mantener un log de


mantenimiento. Es solamente otro medio de ayuda al efectuar cambios en la configuración.
Mantener un log puede conducir directamente a un cambio de configuración que se efectuó. No
obstante, si había solamente un backup, todos esos archivos deberán analizarse para hallar el
cambio de configuración que se efectuó.

55
Módulo 10: Administración de Linux

56
Módulo 10: Administración de Linux

10.4 Daemons

10.4.1 Introducción a los daemons Linux

Podría no ser enteramente correcto llamar a todos estos procesos de Red/NOS, servicios. Tal vez
un término más genérico, independiente del sistema operativo sería más correcto. Esto se debe a
que si los usuarios se refieren a estas funciones como servicios, están usando el término que
Microsoft usa para referirse a estos procesos de red. Si los usuarios estuvieran usando Linux, se
referirían a estos servicios como daemons. Novell se refiere a estos servicios como Módulos
Descargables Netware (NLMs). Servicios, daemons y NLMs todos llevan a cabo esencialmente las
mismas tareas. Permiten al sistema operativo proporcionar funciones como Internet, archivos
compartidos, intercambio de correo, servicios de directorio, administración remota, y servicios de
impresión. No obstante, funcionan un tanto diferentemente en Windows en oposición a Linux o
Novell.

Las funciones que se denominan servicios en Windows y Módulos Descargables Netware (NLMs)
en Novell se denominan daemons en Linux. Ejemplos de daemons Linux son FTPD y HTTPD. Los
daemons no están integrados al sistema operativo como los servicios lo están en Windows. Los
daemons se ejecutan como procesos en segundo plano. Se ejecutan continuamente sin producir
ninguna salida visible. Por ejemplo, el daemon FTP (FTPD) se ejecutará en segundo plano. A
medida que procesa solicitudes entrantes, enviará los archivos según sea necesario, pero no
mostrará nada en la pantalla. Las actividades de los daemons se registran en un archivo log.
Muchos daemons pueden ejecutarse en un sistema Linux en cualquier momento determinado. Hay
varios daemons Linux comunes:

• HTTPD Este daemon es responsable de las solicitudes del navegador web.


• Inetd Este daemon esperará que se haga una solicitud entrante y luego envía esa solicitud
al daemon apropiado.
• Crond Este daemon ejecutará scripts en un momento especificado.
• Syslogd Este daemon registrará información acerca de programas en ejecución
actualmente al archivo log del sistema.

Los daemons pueden cargarse o descargarse de la memoria en cualquier momento. También


pueden reiniciarse sin tener que reiniciar todo el sistema. La Figura muestra un ejemplo del
daemon xinetd.d siendo iniciado. Con Microsoft, el sistema debe reiniciarse cuando se instala una
aplicación o servicio. Pero Novell y Linux pueden cargar, descargar y reiniciar un daemon o NLM
sin requerir que un administrador reinicie el sistema.

57
Módulo 10: Administración de Linux

10.4.2 Inicio, detención y reinicio de daemons

Antes de entrar en descripciones y ejemplos de daemons específicos de Linux y cómo


configurarlos, primero es necesario aprender cómo iniciar o detener estos servicios. Cuando un
sistema Linux está funcionando e incluso cuando no hay nada en la pantalla excepto un prompt de
inicio de sesión, aún hay varios programas y servicios en continua ejecución. Algunos de ellos son
simples programas que manejan cosas tales como prompts de inicio de sesión basados en texto.
Hay otros servicios más complejos que se están ejecutando que hacen el sistema disponible para
otros sistemas exteriores. En un sistema operativo Linux, muchos de estos servicios que se inician
y detienen se denominan daemons. Estos daemons necesitan iniciarse de alguna manera y en
ciertas ocasiones incluso necesitan ser detenidos o reiniciados. Linux proporciona varias formas
diferentes de configurar un sistema para que inicie daemons o programas.

Uso de Scripts Sys V para Iniciar y Detener Servicios y Daemons Linux


Los scripts Sys V pueden usarse para iniciar, detener o reiniciar daemons Linux. Los scripts se
ubican en directorios en particular, más comúnmente en los directorios /etc/rc.d/init.d o /etc/init.d.
Para ejecutar estos scripts, necesitan ir seguidos por opciones tales como start, stop o restart. La
opción status puede usarse en algunos scripts también para obtener feedback acerca de en qué
estado actual se encuentra el daemon. Por ejemplo, el siguiente comando reiniciará el daemon
Apache Web server en un sistema Red Hat 7.2.

# /etc/rc.d/init.d/httpd restart

Si por alguna razón este script es ejecutado y si devuelve un mensaje de Fallido [Failed], indica
que hay algo mal en la configuración.

58
Módulo 10: Administración de Linux

Hay algunas cosas que es importante saber al iniciar o detener manualmente un daemon de esta
manera.

Primero, dependiendo de qué distribución de Linux se está usando, el nombre exacto del script
puede ser levemente diferente. Por ejemplo, en algunas distribuciones el servidor Samba usa el
script smb y en otras, usa el script samba para iniciar, detener o reiniciar el daemon Samba. Otra
instancia en la cual el nombre del script de inicio podría no estar estandarizado es cuando hay
scripts que llevan a cabo operaciones complejas que comienzan varios otros programas junto con
el programa o daemon que se pretende que se inicie con el script. El script Network o Networking
es un ejemplo que se incluye en algunas distribuciones que se usa para inicializar muchas
funciones de red.

Segundo, los scripts de inicio Sys V están diseñados para ser ejecutados en distribuciones
particulares de Linux. Un script de inicio Sys V de Red Hat no funcionará en otras distribuciones de
Linux.

Tercero, se mencionó antes qué indica un mensaje Failed cuando se ejecuta el script. No obstante,
a veces un script se ejecutará y parecerá estar funcionando correctamente incluso aunque no está
operando correctamente. Si el daemon no está funcionando apropiadamente verifique el archivo
log, usualmente localizado en el archivo /var/log/messages. Este archivo log puede proporcionar
alguna indicación respecto a qué errores se están generando.

Cuarto, siempre es una buena idea leer la documentación específica del daemon para las
diferentes opciones que reconoce el script. Esto se debe a que algunos scripts soportan diferentes
opciones que otros. Por ejemplo, algunos daemons necesitan reiniciarse cuando se ha efectuado
un cambio en la configuración. Para hacer esto, simplemente ejecute el script con la opción de
reinicio. Algunos scripts no necesitan reiniciarse sino que necesitan detenerse completamente y
luego volverse a iniciar. Algunos daemons tienen comandos que simplemente releen la
configuración sin tener que reiniciarlos.

Iniciar o Detener un Daemon o Servicio de Forma Permanente mediante scripts Sys V


Para poder iniciar o detener eficazmente un servicio o daemon que se ejecuta en un sistema Linux,
es necesaria una buena comprensión de qué son los niveles de ejecución. Comprender cómo los
niveles de ejecución pueden usarse para controlar qué servicios, programas y daemons carga
automáticamente el sistema cuando inicia también es necesario. Refiérase a la sección 10.3.5 para
repasar niveles de ejecución.

También se mencionó anteriormente en esta sección que los scripts de inicio Sys V que se usan
para iniciar, detener y reiniciar temporalmente los daemons están ubicados en los directorios
/etc/rc.d/init.d o /etc/init.d. También hay varios directorios dentro de la estructura de directorios
Linux que contienen vínculos simbólicos a estos scripts. Estos vínculos simbólicos están asociados
a los diferentes niveles de ejecución. Cuando un sistema Linux se arranca en un nivel de ejecución
específico, estos vínculos simbólicos que están asociados a un nivel de ejecución específico,
hacen referencia a los scripts Sys V para que carguen servicios, programas y daemons de manera
permanente. Estos directorios que contienen los vínculos simbólicos se denominan por lo común
/etc/rc.d/rcx.d o /etc/rcx.d. La x es el número de nivel de ejecución especificado, que se trató en
la sección 10.3.5. Los vínculos simbólicos de estos directorios contienen archivos que ejecutan los
scripts Sys V cuando el sistema arranca en el nivel de ejecución correspondiente. Estos nombres
de archivo asumen la forma Kxxdaemon o Sxxdaemon, donde xx es un número de dos dígitos y
daemon es el nombre del daemon. Cuando el sistema introduce un nivel de ejecución especificado
los scripts Kxxdaemon y Sxxdaemon se ejecutan y los daemons o servicios que comienzan con S
reciben el comando start. Los scripts que comienzan con K reciben el comando stop. Por lo
tanto, daemon y servicios pueden iniciarse o detenerse con facilidad permanente y
automáticamente cuando el sistema arranca, renombrando estos scripts en los directorios de
vínculos simbólicos con una S o una K. El número de dos dígitos representa el orden en el cual los

59
Módulo 10: Administración de Linux

daemons o servicios se inician o detienen. El sistema ejecutará los scripts con el número más bajo
primero. Esto puede ser importante porque algunos servicios deberán iniciarse o detenerse antes
que otros. Por ejemplo, el daemon del servidor web Apache deberá iniciarse después de que los
servicios básicos de networking se hayan iniciado.

Los Archivos xinetd.conf y xinetd.d


Los scripts Sys V son ideales para ejecutar daemons y servicios que necesitan estar ejecutándose
constantemente. No obstante, ejecutar estos daemons y servicios de forma permanente, consumen
valiosos recursos del sistema y memoria incluso cuando no están siendo usados. El archivo
xinetd.d es lo que se denomina un super-servidor. El concepto principal detrás de los super-
servidores es escuchar solicitudes para cualquiera de los daemons y servicios del servidor. Luego,
cargar el daemon o servicio en la memoria solamente cuando se ha hecho una solicitud y está en
uso. Hasta que la solicitud se haya hecho, el daemon no estará ejecutándose ni consumirá nada de
memoria. Un problema con la disposición del super-servidor es que puede tomar un poco más de
tiempo acceder al servidor. Esto se debe a que el daemon o servicio necesita cargarse en la
memoria primero. Los dos tipos de super-servidores que se usan en Linux son inetd.d y xinetd.d.
Este curso trata solamente xinetd.d porque éste es el super-servidor que se usa en Red Hat 7.2.
Red Hat usaba inetd.d antes de pasarse a xinetd.d. El super-servidor xinetd.d proporciona
funciones de seguridad adicionales que son similares a los wrappers TCP. Recuerde que los
wrappers TCP se trataron en capítulos anteriores. El archivo xinetd.conf, que se muestra en la
Figura , es el archivo de configuración que controla a xinetd.d. El archivo xinetd.conf contiene
configuraciones y directivas a archivos que están almacenados en /etc/xinetd.d. Cada daemon y
servicio que haya sido configurado para ejecutarse instalará un archivo en /etc/xinetd.d con sus
propias opciones de configuración. Las siguientes secciones describen cómo configurar servidores
individuales para ejecutarlos usando xinetd.d.

Uso de Scripts de Inicio Personalizados


Hay otra forma de iniciar automáticamente un daemon o servicio cuando el sistema arranca.
Colocando el texto apropiado en el script /etc/rc.d/rc.local, es posible iniciar cualquier daemon o
proceso. Este script se ejecuta después de que los scripts de inicio Sys V se ejecutan y carga lo
que se especifica en este script. Este método puede ser práctico para su uso cuando el
desempeño es un problema o cuando el daemon o servidor no pueden ejecutarse en un script de
inicio Sys V. Por ejemplo, para iniciar el servidor web Apache en el script /etc/rc.d/rc.local, que se
muestra en la Figura , coloque la siguiente línea en el archivo:

/etc/rc.d/init.d/httpd start

Es importante comprender que iniciar y ejecutar un daemon o servicio de esta forma no


proporciona ningún medio para detener el servicio como puede hacerse usando el comando stop.
La única forma de detener un daemon que ha sido iniciado colocando una entrada en el script
/etc/rc.d/rc.local es usar los comandos kill o killall después de localizar el número de ID del
proceso (PID) usando el comando ps.

60
Módulo 10: Administración de Linux

10.4.3 http

61
Módulo 10: Administración de Linux

El NOS Linux no es capaz de proporcionar el daemon HTTP a los usuarios. En cambio, un


programa de web-hosting separado y extremadamente popular llamado Apache es la solución
común. Apache proporciona los mismos daemons HTTP para Linux que la herramienta Servicios
de Información de Internet (IIS) proporciona para Windows 2000. La diferencia entre las dos
implementaciones es que la configuración basada en texto CLI de Apache difiere de las opciones
manejadas con menúes de Windows 2000. Además, Apache tiende a ser mucho más complejo,
proporcionando un nivel más profundo de personalización y potencia a los administradores de
sistemas. Una configuración típica del servidor web Apache se muestra en la Figura . Note cómo
el gráfico demuestra cómo cualquier usuario que ejecute cualquier sistema operativo puede
acceder al servidor web. No tiene que estar ejecutando un sistema Linux para acceder al daemon
del servidor web Apache porque el servidor web Apache es accedido mediante el protocolo HTTP,
que es independiente del sistema operativo.

La complejidad adicional de Apache requiere a menudo un sólido conocimiento de web hosting y


temas de seguridad antes de que los administradores del sistema intenten configurar su servicio
HTTP para Linux. El proceso de configuración tiene lugar editando cuatro archivos de configuración
httpd.conf, srm.conf, access.conf, y mimes.types. Éstos se encuentran en el directorio /conf de la
instalación de Apache. Estos archivos contienen todas las configuraciones de inicialización para
Apache, como los tipos de datos a servir y las estructuras de directorios web. Solamente
administradores de sistemas experimentados deberían intentar editar estos archivos en un servidor
web, ya que una configuración inapropiada podría crear "agujeros" de seguridad en el sistema.

Apache, como Linux, está disponible para su descarga sin costo para los usuarios. Apache está
disponible en http://www.apache.org. Diferentes versiones del programa se configuran,
empaquetan y envían con la mayoría de las opciones populares de Linux, como Red Hat Linux. En
tales casos, Linux inicia Apache automáticamente y el servicio HTTP (HTTPD) además de otros
daemons como FTP (FTPD) cada vez que arranca el sistema.

A los usuarios de un sistema Linux habilitado para HTTP se les da típicamente un directorio
especial dentro de su directorio home para colocar archivos web públicos. Este directorio a menudo
se llama "public_html" y se convierte automáticamente en el directorio web raíz del usuario. Un
ejemplo de esta página se muestra en la Figura . Por ejemplo, si un usuario llamado jdoe existe
en un sistema Linux con una dirección IP de 123.45.67.90, el usuario tendría también una dirección
web por defecto:

http://123.45.67.90/~jdoe

A los directorios o archivos ubicados en el directorio public_html se les otorga los permisos
apropiados, la categoría "otros" debe tener permisos de lectura y/o ejecución, y son también
visibles por Internet. Por ejemplo, un subdirectorio llamado "images" y un archivo dentro de él
llamado "mom.jpg" sería visible en la siguiente dirección web:

http://123.45.67.90/~jdoe/ images/mom.jpg

62
Módulo 10: Administración de Linux

10.4.4 FTP

63
Módulo 10: Administración de Linux

Aunque el servicio FTP de Windows 2000 puede o no estar disponible por defecto, el servicio FTP
de Linux no necesita configuración. Esta configuración se encuentra en /etc/rc.d/init.d/xinetd con la
línea mostrada en la Figura .

Si un administrador de sistemas desea inhabilitar el servicio, un signo numeral (#) puede ubicarse
al principio de la línea. De otro modo, Linux inicia automáticamente el daemon FTP (FTPD) durante
el proceso de inicio, y los usuarios pueden usar FTP remotamente a la máquina en cualquier
momento.

Al iniciar sesión en una máquina Linux usando FTP, los usuarios a menudo son llevados
inmediatamente a su directorio home. En otros casos, los administradores de sistemas pueden
crear un directorio especial para que sirva como punto de entrada al sistema para todos los
usuarios. Este directorio raíz virtual aparece ante los usuarios FTP en la parte superior de la
estructura de directorios del sistema y no permite un acceso más alto dentro del sistema.
Implementar este método proporciona a un administrador de sistemas mayor control sobre los
datos y proporciona una seguridad del sistema más estrecha. También proporciona una ubicación
central para crear directorios públicos donde los datos puedan compartirse libremente entre
usuarios FTP. Recuerde que las mismas pertenencias y permisos de archivos y directorios se
aplican en el entorno FTP que los que se aplican en cualquier otro entorno Linux. Por ejemplo, los
usuarios que desean obtener un archivo remoto ubicado en un directorio específico deben tener
permisos de usuario, grupo u otros para ese directorio. De otro modo, el acceso al directorio se
denegará de manera muy similar a como se denegaría en un prompt de comandos estándar de
Linux.

10.4.5 Telnet

64
Módulo 10: Administración de Linux

Telnet permite a un usuario remoto iniciar sesión en un sistema con el propósito de emitir
comandos y acceder a archivos usando una Interfaz de Línea de Comandos (CLI). Telnet fue
desarrollado para que los usuarios finales puedan acceder a potentes mainframes desde
terminales bobas. Hoy, los administradores usan Telnet para administrar remotamente
servidoresde red, impresoras y otros dispositivos. La Figura ilustra un usuario remoto que está
usando Telnet para administrar dispositivos remotos.

La conveniencia de administrar remotamente un sistema no se obtiene sin precio. Configurando un


NOS para que acepte conexiones Telnet, los administradores crean un problema potencial de
seguridad. Telnet debe configurarse de modo tal que solamente los usuarios autorizados puedan
acceder al servidor.

Establecer una contraseña a menudo no es suficiente. Cuando se configura un daemon, como


Telnet, el servidor se ve forzado a escuchar solicitudes. Al descubrir que un servidor está
escuchando solicitudes Telnet, un hacker puede intentar usar la fuerza bruta para irrumpir en el
sistema. Un ataque de fuerza bruta puede involucrar el uso de un programa que adivina la
contraseña, usando un diccionario como fuente de sus adivinaciones.

Incluso si un hacker no puede irrumpir en el sistema usando la fuerza bruta, un servidor en


escucha puede aún ser vulnerable a ataques de Denegación del Servicio (DoS). Un ataque DoS
por lo común involucra la inundación de un servidor con solicitudes falsas, evitando que el servidor
responda a fuentes legítimas.

El protocolo Telnet en sí no es especialmente seguro. Por ejemplo, Telnet envía nombres de


usuario y contraseñas en texto claro, que puede ser leído por otros hosts de la red. Una alternativa
más segura a Telnet es Secure Shell (SSH). Muchas organizaciones implementan SSH en lugar de
daemons Telnet porque SSH cifra las contraseñas y proporciona otras funciones de seguridad.

La mayoría de los sistemas UNIX ejecutan daemons Telnet por defecto. No obstante, a causa de
los problemas de seguridad arriba anotadas, el administrador debe habilitar Telnet manualmente
en Red Hat Linux 7. Configurar daemons Telnet en Red Hat Linux y Windows 2000 se trata en las
siguientes secciones.

Hay un comando CLI estándar para abrir una conexión Telnet a una computadora remota:

telnet hostname | IP_address

Por ejemplo:
telnet computer.company.com
o
telnet 123.45.67.90

65
Módulo 10: Administración de Linux

10.4.6 Protocolo Bloque de Mensaje de Servidor (SMB)

66
Módulo 10: Administración de Linux

El protocolo Bloque de Mensaje de Servidor (SMB) está diseñado para ser un protocolo para
compartir archivos. Ha sido renombrado Sistema Común de Archivos de Internet (CIFS) pero aún
se usa para compartir archivos e impresoras. Este protocolo se utiliza para permitir que sistemas
no Linux ni UNIX monten sistemas de archivos e impresoras Linux en la red. El protocolo SMB
permite que un cliente Windows haga esto de la misma forma en que si estuviera conectado a otro
sistema Windows. Esto proporciona una forma fácil para que los sistemas clientes que corran
windows accedan a un archivo o un servidor de impresión Linux.

Linux incluye una herramienta para hacer esto llamada Samba que proporciona al sistema Linux la
capacidad de interactuar con los sistemas Windows que usan SMB/CIFS. Samba viene con todas
las principales distribuciones de Linux..

Samba usa dos programas clientes llamados smbclient y smbmount. El smbclient es un programa
que permite que otro cliente Linux o UNIX acceda a compartidos en un sistema Linux o Windows
usando un inicio de sesión e interfaz en modo texto. Si server es el nombre del servidor samba
Linux a ser accedido y share es la unidad o directorio a ser accedido, escriba smbclient
//server/share. El smbclient usa el nombre de sesión como nombre de usuario pero aún se
necesitará ingresar una password para acceder al compartido. Una vez autenticado, use comandos
para transferir archivos y obtener listados de archivos y directorios de la misma forma en que si
estuviera conectado usando FTP con los comandos dir, get, y put.

El programa smbclient es muy útil cuando se está restringido a una interfaz en modo texto. Sin
embargo, SMB/CIFS se pensó para brindar acceso directo para compartir archivos y usando el
utilitario smbmount. Éste realmente montará el compartido en Linux. La sintaxis es similar al
comando smbclient. Por esta razón, la ubicación del punto de montaje necesita ser agregada al
comando. Escriba smbmount//server/share/mnt/xxx, donde xxx es la ubicación del compartido de
Linux. Usar el utilitario smbmount tiene muchas ventajas en que monta el compartido directamente
sobre el sistema para que el usuario pueda accederlo como si estuviera en una unidad local. El
usuario puede abrir un documento, editarlo, y luego grabarlo en el servidor.

Otra forma de acceder a un compartido SMB/CIFS es usar el comando mount para montar el
compartido smb. El tipo de sistema de archivos smbfs necesitará ser especificado con el comando
mount. La sintaxis para el comando es la siguiente:

# mount t smbfs// server/share/mnt/xxx

El servidor Samba se configura con el archivo smb.conf que está ubicado en /etc/samba. La
configuración predeterminada de Samba funcionará. Sin embargo, hay un par de items que podría
necesitar configurar antes de que Samba funcione por completo. Primero, si el sistema cliente es
parte de un grupo de trabajo o dominio, este nombre de grupo de trabajo o dominio debe ser
listado en el archivo smb.conf con el parámetro workgroup. Segundo, alguna versión nueva de
Windows usa passwords encriptadas pero lo predeterminado de Samba para eso es usar
passwords encriptadas. Si se está usando una versión de Windows que utiliza passwords
encriptadas, entonces fije el parámetro encrypt passwords en yes en el archivo smb.conf. Luego,
para agregar una password para el usuario, use el comando smbpasswd. La sintaxis para este
comando es la siguiente:

# smbpasswd a jsmith

Esto fijará una password encriptada para jsmith. Luego, finalmente defina cuál será el compartido
en el sistema Linux. La configuración predeterminada permite que los usuarios accedan a sus
directorios principales. Puede encontrar más información en http://www.samba.org y hay libros
completos que sólo hablan del servidor Samba.

67
Módulo 10: Administración de Linux

10.4.7 NFS (Sistema de Archivos de Red)

Similar al protocolo SMB/CIFS, NFS se usa como medio para compartir archivos entre varios
sistemas informáticos conectados en una red. No obstante, la principal diferencia con NFS es que
está diseñado para funcionar en sistemas UNIX. Puesto que la arquitectura de los sistemas Linux
semejan mucho la de los sistemas UNIX, NFS puede usarse para intercambiar archivos entre
sistemas Linux conectados mediante una red y es realmente el método preferido para compartir
archivos entre sistemas Linux.

NFS es el método preferido para compartir archivos entre sistemas Linux y UNIX. Esto se debe a
que los sistemas clientes pueden acceder a partes compartidas NFS en un servidor de archivos
NFS con utilidades de acceso a archivos Linux. Por ejemplo, para acceder a una parte compartida
NFS desde una estación de trabajo cliente, el usuario solamente necesita montar la ubicación de la
parte compartida usando el comando mount. Este comando se ha tratado a lo largo de todo este
capítulo así como en la sección anterior, SMB. Usando este comando, los sistemas cliente Linux
pueden acceder a partes compartidas NFS en el servidor de archivos y usar la parte compartida
como si estuviera almacenada localmente en su sistema. La sintaxis usada desde la estación de
trabajo cliente para montar la parte compartida NFS es la siguiente:

# mount /mnt/xxx

Para desmontar la unidad un usuario tipearía:

# umount /mnt/xxx

68
Módulo 10: Administración de Linux

Hay algunos pasos que el administrador debe dar antes de que el usuario pueda montar la parte
compartida NFS así de fácilmente. Las partes compartidas necesitan montarse en un servidor de
archivos y hacerse disponibles primero. Esto se hace usando el comando mount también pero la
sintaxis es levemente diferente. La sintaxis para este comando es la siguiente:

# mount server:/home/jsmith/mnt/xxx

En este comando, reemplace server con el nombre de host del servidor. Las xxx son la ubicación
de la parte compartida en el servidor de archivos. Tenga en cuenta que los usuarios regulares no
podrán usar el comando mount por defecto. Recuerde que editando el archivo /etc/fstab es
posible habilitar un comando normalmente sólo disponible para la cuenta raíz para que sea
utilizado por cuentas de usuario regulares. Específicamente, la siguiente línea necesitaría
agregarse a este archivo:

server:/home/jsmith/mnt/xxx nfs user,noauto,exec 0 0

Agregando este archivo, cualquier usuario podría montar y desmontar la parte compartida NFS
usando los comandos mencionados anteriormente. Otras opciones para agregar esta línea al
archivo /etc/fstab es dejar la sección no automática del usuario. Esto montaría automáticamente la
parte compartida cada vez que el sistema arranca. No hay contraseña que tenga que usarse para
acceder a la parte compartida. El servidor se basa en la seguridad del lado del cliente para
controlar el acceso a la parte compartida.

10.4.8 Cliente de Correo

69
Módulo 10: Administración de Linux

Al configurar el e-mail en el sistema Linux, el administrador tendrá una amplia variedad de


opciones. El tipo de e-mail seleccionado dependerá de si el módem de conexión telefónica se usa
para acceder al ISP o si hay una conexión permanente a Internet usando una conexión LAN. La
forma en la cual los usuarios envían y reciben e-mail determinará qué configuración se elige para
configurar e-mail en un sistema Linux.

Para configurar el daemon de e-mail en Linux, el administrador necesitará configurar un agente de


usuario de correo, también conocido como mailer, el agente de transferencia de correo (MTA), y el
protocolo de transporte. El mailer proporciona al usuario una interfaz para leer y componer
mensajes. El mailer usa el MTA para transferir el correo desde el emisor al destinatario y viceversa.
El MTA usa un protocolo de transferencia para hacer la transferencia.

Cuando se configura correo en un sistema Linux, el administrador primero necesitará seleccionar


qué tipo de MTA usar. Los dos MTAs importantes son SMTP y Sendmail. Una vez que el MTA está
configurado y el protocolo es determinado, debe configurarse un mailer. Un ejemplo sería IMAP o
POP3. Hay varios mailers populares de los cuales elegir, como Elm, Pine o Netscape Messenger.

10.4.9 Impresión en un entorno Linux

La configuración de impresoras en un entorno Linux puede ser una tarea muy complicada porque
requiere conocimientos de edición y configuración de archivos de impresión específicos. No es un
proceso paso a paso como con un sistema Windows 2000. La configuración puede ser muy
complicada porque es necesario saber los comandos y textos que se deben ingresar en el archivo
apropiado. El proceso funciona en forma similar a Windows 2000 pero no es tan directo. Una
impresora puede ser configurada localmente, o un servidor de impresión puede ser configurado
para que administre los pedidos de impresión y envíe esos pedidos hacia la impresora apropiada.

Componentes de la impresión en Linux


Al igual que con otros sistemas operativos configurados como servidores de impresión, el
componente principal de la impresión en Linux es la cola de impresión. La cola de impresión es lo

70
Módulo 10: Administración de Linux

que reside en un servidor de impresión Linux que manipula todas las tareas de impresión entrantes
dirigidas a las impresoras en red. Las colas de impresión pueden ser configuradas en una variedad
de formas en el servidor de impresión. Normalmente, habrá una cola de impresión por cada
impresora a la que esté sirviendo el servidor de impresión. Sin embargo, es posible configurar
múltiples colas de impresión para una impresora. Esto es útil cuando hay una cola que imprime
hojas de un solo lado y otra cola que imprime las hojas doble faz.

El utilitario Linux que se usa para imprimir se llama lpr. Este comando puede ser ingresado
manualmente en la línea de comando para especificar una tarea de impresión que se quiere enviar
a la cola de impresión u otros programas pueden llamar a este comando para que les permita
imprimir archivos. El programa Daemon de Impresora en Línea (lpd) es el que administra las colas
de impresión en un servidor de impresión Linux. Cuando lpr o computadoras remotas envían un
pedido de impresión a una cola, el programa lpd acepta la tarea de impresión, y la dirige hacia la
impresora correcta. El programa lpd también monitorea las colas de impresión y además dirige las
tareas de impresión desde las colas de impresión hacia las múltiples impresoras. Para realizar
esto, el programa lpd usa el archivo de configuración /etc/printcap, que será tratado en la sección
siguiente.

Otro aspecto importante a saber sobre la impresión con un sistema Linux es que a veces puede ser
difícil de trabajar con ella porque es esencialmente unidireccional. Esto significa que las tareas de
impresión se originan en una aplicación y son enviadas a ciegas a la impresora sin saber el tipo de
impresora a la que se está enviando el trabajo. Linux envía sus tareas de impresión usando el
lenguaje de impresora PostScrip, sin embargo no todas las impresoras son capaces de manipular
el lenguaje Postscript.

El archivo de configuración /etc/printcap


Cuando se configura el servidor de impresión Linux, que a menudo será en un entorno de trabajo,
el administrador necesitará conocer el sistema de spooling de impresión LPRng. El software LPRng
proporciona el servidor con la capacidad de manipular múltiples impresoras y colas además de
proporcionar la seguridad que será necesaria en una red grande. Cuando una tarea de impresión
es enviada al servidor, el daemon de impresora en línea (lpd) procesará el pedido. El otro
componente principal del Software LPRng es el archivo /etc/printcap. Un ejemplo de este archivo
de configuración se muestra en la Figura . Este es el archivo que se edita para definir las
impresoras en la red. Al usar las entradas del archivo /etc/printcap, Linux sabrá cuáles impresoras
están en línea y disponibles para imprimir. El procedimiento recomendad para editar el archivo
printcap es usar el comando printtool, un administrador de sistema de impresión. El comando
printtool será tratado más tarde. Estos pasos son las tareas más complicadas cuando se
administra un servidor de impresión. La edición correcta de estos archivos permitirá al
administrador especificar cosas como permisos y seguridad en una impresora.

Como administrador de sistemas, va a ser importante saber cómo editar el archivo /etc/printcap .
Esto es así porque ése es el archivo que está en el núcleo del software de impresión LPRng. Este
archivo puede ser usado para configurar múltiples impresoras en él, sin embargo se deben usar
diferentes nombres de impresora. Los componentes del archivo /etc/printcap son mostrados en la
Figura .

Después de hacer cambios en este archivo, el daemon de impresora necesitará ser reiniciado.
Tenga presente que es mucho más fácil y más común configurar una impresora con el utilitario de
interfaz GUI printtool. Sin embargo, es importante que cualquier administrador comprenda lo que
hacen todos estos componentes del archivo /etc/printcap. Esto es así porque permite que un
administrador haga cualquier cambio que pudiera necesitar hacer que esté disponible usando la
herramienta GUI. Además, como no todas las distribuciones Linux usan una interfaz GUI, será
necesario poder reconocer las características del archivo /etc/printcap .

71
Módulo 10: Administración de Linux

El utilitario GUI printtool


Red Hat viene con una herramienta GUI que puede ser usada para configurar impresoras llamada
printtool, que se muestra en la Figura . Para usar la herramienta, escriba printtool en un
prompt de shell. Esto lanzará la herramienta de configuración de impresora. Este es un medio más
directo para configurar una impresora y una cola de impresión en un servidor de impresión. Esta
herramienta ayuda en la configuración de una estación de trabajo cliente en la red. Esta
herramienta proporciona menúes paso a paso para seleccionar e ingresar las características
específicas de la impresora que está siendo instalada.

Para configurar una impresora en un servidor de impresión para ser usada por múltiples usuarios,
primero agregue la impresora localmente a la computadora que va a ser el servidor de impresión.
El proceso para hacer esto está en el laboratorio que acompaña a este texto. Una vez que una
impresora ha sido agregada al servidor de impresión, los sistemas Microsoft, Novell y UNIX pueden
imprimir en la impresora configurando el servidor de impresión Linux para permitir que estos
sistemas lo hagan. Los usuarios Linux podrán imprimir automáticamente sólo dándoles permisos.
Esto se hace editando el archivo /etc/lpd.perms.

El traductor Ghostscript
La administración de impresión en un sistema Linux es muy diferente de la de otros sistemas
operativos que podrían ser más comercialmente conocidos o familiares. En otros sistemas
operativos como Windows o Macintosh, la impresora se comunica con el sistema operativo
mediante un controlador de impresora. En otras palabras, el controlador de impresora permite que
la aplicación en el OS se comunique con la cola de impresión. En Linux, el controlador de
impresora funciona en una forma ligeramente diferente. El controlador de impresora en un sistema
Linux o UNIX es parte de Ghostscript.

Ghostscript es una parte de la cola de impresión de Linux. Sin embargo, tenga presente que
algunas aplicaciones e impresoras no necesitarán usar Ghostscript. Ghostscript es un traductor
que permite a los sistemas Linux y UNIX, que usan el lenguaje de impresión PostScript, imprimir en
impresoras no PostScript. Casi todas las impresoras disponibles hoy usan PostScript como el
lenguaje de impresión principal. Por lo tanto, el traductor Ghostscript no será necesario porque la
impresora podrá interpretar la salida del sistema Linux. Sin embargo, algunas impresoras no
soportan el lenguaje de impresión PostScript. Por lo tanto, sin GhostScript, los sistemas Linux y
UNIX no podrían imprimir en las impresoras PsotScript.

La razón por la que los sistemas Linux y UNIX necesitan usar GhostScript es porque no tienen
controladores que trabajen de la misma forma que lo hacen los controladores de Windows con las
colas de impresión. Los programas escritos para Windows fueron desarrollados para comunicarse
con el controlador de impresora. Sin embargo, los programas Linux general PostScript y envían
esta salida a la cola de impresión de Linux. Si la impresora es una impresora no PostScript,
entonces la información no se imprimirá. Esto está combinado con el hecho de que las impresoras
laser se han vuelto muy populares y se convirtieron en las impresoras elegidas para los sistemas
UNIX y Linux. Por lo tanto, los programas escritor para los sistemas Linux y UNIX usan lenguaje
PostScript por defecto.

El problema con los programas UNIX y Linux que sólo generan PostScript es que éste no es usado
comúnmente en las impresoras de precios bajos y medios. Esto no es mucho problema para los
sistemas UNIX, que casi siempre usarán una impresora láser costosa que sea compatible con el
lenguaje PostScript. Sin embargo, los sistemas Linux a menudo son usados con impresoras más
pequeñas y menos costosas que no soportan el lenguaje de impresión PostScript. Por lo tanto,
para permitir que los programas en un sistema Linux que generan salida PostScript hacia una
impresora, se necesita un traductor como GhostScript. Como se mencionó antes, Ghostscript
reside en la cola de impresión de Linux y puede traducir el lenguaje PostScript para impresoras no
PostScript.

72
Módulo 10: Administración de Linux

73
Módulo 10: Administración de Linux

74
Módulo 10: Administración de Linux

10.4.10 Scripts

El sistema operativo Linux también puede dar sitio a muchos lenguajes de scripting diferentes. Los
más comunes y básicos de éstos son las capacidades de scripting incorporadas el shell. Un script
de muestra se exhibe en la Figura . Tenga en cuenta que éste es un script muy simple y breve. A
menudo los scripts pueden ser muy largos y complejos y contendrán numerosas líneas de código
que ejecutan diversas tareas automatizadas. Un script del shell es un archivo de texto que contiene
cualquier cantidad de comandos Linux en una lista sucesiva. Al igual que los lenguajes de scripting
de Windows 2000, Linux ejecuta un script de shell de arriba a abajo. Cada comando se ejecuta a
su vez exactamente como si se hubiera tipeado en el prompt de comandos. Los scripts de shell
también pueden contener lógica de programación como sentencias de bucle y condicionales.
Todos éstos podrían introducirse manualmente en el prompt de comandos. Creando un archivo
script, los usuarios y administradores del sistema pueden combinar una serie de comandos y
parámetros en un único comando de script simplificado.

La mejor forma de comprender este proceso es volver a crear un script simple hello world en Linux.
Usando cualquier editor de texto, como vi, la siguiente línea de código puede introducirse y
guardarse.

echo Hello world

A diferencia de Windows 2000, los scripts de shell de Linux no requieren que se siga ninguna
convención de nombrado en particular. Por lo tanto, el usuario puede asignar cualquier nombre de
archivo Linux estándar al script como hello, helloworld, o hello.world. Luego debe asignarse al
archivo los permisos apropiados de ejecución para el usuario. Luego puede ejecutarse en el
prompt de comandos introduciendo la ruta de directorios relativa y el nombre de archivo:

75
Módulo 10: Administración de Linux

./hello

Esto imprime el mensaje anteriormente codificado en la pantalla según lo esperado. Esta


funcionalidad básica detrás de los scripts de shell es atractiva tanto para los usuarios inexpertos
como para los administradores de sistemas. Puesto que Linux es principalmente un NOS dirigido
por comandos, los usuarios pueden crear fácilmente archivos script haciendo una lista de varios
comandos en un archivo de texto y viendo la salida del script. Una vez que estos conceptos
básicos se hacen familiares, la lógica de programación y sintaxis adicionales pueden aprenderse
con facilidad

76
Módulo 10: Administración de Linux

Resumen

Este capítulo trató el sistema operativo Linux. Algunos de los conceptos importantes a retener de
este capítulo son los siguientes:

• Linux tiene algunos pasos de instalación que no se encuentran en Windows. Por ejemplo,
puesto que Linux está destinado principalmente a ser un Sistema Operativo de Red (NOS)
basado en servidor, hay una opción para hacer una instalación en estación de trabajo o
una instalación en servidor.
• Linux usa X Window como interfaz gráfica pero es importante comprender la Interfaz de
Línea de Comandos (CLI). Puede accederse a la consola de comandos usando la ventana
de terminal o la consola principal.
• Las páginas man describen los comandos online del sistema, llamadas a comandos,
formatos de archivos, y mantenimiento del sistema. Las páginas man online son parte del
OS Linux y se instalan por defecto. Las páginas man asumen la forma de pantallas
basadas en caracteres simples y se accede a ellas desde el prompt de comandos.
• Los shells Linux operan como intérpretes de comandos. El intérprete de comandos del
entorno MS-DOS es similar. Los shells Linux se cargan solamente al sistema cuando el
usuario lo solicita o inicia sesión en el shell. Incluyen al Shell Bourne, al Shell C, al Shell
Korn, y al Shell Bourne Again.
• Los daemons permiten al OS proporcionar funciones como servicios web, archivos
compartidos, intercambio de correo, servicios de directorio, administración remota, y
servicios de impresión. Los daemons no están integrados al sistema operativo como los
servicios lo están en Windows, y se ejecutan como procesos en segundo plano.
• El sistema operativo Linux puede dar lugar a muchos lenguajes de scripting diferentes. Los
más comunes y básicos de ellos son sus capacidades de scripting incorporadas al shell.
Un script del shell es un archivo de texto que contiene cualquier cantidad de comandos
Linux enumerados sucesivamente. Un administrador del sistema puede combinar una serie
de comandos y parámetros en un único comando script simplificado.

Uno de los deberes más importantes de un administrador de sistemas es proteger la información


almacenada en los servidores de red. El siguiente capítulo detalla la administración avanzada de
un NOS.

77

Você também pode gostar