archivos de configuración en linux

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, emails 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 /etc/hosts Le dice al controlador de dominio cómo buscar los nombres de host (normalmente /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 /etc/hosts.deny Arranque y login/logout /etc/issue y /etc/issue.net

Página como hosts_access. Leída al menos por tcpd Página como hosts_access. Leída al menos por tcpd

/etc/redhat-release /etc/rc.d/rc

/etc/rd.c/rc.local /etc/rc.d/rc.sysinit /etc/rc.d/rc/rcX.d

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 Incluye una línea en la que dice la versión y nombre de Red Hat. Lo usa rc.local 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. No es oficial. Puede ser llamado desde rc, rc.sysinit, o /etc/inittab Normalmente el primer script para todos los niveles 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 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 Configuración para todas las operaciones (mkdir, copy, format, etc) en un sistema de archivos tipo DOS

/etc/fstab

/etc/mtools.conf

Administración de sistema /etc/group

/etc/nologin /etc/passwd /etc/rpmrc

/etc/securetty

/etc/usertty y /etc/shadow

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 Si existe el archivo /etc/nologin, sólo dará acceso a root. Los demás usuarios serán rechazados Ver man passwd . contiene información de las cuentas de usuario, incluidas contraseñas 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 Contiene los nombres de dispositivo de las líneas tty (uno por línea, sin /dev/) en las que root puede autenticarse. Contiene la información de contraseñas de los usuarios encriptada y opcionalmente la

/etc/shells /etc/motd

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 Mantiene la lista de posibles shells disponibles para el sistema 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 /etc/gated.version /etc/gateway /etc/networks Configuración para gated. Sólo lo usa el demonio de gated. Contiene el nº de versión del demonio gated Usado opcionalmente por el demonio de routed Lista nombres y direcciones de redes accesibles desde la red a la que está conectada la máquina. Usado por el comando routed. Lista los protocolos actualmente disponibles. Ver la página man. Le dice al kernel qué servidor de nombres se debe buscar cuando un programa pide resolver una dirección IP Contiene reglas o instrucciones para RPC, que puede usarse en llamadas NFS, montaje remoto de sistema de archivos, etc. Sistema de archivos a exportarse (NFS) y permisos Traduce los nombres de servicio de red a números de puerto/protocolo. Leído por inetd, telnet, tcpdump y otros programas. Archivo de configuración para inetd. Ver la página man. Mantiene

/etc/protocols /etc/resolv.conf

/etc/rpc

/etc/exports /etc/services

/etc/inetd.conf

/etc/sendmail.cf /etc/sysconfig/network /etc/sysconfig/networkscripts/if*

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> Archivo de configuración del programa sendmail Indica NETWORKING=yes/no. Leído al menos por rc.sysinit Scripts de configuración de la red 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 mantiene los archivos de log presentes en el directorio /var/log 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 configuración del Dynamic Linker é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 una base de datos que contiene

/etc/logrotate.conf /etc/identd.conf

/etc/ld.so.conf /etc/inittab

/etc/termcap

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 threads-max ctrl-alt-del Descripción máximo número de tareas que puede correr el kernel si el valor es 1, presionando esta secuencia de teclas se reinicia limpiamente el sistema

sysrq osrelease ostype hostname domainname modprobe

si el valor es 1, Alt-SysRq está activo muestra la release del sistema operativo muestra el tipo de sistema operativo el nombre de máquina dominio de red del que la máquina es parte 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 ~/.bash_login ~/.bash_logout ~/.bash_profile ~/.bashrc ~/.emacs ~/.forward Descripción Ver man bash. Tratado por bash como ~/.bash_profile si éste no existe Ver man bash. Suplido por los shells de bash login al cierre suplido por los shells de bash login tras /etc/profile ver man bash. Suplido por los shells de bash no interactivos con el login leído por emacs al inicio de sesión si contiene una dirección de e-mail, todo el correo destinado al propietario de ~ será reenviado a esa dirección de email archivos de configuración de tvwm y fvwm2 (el gestor de ventanas X Window básico) ver man login. Causa un login “quiet” (sin avisos de correo, información de último inicio de sesión ni MOD) archivo init de usuario para el programa de correo 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 ver man bash. Tratado por bash como ~/.bash_profile si está y ~/.bash_login no existe, y usado por otras shells heredadas configuración de pine configuración de Mutt configuración de vi que puede

~/.fvwmrc ~/.fvwm2rc ~/.hushlogin

~/.mail.rc ~/.ncftp/

~/.profile

~/.pinerc ~/.muttrc ~/.exrc

~/.vimrc ~/.gtkrc ~/.kderc ~/.netrc ~/.rhosts

~/.rpmrc ~/.signature ~/.twmrc ~/.xinitrc

~/.xmodmaprc

~/.xerverrc ~/News/Sent-Message-IDs ~/.Xauthority ~/.Xdefaults, ~/.Xdefaultshostname

controlarse con este archivo. Ejemplo: set ai sm ruler escribiendo la línea anterior en este archivo hace que vi ponga autoindentación, paréntesis y muestre los números de línea y opciones de filas y columnas archivo de configuración por defecto de vim. Lo mismo que .exrc GNOME toolkit configuración de KDE nombres de login por defecto y contraseñas para el ftp 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 ver man rpm. Leído por rpm si /etc/rpmrc no está presente mensaje de texto que se anexará automáticamente a los correos enviados desde esta cuenta archivo de configuración para twm (The Window Manager) 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 este archivo es pasado al programa xmodmap, y puede llamarse de cualquier forma (~/.Xmodmap y ~/.keymap.km por ejemplo) lanzado por xinit como servidor X si puede encontrar X para ejecutar historial de correo por defecto para gnus leído y escrito por el programa xdm para manejar la autorización. Ver las páginas man de X, sdm y xauth leído por aplicaciones X durante el arranque. Si no se encuentra el archivo –hostname, se busca

~/.Xmodmap ~/.Xresources

.Xdefaults apunta a .xmodmaprc; antes .xinitrc usaba este nombre 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

Sign up to vote on this title
UsefulNot useful