Está en la página 1de 11

ARCHIVOS DE CONFIGURACIÓN EN LINUX

Este artículo explica archivos de configuración en un sistema Linux que


controla permisos de usuarios, aplicaciones de sistema, demonios, servicios
y otras tareas administrativas en un entorno multiusuario y multitarea.
Estas tareas incluyen administrar cuentas de usuario, cuotas de disco, e-
mails y grupos de noticias, y configurar parámetros del kernel. También
clasifica los archivos de configuración presentes en un sistema Red Hat
Linux basados en su uso y los servicios que afectan.

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.

/etc/mtab Esto cambia a la vez que


/proc/mount. En otras palabras,
cuando los sistemas de archivos se
montan y desmontan, el cambio se
refleja inmediatamente en este
archivo
/etc/fstab Muestra los sistemas de archivos
que se pueden montar en la
máquina. Esto es importante porque
cuando la máquina arranca, ejecuta
el comando mount –a, que monta
todos los sistemas de archivos
marcados con un “1” en fstab
/etc/mtools.conf Configuración para todas las
operaciones (mkdir, copy, format,
etc) en un sistema de archivos tipo
DOS

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

/etc/gated.conf Configuración para gated. Sólo lo


usa el demonio de gated.
/etc/gated.version Contiene el nº de versión del
demonio gated
/etc/gateway Usado opcionalmente por el
demonio de routed
/etc/networks Lista nombres y direcciones de
redes accesibles desde la red a la
que está conectada la máquina.
Usado por el comando routed.
/etc/protocols Lista los protocolos actualmente
disponibles. Ver la página man.
/etc/resolv.conf Le dice al kernel qué servidor de
nombres se debe buscar cuando un
programa pide resolver una
dirección IP
/etc/rpc Contiene reglas o instrucciones para
RPC, que puede usarse en llamadas
NFS, montaje remoto de sistema de
archivos, etc.
/etc/exports Sistema de archivos a exportarse
(NFS) y permisos
/etc/services Traduce los nombres de servicio de
red a números de puerto/protocolo.
Leído por inetd, telnet, tcpdump
y otros programas.
/etc/inetd.conf Archivo de configuración para
inetd. Ver la página man. Mantiene
una entrada para cada servicio de
red para el que inetd deba controlar
demonios o servicios. Los servicios
han de estar corriendo, pero se
pueden comentar en /etc/services
para que no estén disponibles
aunque estén corriendo. Formato:
<nombre_servicio> <sock_type>
<protocolo> <flags> <usuario>
<ruta_servidor> <argumentos>
/etc/sendmail.cf Archivo de configuración del
programa sendmail
/etc/sysconfig/network Indica NETWORKING=yes/no. Leído al
menos por rc.sysinit
/etc/sysconfig/network- Scripts de configuración de la red
scripts/if* Red Hat

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.

/etc/lilo.conf contiene los parámetros de línea de


comandos por defecto para el
arranque y también diferentes
imágenes con las que arrancar.
Puedes ver esta lista presionando
Tab en el prompt de LILO
/etc/logrotate.conf mantiene los archivos de log
presentes en el directorio /var/log
/etc/identd.conf identd es un servidor que
implementa el protocolo estándar
IDENT de identificación de usuario
como se especifica en el documento
RFC 1413. Identd opera buscando
conexiones TCP/IP específicas y
devolviendo el nombre del usuario
propietario de la conexión. También
puede devolver otra información.
Ver la página man de identd
/etc/ld.so.conf configuración del Dynamic Linker
/etc/inittab éste es cronológicamente el primer
archivo de configuración en UNIX. El
primer programa lanzado tras
arrancar una máquina UNUIX es
init, que sabe qué ha de lanzar,
gracias a inittab. Es leído por init
y controla el arranque del proceso
principal
/etc/termcap una base de datos que contiene
todos los tipos de terminal posibles
y sus capacidades

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

Cambiando los archivos de configuración


Cuando se cambia un archivo de configuración hay que asegurarse de que
el programa que usa esa configuración se reinicie si no está controlado por
el administrador de sistemas o el kernel. Un usuario normal no suele tener
privilegios para iniciar o parar programas de sistema y/o demonios.
El kernel
Cambiar los archivos de configuración del kernel afecta inmediatamente al
sistema. Por ejemplo, cambiar el archivo passwd para añadir un usuario
inmediatamente habilita ese usuario. También hay algunos parámetros
personalizables del kernel en el directorio /proc/sys en cualquier sistema
Linux. El acceso de escritura a estos archivos se da sólo al super-usuario, los
demás sólo tienen acceso de lectura. Los archivos de este directorio están
clasificados de la misma forma que la fuente del kernel. Cada archivo de
este directorio representa un dato de la estructura del kernel que puede ser
modificado dinámicamente para cambiar el rendimiento del sistema.
Nota: antes de cambiar cualquier valor en alguno de estos archivos,
asegúrate de que lo sabes todo sobre el archivo para evitar daños
irreparables al sistema.

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

Demonios y programas del sistema


Un demonio es un programa que siempre corre en segundo plano. Los más
comunes son in.ftpd (demonio del servidor ftp), in.telnetd (demonio del
servidor de telnet) y syslogd (demonio de logging del sistema). Algunos
demonios, mientras corren, miran muy de cerca los archivos de
configuración y se recargan automáticamente cuando cambian. Pero la
mayoría de los demonios no se recargan automáticamente. Necesitamos
“decirles” de alguna forma que el archivo de configuración ha cambiado y
que debe ser recargado. Esto se puede hacer (en sistemas Red Hat)
reiniciando los servicios usando el comando service. Por ejemplo, si hemos
cambiado la configuración de red, tendremos que introducir el comando:
Service network restart
Nota: los servicios suelen ser los scripts presentes en el directorio
/etc/rc.d/init.d/* y son iniciados por init cuando arranca el sistema. Así que
para reiniciar un servicio también puedes hacer lo siguiente:
/etc/rc.d/init.d/<script-para-el-servicio> start | stop |
status
Start, stop y status son los valores que estos scripts toman como
entrada para realizar la acción.

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.

Archivos de configuración del usuario: . (punto) y rc


Hemos visto cómo los programas se pueden configurar fácilmente , pero si a
alguien no le gusta la forma en que está configurado un programa en /etc/
no puede simplemente ir a /etc y cambiar los archivos si es un usuario
normal; estos archivos son propiedad –desde el punto de vista del sistema
de archivos- de root. Por eso muchos programas de usuario definen dos
archivos de configuración: el primero a nivel de “system”, localizado en /etc/
y el otro, “prívate” para el usuario, que puede encontrarse en su
directorio /home/. Por ejemplo, en mi sistema tengo instalada la útil
herramienta wget. En /etc/ hay un archivo /etc/wgetrc, que describe mi
configuración personalizada (que puede cargarse sólo cuando yo, el usuario,
ejecuto el comando wget). Otros usuarios también pueden tener el .wgetrc
en su directorio home (/home/other); este archivo será leído, por supuesto,
sólo cuando el usuario ejecute el comando wget. En otras palabras, el
archivo /etc/wgetrc proporciona los valores por defecto de wget, mientras
que el archivo /home/xxx/.wgetrc lista las personalizaciones de un usuario
concreto. Es importante comprende que esta es la “regla general” y que no
es necesariamente cierta en todos los casos. Un programa como pine, por
ejemplo, no tiene archivos en /etc/ sino sólo la configuración personalizada
en el directorio home del usuario, en un archivo llamado .pinerc. Otros
programas pueden tener sólo un archivo de configuración por defecto en
/etc/ y pueden no dejar a los usuarios personalizarlo (es el caso de sólo
algunos de los archivos de configuración en el directorio /etc).

Archivos rc y . (punto) comúnmente usados

Nombre de archivo Descripción


~/.bash_login Ver man bash. Tratado por bash
como ~/.bash_profile si éste no
existe
~/.bash_logout Ver man bash. Suplido por los shells
de bash login al cierre
~/.bash_profile suplido por los shells de bash login
tras /etc/profile
~/.bashrc ver man bash. Suplido por los shells
de bash no interactivos con el login
~/.emacs leído por emacs al inicio de sesión
~/.forward si contiene una dirección de e-mail,
todo el correo destinado al
propietario de ~ será reenviado a
esa dirección de email
~/.fvwmrc ~/.fvwm2rc archivos de configuración de tvwm y
fvwm2 (el gestor de ventanas X
Window básico)
~/.hushlogin ver man login. Causa un login
“quiet” (sin avisos de correo,
información de último inicio de
sesión ni MOD)
~/.mail.rc archivo init de usuario para el
programa de correo
~/.ncftp/ directorio para el programa ncftp,
contiene favoritos, logs, macros,
preferencias. Ver man ncftp. El
propósito de ncftp es proporcionar
una interfaz potente y flexible al
Internet standard File Transfer
Protocol. Se intenta que reemplace
al programa de ftp que viene con el
sistema
~/.profile ver man bash. Tratado por bash
como ~/.bash_profile si está y
~/.bash_login no existe, y usado
por otras shells heredadas
~/.pinerc configuración de pine
~/.muttrc configuración de Mutt
~/.exrc configuración de vi que puede
controlarse con este archivo.
Ejemplo: set ai sm ruler
escribiendo la línea anterior en este
archivo hace que vi ponga auto-
indentación, paréntesis y muestre
los números de línea y opciones de
filas y columnas
~/.vimrc archivo de configuración por defecto
de vim. Lo mismo que .exrc
~/.gtkrc GNOME toolkit
~/.kderc configuración de KDE
~/.netrc nombres de login por defecto y
contraseñas para el ftp
~/.rhosts usado por las herramientas “r”:
rsh, rlogin, etc. Seguridad muy
débil desde que la impersonalización
de host es fácil
1. Debe ser propiedad del
usuario (propietario de ~/) o
superusuario
2. Lista los hosts desde los que
los usuarios pueden acceder a
esta cuenta
3. Ignorado si es un enlace
simbólico
~/.rpmrc ver man rpm. Leído por rpm si
/etc/rpmrc no está presente
~/.signature mensaje de texto que se anexará
automáticamente a los correos
enviados desde esta cuenta
~/.twmrc archivo de configuración para twm
(The Window Manager)
~/.xinitrc leído por X al inicio (no por el script
xinit). Inicia algunos programas.
Ejemplo: exec /usr/sbin/startkde
si la línea anterior está presente en
este archivo, se iniciará el gestor de
ventanas KDE cuando el comando
startx sea ejecutado desde esta
cuenta
~/.xmodmaprc este archivo es pasado al programa
xmodmap, y puede llamarse de
cualquier forma (~/.Xmodmap y
~/.keymap.km por ejemplo)
~/.xerverrc lanzado por xinit como servidor X
si puede encontrar X para ejecutar
~/News/Sent-Message-IDs historial de correo por defecto para
gnus
~/.Xauthority leído y escrito por el programa xdm
para manejar la autorización. Ver las
páginas man de X, sdm y xauth
~/.Xdefaults, ~/.Xdefaults- leído por aplicaciones X durante el
hostname arranque. Si no se encuentra el
archivo –hostname, se busca
.Xdefaults
~/.Xmodmap apunta a .xmodmaprc; antes
.xinitrc usaba este nombre
~/.Xresources normalmente el nombre de archivo
pasado a xrdb para cargar la base
de datos de recursos de X, para
evitar la necesidad de las
aplicaciones de leer un archivo
.Xdefaults demasiado largo