5- Administración Esencial del Sistema

  • Usuarios y Grupos
  • Apagando Correctamente
  • Resumen


    Introducción

    Para fines relacionados con la mantención y administrativos del sistema tenemos al administrador, que en el caso de Linux es root. Este debe mantener el sistema y a los usuarios pertenecientes a él en total armonía. Esto implica que si somos los administradores de una computadora con dos usuarios o tal vez estamos a cargo de un gran servidor con una gran cantidad de usuarios, necesitamos saber como controlar a  estos usuarios del sistema, además de saber como apagar nuestro sistema de una forma correcta. A simple vista estas pueden parecer tareas sencillas, pero enrealidad, no lo son, mantener un sistema lleno de usuarios y con unos servicios ejecutandoce es una gran tarea que no cualquiera es capaz de realizar de una forma correcta. Pero para iniciarlos en esto debemos tener al menos una básica idea de lo hay detrás del sistema de contraeñas y otros datos interesantes.


    Usuarios y Grupos

    Scripts y programas proporcionados por el sistema

    Para poder manejar los usuarios y grupos, tenemos a nuestra disposición programas y scripts que nos proporciona el mismo sistema. Slackware nos permite trabajar con los usuarios gracias a programas tales como: adduser, userdel(8), chfn(1), chsh(1), passwd(1), useradd(8), usermod(8). Y para trabajar con los grupos nos proporciona programas como: groupadd(8), groupdel(8) y groupmod(8). Todos estos programas pueden ser usados por root. Los usuarios solo podrán usar programas como chfm(1), chsh(1) y passwd(1).

    Lo primero que verémos será como agregar un usuario paso a paso  al sistema. Esto lo logramos gracias al comando adduser. Entonces ejecutamos adduser y seguimos los pasos:

    # adduser
     
    Login name for new user []: KeeNaN

    Aquí nos pide el login name( o nombre de entrada ) para el nuevo usuario, entonces nostros escribimos el nombre del usuario ( que en mi caso será KeeNaN) y presionamos <ENTER>. Esto nos lleva a la siguiente interrogante que es:

    User ID ('UID') [ defaults to next available ]:

    El UID o identificación del usuario nos indica y diferencia las prioridades de los usuarios en Linux. Cada usuario debe poseer un UID único, el que comienza por el 1000 en Slackware. Generalmente no nos tendremos que preocupar por esto, ya que el programa adduser se encarga de dejarnos el UID siguiente que esté habilitado para el usuario que estamos agregando, entonces presionamos <ENTER>. Esto nos llevará  a la selección del grupo para el usuario como se puede apreciar más abajo :

    Initial group [ users ]:

    Todos los usuarios por default son dejados en el grupo "users". Aunque nosotros también podemos asignarle otro grupo, pero bueno, eso depende de las neesidades de cada uno. Como el grupo users es el escogido por default simplemente presionamos <ENTER> y pasamos al siguiente nivel.

    Additional groups (comma separated) []:

    Este nivel nos pregunta si deceamos agregar a nuestro nuevo usuario a un grupo adicional. Como has de deducir, se puede dejar un usuario en varios grupos, estos deben ser indicados por comas separadas en este nivel. La opción de tener en varios grupos a un usuario es útil por varias razones, por ejemplo, si deceamos modificar archivos de nuestro sitio web, o si deceamos jugar, o también por razones de seguridad o para cualquier tipo de labor compartida que deceemos realizar con otro(s) usuario(s).

     jellyd's home directory [/home/jellyd]:

    El directorio Home tiene por defecto el valor /home. Si usted ejecuta un sistema muy grande, es posible que haya movido los archivo home a un directorio diferente. Esto le permite cambiar donde estará el directorio /home del usuario. Usted también puede desactivar una cuenta cambiando el directorio home de algún usuario a algo como /bin/false,aunque este no es el método recomendado.

    Home directory [ /home/slackware ]

    Aquí nos pregunta por el directorio HOME del usuario que estamos creando, que en este caso es slackware. El programa por default nos da el HOME /home/slackware, si este está bien para nosotros ( que será en la mayoría de los casos) simplemente pasamos a la siguiente etapa presionando <ENTER>, sino es así, entonces le indicamos el directorio que deceamos usar.

    Shell [ /bin/bash ]

    Ahora se nos pregunta que tipo de shell usaremos para nuestro usuario. La shell escogida por default es bash ( que generalmente estará bien), pero nosotros tenemos otras opciones como /bin/csh, ksh, rksh, tcsh y zsh las cuales si deceamos usar  indicaremos .
     
    Expiry date (YYYY-MM-DD) []:

    Ahora debemos indicar la fecha de expiración de la cuenta que estamos creando. El formato para indicar esto es Año-Mes-Día, por ejemplo 2020-12-06. Esto les es verdadera mente útil a aquellas personas que proporcionan cuentas con servicios como http o algún otro, si la persona que arrienda esa shell con los servicios no paga la cuenta expira, asi de simple. Si realmente deceamos que esta cuenta no tenga una fecha de expiración determinada simplemente presionamos <ENTER> y pasamos a la siguiente etapa.

    New account will be created as follows:
     
    ---------------------------------------
    Login name.........:  slackware
    UID......................   [ Next available ]
    Initial group..........   users
    Additional groups:   [ None ]
    Home directory...:   /home/slackware
    Shell....................:   /bin/zsh
    Expiry date..........:  [ Never ]
     
    This is it... if you want to bail out, hit Control-C.  Otherwise, press
    ENTER to go ahead and make the account.

    Ahora se nos muestra toda la información que fuimos ingresando paso a paso en las etapas anteriormente descritas y nos da la chance de cancelar la creación de la cuenta si nos hemos equivocado al ingresar algún dato presionando Control+C. En el caso de que todo se encuetre correcto procedemos a crear la cuenta presionando <ENTER>.

    Ahora nos aparecerá la opción de cambiar la información del usuario creado ( que en este caso es slackware ) o simplemente presionar <ENTER> para dejar los campos por defecto.

    Creating new account...
     
     
    Changing the user information for slackware
    Enter the new value, or press ENTER for the default
            Full Name []: slackware                   -----------------------------> Nombre completo
            Room Number []: 99999                  -----------------------------> Número de habitación
            Work Phone []: 589673                    -----------------------------> Número de trabajó
            Home Phone []: 489426                   -----------------------------> Número del hogar
            Other []: 125786                               -----------------------------> Y algún otro número que deceemos agregar

    Lo descrito en la etapa anterior es completamente opcional. Pero, si por algún motivo, razón o circunstancia debemos cambiar esta información lo podemos lograr usando el comando chfn. Puede ser una buena idea ingresar los datos como el nombre completo y un número de telefono para poder ubicar a esa persona por algún motivo.

    Changing password for slackware
    Enter the new password (minimum of 5, maximum of 127 characters)
    Please use a combination of upper and lower case letters and numbers.
    New password:
    Re-enter new password:
    They don't match; try again.
    New password:
    Re-enter new password:
    Password changed.
     
     
    Account setup complete.
     
    Finalmente nosotros debemos ingresar la contraseña para el usuario que estamos creando. El largo mínimo es de 5 caracteres y su máximo de 127. Al teclear la contraseña se nos pedirá re-entrarla para asegurarnos que sea la correcta, si en esta repetición la contraseña no coincide  nos arrojará un mensaje como este "They don't match; try again", entonces se nos dará la oportunidad de teclear nuevamente la contraseña. Una vez que las contraeñas coinciden el procesos de adición del nuevo usuario se encontrará completo.

    Quitando usuarios

    Para eliminar un usuario del sistema es bastante sencillo. Para esto simplemente ocupamos el comando userdel seguido del nombre del usuario que deceamos eliminar (todo esto como root). Debemos tomar en cuenta que si el usuario se encuentra logeado en el sistema en esos instantes o si hay algún procesos ejecutandoce que pertenezca al usuario no podremos eliminar su cuenta del sistema. Por ejemplo, ahora vamos a eliminar el mismo usuario ( usuario slackware) que usamos para agregarlo al sistema :

       # userdel slackware

    Esto elimina la cuenta del del usuario del sistema, y por ende lo elimina de los archivos /etc/passwd, /etc/shadow y /etc/group, pero no elimina el directorio usado como su HOME. Pero si deceamos eliminar la cuenta del usuario del sistema y su directorio HOME, necesitamos usar la opción -r. Esta opción solamente elimina el directorio HOME del usuario aparte de eliminarlo de los archivos ya mencionados, pero no elimina archivos del usuarios en otro sistema de archivos, estos deben ser buscado y borrados manualmente por el administrador. Ejemplo de lo descrito anteriormente :

      # userdel -r slackware

    Los programas que nos proporciona Linux para agregar o quitar grupos son enrealidad bastante simples, estos son groupadd(8) y groupdel(8). El comando groupadd crea una nueva cuenta de grupo usando los valores especificados en la línea de comando y los valores por default del sistema. El nuevo grupo será agregado a los archivos del sistema que sean necesarios, los que son /etc/group y /etc/gshadow. El comando groupdel modifica los archivos de cuenta del sistema (osea /etc/group y /etc/gshadow ), borrando cualquier entrada referida al grupo que se está eliminando. Todo esto lo podemos hacer manualmente si esque lo deceamos editando los archivos mencionados

    Para crear un grupo tecleamos lo siguiente:

       # groupadd

    Y para eliminarlo tecleamos :

       # groupdel cvs

    Agregando o quitando usuarios manualmente

    Es posible modificar los grupos o usuarios en el sistema manualmente, ya sea agregandolos, eliminandolos o modificandolos. Para muchas personas esto es lo más conveniente, pero dejaré eso a su criterio, después que léa el procedimientoclaro está.

    Para el propósito de explicar como agregar o quitar un usuario manualmente, usaré el mismo usario que e usado para los ejemplos anteriores ( el usuario slackware)
    Primero lo primero, los archivos de usuario son /etc/passwd(5), /etc/shadow(5) y /etc/group(5).

    /etc/passwd(5) es el  un simple archivo de texto, este contiene una lista de las cuentas del sistema, dandonos para cada cuenta alguna información valiosa como el ID de un usuario, el ID del grupo, el directorio home, el shell, etc. En estos días mucha gente corre alguna version de la suit shadow password,  lo que significa que en vez de aparece la password encriptada en el archivo /etc/passwd esta se encuentra en el archivo /etc/shadow,este archivo solo puede ser leido por root, mientras que /etc/passwd puede ser leido por un usuario, pero no modificado. Aún así, se indicada la existencia de una password para un usuario en el archivo /etc/passwd con una "x". /etc/groups(5) es un archivo ASCII en donde son definidos los grupos a los que pertenecen los usuarios del sistema.

    Cada línea que vemos en el archivo /etc/passwd pertenece a un usuario del sistema. Lo siguiente será examinar la línea del usuario slackware en el archivo /etc/passwd, la que se verá mas o menos así:

    slackware:x:1001:100:slackware,99999,589673,489426,125786:/home/slackware:/bin/bash

    Como vemos cada dato está separado por dos putnos ":". Lo primero que nos aparece es el nombre del usuario, en este caso es slackware, luego nos aparece una "x" la cual indica que el usuario  tiene una password encriptada que reside en el archivo /etc/shadow. Luego nos encontramos con nuestro UID el cual es el 1001, este debe ser único para cada usuario, ya que si dos usuarios tuvieran el mismo UID serían practicamente el mismo usuario. Después tenemos el número 100 que nos indica que el usuario pertenece al grupo users. Posteriormente tenemos la información que ingresamos al agregar el usuario con el comando adduser, separada por una coma ",". Después tenemos el directorio que usa el usuario como HOME. Y finalmente tenemos el tipo de shell que usa este usuario.

    Ahora veamos como se vee el archivo /etc/shadow referente al usuario slackware :

    slackware:$1$KaG0R4nj$Z8E.AwgRH4qwLocbdZKY0.:12184:0:99999:7:::

    Nuevamente aquí cada línea indicada en este archivo es para un solo usuario y cada dato es separado por dos puntos al igual que en el archivo /etc/passwd. El primer dato es el nombre de usuario, osea slackware. Luego tenemos la contraseña que se encuentra encriptada, luego tenemos la fecha en que se cambió la contraeña por última vez, luego tenemos los días que deben pasar para que la contraseña pueda ser cambiada nuevamente, después los días que faltan para que nuestra password de usuario expire,  el día que la cuenta se anulará y lo último que es un campo reservado.

    La gran mayoría de los datos en este archivo referentes al usuario es sobre información de expliración de la cuenta, nosotros no necesariamente debemos saberla o indicarla para agregar un usuario manualmente. Para esto nosotros simplemente debemos poner el nombre del usuario, escribir cualquier cosa en donde va la contraseña encriptada ( menos el caracter dos puntos ) además de quitarle la "x" al archivo /etc/passwd referente al mismo usuario, o si dejamos el campo en blanco donde va la password del usuario no importa si tenemos o no la "x" indicada en el archivo /etc/passwd. Luego dejaremos en blanco la siguiente información ( donde se indican los dias desde que la contraeña fué cambiada) y en las siguientes informaciones un 0, luego un 99999 y finalmente un 7 y las demás dejarlas en blanco tal como se indican en el ejemplo.

    Si lo que deceamos agregar un usuario a un grupo que no existe debemos crearlo editando el archivo /etc/group. Un ejemplo de una nueva línea sería así:

    pv:x:102:patrick, slackware,root

    Es línea representa un grupo llamado "pv", con una contraseña indicada por la "x", un GID o ID de grupo y finalmente los usuarios que forman parte de ee grupo separados por una coma ( , ). Para que estos cambios surjan efecto en los usuarios que se encuentran en el sistema, estos deben volver a logearse.

    Ahora procederémos a crear la nueva contraseña para el usuario agregado con el comando passwd y para crear su HOME usamos el comando mkdir para crear el directorio especificado en el archivo /etc/passwd.

    Si por ejemplo tenemos instalado sendmail(8), nosotros necesitamos crear un archivo en /var/spool/mail con los permisos correspondientes y propiedades para este nuevo usuario. Por ejemplo :

       # touch /var/spool/mail/slackware
       # chown slackware.users /
    var/spool/mail/slackware
       # chmod 660 /var/spool/mail/slackware


    Estos comandos crean el archivo con sus respectivos permisos, dueño y grupo necesarios para que el usuario slackware pueda gozar del beneficio de sendmail.

    Ahora si lo que deceamos es quitar un usuario del sistema, simplemente debemos ir haciendo los pasos inversos que usamos para crear un usuario. Con esto me refiero a quitar las líneas referente al usuario en los archivo /etc/passwd, /etc/passwd y debemos eliminar nuestro nombre de cualquier línea que aparezca en el archivo /etc/group. Pero si lo que deamos es eminimar un grupo, debemos remover la línea referente al grupo en el archivo /etc/group. Finalmente debemos eliminar todos esos archivos que creamos para que el usuario gozara de un servicio, como es el caso de sendmail

    Cambiando Contraseñas

    Para cambiar nuestra contraseña señalada en el archivo /etc/passwd y encriptada en el archivo /etc/shadow tenemos a nuestra disposición el comando passwd(1). Por ejemplo, nos logeamos con el usuario que deceamos cambiarle la password y tecleamos :

    $ passwd
    Changing password for slackware
    Old password:
    Enter the new password (minimum of 5, maximum of 127 characters)
    Please use a combination of upper and lower case letters and numbers.
    New password:
    Re-enter new password:
    Password changed.


    Primero se nos pregunta por nuestra vieja contraseña ( que es la actual ). Luego nos pide la nueva contraseña, finalmente nos pide reentrarla y passwd verifica que sean iguales y termina el procesos de cambio de password.

    A diferencia de los usuarios password puede cambiar las contraseña de los usuarios gracias al comando su(1) más el nombre del usuario. Ejemplo :

       # passwd slackware

    El procedimiento anterior se repite, con la diferencia de que a root no le pide la contraseña actual sino que simplemente la nueva.

    Si deceamos desactivar la cuenta de algún usuario por algún motivo, razon o circunstancia, lo podemos hacer tecleando :

       # passwd -l <usuario_a_afectar>

    La opción -l inhabilita una cuenta, cambiando la contraseña a un valor que no coincida con ningún valor cifrado posible. Para devolverle la contraseña al usuario afectado usamos la opción -u como se muestra a continuación :

      # passwd -u <usuario_afectado>

    Cambiando la Informacion del Ususario

    Los dos tipos de información que un usuario puede modificar cuando el decee son su shell y su información como usuario. Para esto Slackware Linux nos deja usar los comandos chsh (change shell) y chfn (change finger) para modificar estos valores.

    Los usuarios pueden escoger una entre las tantas shells listadas en el archivo /etc/shells. Pero la más común es bash, pero esto depende de cada usuario obviamente. Para cambiarlo usamos el comando chsh:


     $ chsh
    Password:
    Changing the login shell for slackware
    Enter the new value, or press return for the default
            Login Shell [/bin/zsh]: /bin/zsh

    Primero nos pedirá la contraseña del usuario, y posteriormente la ruta de la nueva shell que deceamos usar. Lo más seguro es verificar si la shell que deceamos usar se encuentra en el archivo /etc/shells, ya que este archivo contiene las shells válidas en el sistema. Obviamente root puede cambiarle la shell a un usuario con el comando seguido del nombre del usuario.

    La información como usuario es opcioal al momento de crear el usuario, pero es recomendable tener una forma de poder ubicar ese usuario. Por si nos hemos cambiado de teléfono o si hemos ingresado un dato mal lo podemos corregir gracias al comando chfn. Este comando se usa igual que chsh e igualmente root puede modificar la información de usuario tipeando el comando chfn más el nombre del usuario.

    Apagando Correctamente

    Una de las cosas importantes ( como tantes en Linux ) es el correcto apagado del sistema. Este no debe ser apago simplemente presionando el botónde poder, ya que, el filesystem podría ser dañanado y por ende el correcto funcionameinto del sstema también. Esto sucede, porque siempre hay programas ejecutandoce en el sistema aun nosotros no estemos haciendo nada, estos procesos se ejecutan en background controlando el sistema y manteniendo varios archivos. Cuando nosotros apagamos la computadora de golpe ( osea simplemente presionando el boton de power), los archivos no son cerrados de una manera correcta y sencillamente se dañan. Dependiendo del daño al cual son expuestos por un usuario desconsiderado, estos podrian dañarce permanentemente, lo que significa problemas para nuestro sistema y bueno, nadie quiere tener problemas.

    Hay varios métodos correctos para poder reiniciar o apagar nuestro sistema. El primero es con el programa llamado shutdown(8). Este puede ser usado tanto para apagar el sistema como para reiniciarlo. Ejemplo :

       # shutdown -h now

    Aquí le decimos a shutdown que apague el computador en ese mismo instante. La opción -h viene de halt ( detener el sistema) y la palabra now viene de ahora. Este lo debemos usar con conciencia, ya que, si somos administradores de un servidor en el que están logeados varios usuarios y nosotros llegamos y ejecutamos el comando, todos los usuarios se verán afectados por la repentina desición del administrador y no quedarán muy contentos. Pero para solucionar esto nosotros podemos enviar un mensaje a los usuarios que el sistema por ejemplo se apagará en 5 minutos. Para esto tecleamos lo siguiente

       # shutdown -h +15

    Esto apaga el sistema dentro de 15 minutos ) lo que les da el tiempo suficiente a los demás usuarios para guardas las tareas que estén realizando para continuar más tarde.  Los sistemas relevantes fijan sus momentos fuera de servicio, osea por adelantado y dan advertencias acerca de èl en /etc/motd(5).

    Si lo que deceamos es reiniciar el sistema en ez de apagarlo tenemos a disposición el mismo comando pero reemplazamos la opción "-h"( de halt)  por -r ( de reebot). Ejemplo :

       # shutdown -r now

    Aquí también podemos indicar un reinicio del sistema y darles a los usuarios un tiempo determinado como lo hicímos con la opción "-h". Como te haz de dar cuenta hay una serie de opciones que podemos suar junto al comando shutdow, si necesitas más informacion revisa las páginas del manual para mas detalle.

    La otra forma de apagar el sistema o reiniciarlo e susando los comandos halt(8) y reboot(8). Estos comandos se nos harán conocidos, ya que tiene el mismo significado que las opciones -h y -r de shutdown y además sirven para lo mismo. Ejemplo para apagar el sistema:

       # halt

    Ejemplo para reiniciarlo:

       # reboot

    Una forma de un nivel más bajo( que sea más bajo no significa que sea inferior, sino que es más primitivo) para apagar o reiniciar el sistema es establecer una comunicación directamente con el init. Los métodos anteriores son los más convenientes de usar a la hora de realizar las labores de apagado o reiniciado del sistema.  Los init son explicados en el capítulo 4 "Configuración del sistema" indicados por el título "Runlevel Initialization Scripts"

    Usamos runlevel 0 para apagar el sistema así:
      
       # telinit 0

    Usamos telinit 6 para reiniciar el sistema así:
      
       # telinit 6

    El último método de reiniciar el sistema es presionando las teclas ctrl+alt+supr, para esto no necesitamos ser administradores ( osea root) simplemente necesitamos tener un contacto físico con la máquina que deceamos reiniciar. Lo que realmente ocurre es que se ejecuta el programa /usr/sbin/ctrlaltdel(8). Y obviamente si este archivo tiene los permisos modificados o no existe este método no funcionará.


    Resumen

    En este capítulo explico los procedimientos para agregar y quitar usuarios y grupos. Ahora usted debe saber o tener una leve noción de como realizar estas tareas manualmente y usando los scripts proporcionados por el sistema. Además de saber apagar o reiniciar la computadora de una manera adecuada para no dañar el funcionamiento del sistema. Estas son uno de los tantos conocimientos importantes que una persona debe tener al momento de administrar una computadora en casa o un gran servidor usando Linux obviamente.


    Control de Procesos Indice Comandos Basicos de Red