ant

ADMINISTRACIÓN DEL SISTEMA
4.1

sig

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.

4.1 Introducción

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.

4.1.2 La cuenta root

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

4.1.3 Abusando del sistema

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.

4.1.5 Fijando las reglas

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