ADMINISTRACIÓN DEL SISTEMA |
4 Administración del Sistema
Igual que cada perro tiene su día, cada sistema tiene su administrador, y poner en marcha el sistema es un trabajo
muy importante y a veces consume mucho tiempo, incluso si se es el único usuario en el sistema.
En Unix existen dos tipos de usuarios principalmente
- Administradores
- Resto de usuarios
El administrador, en Unix conocido como root, es el responsable de que la instalación que tiene a su cargo
esté el mayor tiempo posible dando un servicio de calidad al resto de los usuarios (programadores, clientes, etc.)
Dependiendo de la instalación de Unix podrán existir dos o más administradores, encargándose cada uno de una tarea específica,
como por ejemplo, seguridad, salvaguarda de información, instalación de software, etc.
Como sabe, UNIX distingue entre diferentes usuarios para que lo que hagan a los demás y al sistema pueda ser regulado (uno no desearía que nadie pudiese leer nuestras cartas de amor, por ejemplo). Cada usuario recibe una cuenta que incluye un nombre de usuario, un directorio inicial, y otras cosas por el estilo. Además de las cuentas dadas a personas reales, existen cuentas especiales, definidas por el sistema, que tienen privilegios especiales. La más importante de estas es la cuenta raíz, con el nombre de usuario root.
4.1.1 Tareas del Administrador
- Añadir y quitar usuarios del sistema. Este proceso debería estar automatizado, ya que suele ser una tarea rutinaria.
- Incorporar nuevo hardware al sistema. Esta tarea implicará desde instalar fisicamente el hardware, hasta configurar el driver y los programas
de usuario.
- Salvaguarda de información. Es una de las principales tareas de un administrador.
- Incorporación de nuevo software. Instalarlo y probarlo antes de que el resto de los usuarios empieze a usarlo.
- Seguimiento y monitorización de sistema. Comprobar que los distintos servicios alojados en el sistema fucionan correctamente.
- Resolución de problemas. Encontrar y resolver los problemas más comunes de la instalación, y en caso de no poder resolverlos consultar con el
soporte técnico adecuado.
- Gestionar la documentación del sistema. Es muy importante tener siempre accesible y actualizada la documentación.
- Política de seguridad. Comprobar que la política de seguridad de la instalación se lleva a cabo.
- Ayuda a otros usuarios. Soporte técnico.
Los usuarios normales están restringidos normalmente para que no puedan dañar a nadie más en el sistema, solo a
ellos mismos. Los permisos de los ficheros en el sistema están preparados para que los usuarios normales no tengan
permitido borrar o modificar ficheros en directorios compartidos por todos los usuarios (como son /bin y /usr/bin).
Muchos usuarios también protegen sus propios ficheros con los permisos adecuados para que otros usuarios no puedan
acceder o modificar estos ficheros.
Estas restricciones desaparecen para root. El usuario root puede leer, modificar o borrar cualquier fichero en el
sistema, cambiar permisos y pertenencias en cualquier fichero, y ejecutar programas especiales, como pueden ser los
que particionan un disco o crean sistemas de ficheros. La idea básica es que la persona o personas que ejecutan y
cuidan del sistema entren como root cuando sea necesario para realizar tareas que no pueden ser ejecutadas por un
usuario normal. Puesto que root puede hacer todo, es fácil cometer errores que tengan consecuencias catastróficas
cuando se trabaja utilizando esta cuenta.
Por ejemplo, como un usuario normal, si inadvertidamente se intentase borrar todos los ficheros en /etc, el sistema
no lo permitiría. Sin embargo, como usuario root, el sistema no diría nada. Es muy simple el dañar el sistema
utilizando root. La mejor forma de evitar accidentes es:
· Pensárselo dos veces antes de apretar [return] en un comando que pueda causar daño. Por ejemplo, si se va a
borrar un directorio, antes de pulsar [return], releer el comando completo y asegurarse que es correcto.
· No acostumbrarse a utilizar root. Cuanto mas confortable se encuentre uno trabajando con el usuario root, más seguro
que se confundirán los privilegios con los de un usuario normal.
Por ejemplo, puede uno pensar que se está conectado como Decker, cuando realmente se esta conectado como root.
· Utilice un marcador distinto para la cuenta root. Se debe cambiar el fichero .bashrc o el .login de root para poner
el marcador del interprete a algo distinto del marcador de usuario normal(marcador = prompt). Por ejemplo, mucha gente
utiliza el carácter "$" como marcador para los usuarios normales, y reserva el carácter "#" como marcador para el
usuario root.
· Conectarse como root solo cuando sea absolutamente necesario. Y desconectarse tan pronto como se haya terminado el
trabajo. Cuanto menos se use la cuenta root, menos posibilidades habrá de dañar el sistema.
Por supuesto, existe una variante de hackers de UNIX que utilizan root para prácticamente todo.
Pero cada uno de ellos ha cometido, en algún momento, algún error tonto como root y corrompido el sistema.
La regla general es que hasta que se familiarice con la falta de restricciones de root, y este cómodo utilizando
el sistema sin dichas restricciones, procure conectarse como root lo menos posible.
Por supuesto, todo el mundo comete errores. El mismo Linus Torvalds borró accidentalmente una vez el árbol de
directorios completo del núcleo de su sistema. Horas de trabajo se perdieron para siempre. Afortunadamente,
sin embargo, gracias a su conocimiento del código del sistema de ficheros, fue capaz de reiniciar el sistema y
reconstruir el árbol de directorios del disco a mano.
Pongámoslo de otra forma, si se imagina la utilización de la cuenta root como la utilización de un sombrero mágico
especial que le da montones de poderes, pudiendo, con un gesto de la mano, destruir ciudades enteras, es una buena
idea de lo que es ser un poco cauto con lo que se hace con las manos. Puesto que es fácil mover la mano de manera
destructiva por accidente, no es una buena idea el llevar el sombrero mágico cuando no es necesario, a pesar de la
maravillosa sensación.
1. root no tiene restricciones de seguridad
2. algunas tareas de administración pueden realizarse sin ser root
3. el comando su permite convertirse en root
Junto con el sentimiento de poder llega la tendencia a hacer daño. Este es uno de los puntos oscuros de la
administración de sistemas UNIX, pero todo el mundo pasa por ello en algún momento. Muchos usuarios de sistemas
UNIX nunca tienen la posibilidad de manejar este poder en los sistemas UNIX de universidad y de empresas, solo los
altamente cualificados (y altamente pagados) administradores de sistemas llegan a conectarse como root. De hecho, +
en muchas de esas instituciones, la clave de root es un secreto celosamente guardado: es tratado como el
Sagrado Grial de la institución. Se monta mucho jaleo con la conexión como root; está visto como un sabio y a la vez
espantoso poder, dado solo a un reducido grupo de elegidos.
Este tipo de actitud hacia la cuenta root es, sencillamente, el tipo de actitud que alimenta la malicia y el desprecio.
Ya que root es tan atractivo, cuando algunos usuarios tienen su primera oportunidad de conectarse como root
(ya sea en un sistema Linux, o en cualquier otro sitio), la tendencia es a utilizar los privilegios de root de forma
descuidada. Yo he conocido "administradores de sistemas" (por llamarlos de alguna forma) que leen el correo de otros
usuarios, borran ficheros de usuario sin avisar y que, de forma general, se comportan como niños cuando se les da un
"juguete" poderoso.
Puesto que root tiene tantos privilegios en el sistema, se necesita una cierta madurez y autocontrol para utilizar
la cuenta de la forma para la que esta diseñada, para ejecutar el sistema. Existe un código de honor no hablado
entre el administrador y los usuarios del sistema. ¿Como se sentiría si su administrador de sistemas leyese su
correo electrónico o mirase sus ficheros? Aun no hay ningún precedente legal firme acerca de la intimidad
electrónica en sistemas de ordenadores de tiempo compartido. En sistemas UNIX, el usuario root tiene la posibilidad
de saltarse todos los mecanismos de seguridad y privacidad del sistema. Es importante que el administrador del sistema
desarrolle una relación de confianza con los usuarios del mismo. Es algo en lo que nunca se puede insistir lo
suficiente.
4.1.4 Como proceder con los usuarios
La seguridad en UNIX es bastante laxa por diseño. La seguridad del sistema fue un pensamiento posterior; el sistema se
desarrolló originalmente en un entorno donde las intrusiones de un usuario en otro eran algo inaudito. Por esto,
incluso con medidas de seguridad, aún existe la posibilidad de que usuarios normales hagan daño.
Los administradores de sistemas pueden tomar dos posturas cuando traten con usuarios abusivos: ser paranoicos o
confiados. El administrador de sistemas paranoico normalmente causa mas daño que el que previene. Una de mis citas
favoritas es, "nunca atribuyas a la malicia nada que pueda ser atribuido a la estupidez." Dicho de otra forma,
muchos usuarios no tienen la habilidad o el conocimiento para hacer daño real al sistema. El 90% del tiempo, cuando
un usuario causa problemas en el sistema (por ejemplo, rellenando la partición de usuarios con grandes ficheros, o
ejecutando múltiples instancias de un gran programa), el usuario simplemente desconoce que lo que esta haciendo es un
problema. He ido a ver a usuarios que estaban causando una gran cantidad de problemas, pero su actitud estaba causada
por la ignorancia no por la malicia.
Cuando se enfrente con usuarios que puedan causar problemas potenciales no sea acusativo. La antigua regla de
"inocente hasta que se demuestre lo contrario" sigue siendo valida. Es mejor una simple charla con el usuario,
preguntándole acerca del problema, en lugar de causar una confrontación. Lo último que se desea es estar entre los
malos desde el punto de vista del usuario.
Esto levantaría un montón de sospechas acerca de si usted, el administrador de sistemas, tiene el sistema correctamente
configurado. Si un usuario cree que usted le disgusta o no le tiene confianza, le puede acusar de borrar ficheros o
romper la privacidad del sistema. Esta no es, ciertamente, el tipo de situación en la que quisiera estar.
Si encontrase que un usuario ha estado intentando "romper" el sistema, o ha estado haciendo daño al sistema de forma
intencionada, no devuelva el comportamiento malicioso a su vez. En vez de ello, simplemente, dele un aviso, pero sea
flexible. En muchos casos, se puede cazar a un usuario "con las manos en la masa" dañando al sistema, avísele.
Dígale que no lo vuelva a repetir. Sin embargo, si le vuelve a cazar haciendo daño, entonces puede estar absolutamente
seguro de que es intencionado. Ni siquiera puedo empezar a describir la cantidad de veces que parecía que había un
usuario causando problemas al sistema, cuando de hecho, era o un accidente o un fallo mío.
La mejor forma de administrar un sistema no es con un puño de hierro. Así puede ser como se haga lo militar,
pero UNIX no fue diseñado para ese tipo de disciplina. Tiene sentido el escribir un conjunto sencillo y flexible de
reglas para los usuarios, pero recuerde, cuantas menos reglas tenga, menos posibilidades habrá de romperlas.
Incluso si sus reglas para utilizar el sistema son perfectamente razonables y claras, siempre habrá momentos en que
los usuarios romperán dichas reglas sin pretenderlo. Esto es especialmente cierto en el caso de usuarios UNIX nuevos,
que están aprendiendo los entresijos del sistema. No está suficientemente claro, por ejemplo, que uno no debe bajarse
un gigabyte de ficheros y enviárselo por correo a todos los usuarios del sistema. Los usuarios necesitan comprender
las reglas y por que están establecidas.
Si especifica reglas de uso para su sistema, asegúrese de que el motivo detrás de cada regla particular este claro.
Si no lo hace, los usuarios encontrarán toda clase de formas creativas de saltársela y no saber que en realidad la
están rompiendo.
4.1.6 Lo que todo esto significa
No podemos decirle como ejecutar su sistema al ultimo detalle. Mucha de la filosofía depende en como se use el sistema.
Si se tienen muchos usuarios, las cosas son muy diferentes de si sólo tiene unos pocos o si se es el único usuario del
sistema. Sin embargo, siempre es una buena idea en cualquier situación comprender lo que ser administrador de sistema
significa en realidad.
Ser el administrador de un sistema no le hace a uno un mago del UNIX. Hay muchos administradores de sistemas que
conocen muy poco acerca de UNIX. Igualmente, hay muchos usuarios "normales" que saben más acerca de UNIX que lo que
cualquier administrador de sistemas.
También, ser el administrador de sistemas no le permite el utilizar la malicia contra sus usuarios. Aunque el sistema
le dé el privilegio de enredar en los ficheros de los usuarios, no significa que se tenga ningún derecho a hacerlo.
Por ultimo, ser el administrador del sistema no es realmente una gran cosa. No importa si sus sistema es un pequeño 386
o un super ordenador Cray. La ejecución del sistema es la misma. El saber la clave de root no significa ganar dinero
o fama. Tan solo le permitirá ejecutar el sistema y mantenerlo funcionando. Eso es todo.
4.1.7 Herramientas del Administrador
Intérprete de comandos (sh, csh, bash, etc .) y los siguientes comandos :
Para Gestionar Procesos ...
. Procesos activos : ps y top
. Terminación : kill
. Pausa : sleep
Para Gestionar el Disco ...
. Ocupación : du y df
. Sistema de ficheros : mkfs, fsck, mount, tune2fs ...
. Avanzados : debugfs
Para Gestionar la Memora ...
. Ocupación : vmstat y free
. Añadir areas de Intercambio : mkswap
Para Gestionar la Red ...
. Interfaces : ifconfig
. Rutas : route
. Estado : netstat
Para Gestionar los Respaldos ...
. De ficheros y directorios individuales : tar, cpio y cp
. De sistemas de ficheros : dump y restore
Utilidades ...
. Búsquedas de cadenas :grep...
. Búsquedas de ficheros : find...
. Editor de textos :vi, emacs