Introducción
Cada programa de Linux es una archivo ejecutable que contiene la lista de
códigos que la CPU ejecuta para llevar a cabo operaciones específicas. Por
ejemplo, ls es el comando que proporciona el archivo /bin/ls, que contiene
la lista de instrucciones necesaria para mostrar la lista de archivos en el
directorio actual en pantalla. El comportamiento de prácticamente todos los
programas puede personalizarse según tus preferencias o necesidades
modificando sus archivos de configuración.
¿Hay una configuración estándar de formato de archivos en Linux?
No. Los usuarios nuevos de Linux se suelen frustrar porque cada archivo de
configuración parece un nuevo reto. En Linux cada programador es libre de
elegir el formato de archivo de configuración que prefiera. Las opciones de
formato varían según /etc/shells, que contiene una lista de posibles shells
separados por una línea, y a los complejos archivos de Apache
/etc/httpd.conf
¿Qué son los archivos de configuración de sistema?
El kernel en sí mismo puede considerarse un “programa”. El kernel necesita
saber la lista de usuarios y grupos en el sistema, y manejar los permisos de
los archivos (esto es, determinar si un archivo puede ser abierto por un
usuario específico, de acuerdo con los permisos, UNIX_USERS). Estos
archivos pueden no ser leídos específicamente por programas, sino por una
función proporcionada por una librería de sistema, y usado por el kernel. Por
ejemplo, un programa que necesita la contraseña (encriptada) de un usuario
no debería abrir el archivo /etc/passwd sino que debería llamar a la función
de librería de sistema getpw(). Este tipo de función también se conoce
como system call. Va al kernel a través de la librería de sistema para abrir el
archivo /etc/passwd y después busca la contraseña del usuario en
concreto. La mayoría de los archivos de configuración de Red Hat están en
el directorio /etc a menos que se especifique lo contrario. Los archivos de
configuración pueden clasificarse en las siguientes categorías:
Archivos de acceso
/etc/host.conf Le dice al controlador de dominio
cómo buscar los nombres de host
(normalmente /etc/hosts)
/etc/hosts Contiene una lista de hosts
conocidos (en la red local). Puede
usarse si la IP no se genera de forma
dinámica. Para una resolución
simple del nombre de máquina,
/etc/hosts.conf normalmente dice
que busque aquí antes de preguntar
al DNS o NIS
/etc/hosts.allow Página como hosts_access. Leída al
menos por tcpd
/etc/hosts.deny Página como hosts_access. Leída al
menos por tcpd
Arranque y login/logout
/etc/issue y /etc/issue.net Estos archivos los lee mingetty (y
programas similares) para mostrar
una cadena de “bienvenida” al
usuario que se conecta a través de
terminal (issue) o telnet
(issue.net). Incluyen unas pocas
líneas diciendo la versión de Red
Hat, nombre e ID del kernel. Los usa
rc.local
/etc/redhat-release Incluye una línea en la que dice la
versión y nombre de Red Hat. Lo usa
rc.local
/etc/rc.d/rc Normalmente funciona para todos
los niveles como argumento. Por
ejemplo, para arrancar tu máquina
en modo gráfico (X-Server), ejecuta
el siguiente comando: init 5. El
nivel 5 arranca el sistema en modo
gráfico.
/etc/rd.c/rc.local No es oficial. Puede ser llamado
desde rc, rc.sysinit,
o /etc/inittab
/etc/rc.d/rc.sysinit Normalmente el primer script para
todos los niveles
/etc/rc.d/rc/rcX.d Scripts desde rc (X se refiere a
cualquier número entre 1 y 5). Estos
directorios son específicos del
runlevel. Cuando un sistema
arranca, identifica el runlevel para
iniciarlo, y después llama a todos los
scripts de inicio presentes en el
directorio específico para ese
runlevel. Por ejemplo, el sistema
normalmente comienza con el
mensaje “entering run-level 3” antes
de los mensajes de arranque; esto
significa que todos los scripts init del
directorio /etc/rc.d/rc3.d serán
llamados
Sistema de archivos
El kernel proporciona una interfaz para mostrar algunas de sus estructuras
de datos que pueden resultar útiles para determinar parámetros del sistema
como dispositivos inicializados, estadísticas de memoria, etc. Esta interfaz
va por separado conocido como sistema de archivos /proc. Muchas
utilidades de sistema usan los valores presentes en este sistema de
archivos o mostrando las estadísticas de sistema. Por ejemplo, el archivo
/proc/modules lista los módulos actualmente cargados en el sistema. Esta
información es leída por el comando lsmod, que la muestra de forma legible.
De la misma forma, el archivo mtab especificado en la siguiente tabla lee el
archivo /proc/mount, que contiene los sistemas de archivos montados
actualmente.
Administración de sistema
/etc/group Contiene los nombres de grupo
válidos y los usuarios incluidos en
los grupos especificados. Un usuario
puede estar presente en más de un
grupo si realiza varias tareas, por
ejemplo si un usuario es el
administrador y también miembro
del grupo “direccion”, la entrada en
el archivo de grupo será algo como
user: * : group id : dirección
/etc/nologin Si existe el archivo /etc/nologin,
sólo dará acceso a root. Los demás
usuarios serán rechazados
/etc/passwd Ver man passwd . contiene
información de las cuentas de
usuario, incluidas contraseñas
/etc/rpmrc Comando de configuración de rpm.
Todas las opciones de línea de
comandos de rpm pueden
configurarse juntas en este archivo
para que todas las opciones se
apliquen globalmente cuando se
ejecuten rpms
/etc/securetty Contiene los nombres de dispositivo
de las líneas tty (uno por línea, sin
/dev/) en las que root puede
autenticarse.
/etc/usertty y /etc/shadow Contiene la información de
contraseñas de los usuarios
encriptada y opcionalmente la
antigüedad de las contraseñas. Los
campos que incluye son:
Login name
Encrypted password
Días que hace que la contraseña fue
cambiada por última vez
Días antes de que se tenga que
cambiar la contraseña
Días que hace que se avisa al
usuario de que su contraseña va a
expirar
Días que hace que la cuenta está
deshabilitada por contraseña
expirada
Días que hace que la cuenta está
deshabilitada
/etc/shells Mantiene la lista de posibles shells
disponibles para el sistema
/etc/motd Mensaje del Día (Message of the day
o MOTD), se usa cuando el
administrador quiere mostrar algún
mensaje a todos los usuarios de un
servidor Linux.
Networking
Comandos de sistema
Los comandos de sistema se supone que son exclusivos para controlar el
sistema, y hacer que todo funcione correctamente. Todos los programas
como login (que realiza la fase de autenticación de un usuario en la
consola) o bash (proporciona interacción entre un usuario y el pc) son
comandos de sistema. Los archivos asociados con ellos son particularmente
importantes. Esta categoría tiene los siguientes archivos de interés para
usuarios y administradores.
Demonios
Un demonio es un programa que corre en modo no-interactivo. Típicamente,
las tareas de los demonios son relativas al área de red: esperan conexiones
para poder ofrecer servicios a través de ellas. Hay muchos demonios para
Linux, desde servidores web a servidores FTP.
/etc/syslodg.conf archivo de configuración del
demonio syslogd. Es el demonio
que cuida de los mensajes de inicio
de sesión que vienen de otros
programas al sistema. Este servicio
en particular es usado por los
demonios que de otra forma no
tendría medios para señalizar la
presencia de posibles problemas o
mandar mensajes a los usuarios
/etc/httpd.conf el archivo de configuración de
Apache, servidor web. Este archivo
no suele estar en /etc, puede estar
en /usr/local/httpd/conf o en
/etc/httpd/conf/, pero para
asegurarse, necesitas comprobar la
instalación de Apache
/etc/conf.modules el archivo de configuración para
o /etc/modules.conf kerneld. Irónicamente, no es el
kernel “como demonio”, sino un
demonio que se encarga de cargar
módulos de kernel adicionales “al
vuelo” cuando se necesitan
Programas de usuario
En Linux (y en UNIX en general) hay innumerables programas para los
usuarios. El archivo de configuración más común para los usuarios es
/etc/lynx.cfg. Es el archivo de configuración de lynx, el conocido
buscador textual. A través de este archivo puedes definir el proxy, el juego
de caracteres a usar, etc. El siguiente código muestra una parte del archivo
lynx.cfg que puede modificarse para cambiar la configuración del proxy.
Estas preferencias se aplican por defecto a todos los usuarios que usen lynx
en sus respectivas sesiones, a menos que un usuario sobreescriba el archivo
de configuración por defecto especificando - - cfg – “mylynx.cfg.
Configuración del proxy en /etc/lynx.cfg
.h1 proxy
.h2 HTTP_PROXY
.h2 HTTPS_PROXY
.h2 FTP_PROXY
.h2 GOPHER_PROXY
.h2 NEWS_PROXY
.h2 NNTP_PROXY
# Lynx version 2.2 y superiores soportan el uso de servidores
proxy que puedan actuar
# como firewalls y cachear servidores. Son preferibles a los
antiguos servidores de puerta
# de enlace. Cada protocolo usado por Lynx puede usarse de forma
separada usando
# variables de entorno PROTOCOL_proxy (ver la guía de usuario de
Lynx). Si no lo has
# configurado de forma externa, puedes hacerlo mientras esté
corriendo via este archivo de
# configuración. No sobreescribirá preferencias externas. La
variable no_proxy puede
# usarse para inhibir el uso del proxy a las regiones
seleccionadas de la Web. Ten en
# cuenta que en VMS estas variables están configuradas como
procesos lógicos en lugar de
# símbolos, para preservar el lowercasing y outlive la imagen de
Lynx
#
.ex15
http_proxy:http://proxy3.in.ibm.com:80/
ftp_proxy:http://proxy3.in.ibm.com:80/
#http_proxy:http://penguin.in.ibm.com:8080
#ftp_proxy:http://penguin.in.ibm.com:8080/
.h2 NO_PROXY
# La variable NO_PROXY puede ser una lista de cadenas separado
por comas que defina las
# zonas sin proxy en el DNS
.ex
No_proxy:demiurge.in.ibm.com, demiurge
Archivos en /proc/sys/kernel
Nombre de archivo Descripción
threads-max máximo número de tareas que
puede correr el kernel
ctrl-alt-del si el valor es 1, presionando esta
secuencia de teclas se reinicia
limpiamente el sistema
sysrq si el valor es 1, Alt-SysRq está
activo
osrelease muestra la release del sistema
operativo
ostype muestra el tipo de sistema operativo
hostname el nombre de máquina
domainname dominio de red del que la máquina
es parte
modprobe especifica si modprobe debe iniciarse
automáticamente al inicio, y carga
los módulos necesarios
Programas de usuario
Un programa de usuario o sistema lee su archivo de configuración cada vez
que se lanza. Recuerda que algunos programas del sistema son lanzados
cuando se inicia el sistema, y su comportamiento depende de lo que han
leído en los archivos de configuración en /etc/. Así que la primera vez que
inicia un programa de usuario se lee la configuración por defecto de los
archivos presentes en el directorio /etc/. Después el usuario puede
personalizar el programa usando los archivos rc y . (punto) como se
explicará más adelante.