Ir al contenido principal

La terminal de GNU/Linux y algunos de sus comandos (y IV)


En este último artículo dedicado a los comandos de la terminal me dedicaré a explicar algunos comandos de administración del sistema para los que se requiere privilegios de superusuario.

Si se dispone de entorno gráfico estas tareas se pueden realizar utilizando las utilidades de las que dispone Ubuntu. Sin embargo, en mi opinión, no está de más conocer como realizarlas en la consola.

  • useradd: permite crear un nuevo usuario o modificar la información por defecto del nuevo usuario. Los administradores suelen usar adduser en vez de esta utilidad.
    La sintaxis de este comando es:
    #useradd [opciones] LOGIN
    Las opciones más comunes que se pueden aplicar al comando son:
    • -c, --coment COMENTARIO: COMENTARIO es cualquier cadena de texto que generalemente es una descripción corta del usuario y que, generalmente, se utiliza para poner el nombre completo del mismo. Si la cadena de texto contiene espacios conviene delimitarlas con comillas dobles.
    • -d, --home HOME_DIR: el nuevo usuario será creado usando HOME_DIR como valor para el directorio de inicio del usuario. Por defecto, se suele añadir el nombre de usuario al directorio base del sistema (/home) para crear el directorio de inicio. El directorio HOME_DIR no tiene porqué existir al invocar el comando, pero no será creado automáticamente.
    • -g, --group GRUPO: GRUPO se refiere al grupo inicial del usuario. Se puede especificar el nombre del grupo primario del usuario, o el GID (número del grupo), pero el grupo debe existir previamente al uso con esta opción.
    • -G, --groups GRUPO1[,GRUPO2,GRUPO3,...]: sirve para especificar una lista de grupos suplementarios de los que el usuario también es miembro. La lista ha de estar separada por comas y sin ningún espacio en blanco entre los nombres de los grupos.
    • -k, --skel SKEL_DIR: especifica el directorio que guarda la estructura y archivos para copiar a todos los nuevos usuarios en su directorio de inicio. Este directorio por defecto es /etc/skel, pero se puede especificar otro usando este modificador. Esta opción sólo es válida si se especifica el modificador -m.
    • -m, --create-home: crea el directorio de inicio del usuario si éste no existe. Por defecto, el comando no crea el directorio de inicio si este no existe.
    • -p, --password PASSWORD: sirve para especificar la contraseña del usuario. PASSWORD se encripta usando crypt automáticamente. Si no se especifica esta opción, la contraseña está deshabilitada por defecto.
    Veamos un ejemplo de este comando que creará un usuario de nombre pepitopp, con el directorio de inicio /home/pepito y la contraseña tururu:
    #useradd -c "Pepito Perez Perez" -d /home/pepito -m -p tururu pepitopp

  • adduser: añade un usuario al sistema de acuerdo con la opciones de la línea de comandos o con la información de configuración especificada en el fichero /etc/adduser.conf. Tiene una interfaz más amigable que el comando useradd. Por defecto crea el directorio de inicio con la configuración del directorio /etc/skel, corre un script para personalizar la cuenta y tiene otras características.
    Lo normal es utilizarlo sin opciones y que use las contenidas en el fichero /etc/adduser.conf, por lo que su sintaxis sería:
    #adduser USUARIO
    Usándolo así, se crearía un usuario de nombre USUARIO con el directorio de inicio especificado en /etc/adduser.conf, por defecto, /home/USUARIO, y, a continuación, se le pedirían datos extra, como la contraseña, el nombre completo del usuario...

    Este comando también admite opciones, algunas de ellas son:
    • --conf ARCHIVO: usa el fichero de nombre ARCHIVO en vez del archivo del configuración por defecto, es decir, el /etc/adduser.conf.
    • --disable-login: no corre el programa passwd para establecer la contraseña del usuario. El usuario no podrá acceder al sistema hasta que una contraseña se establezca.
    • --disable-password: como --disable-login, pero acceder al sistema es posible (por ejemplo, utilizando claves SSH RSA), pero no usando la autentificación por contraseñas.
    • --home DIR: usa DIR en vez del directorio de usuario por defecto.
    • --no-create-home: no crea el directorio de inicio.

  • userdel: elimina un usuario del sistema. La sintaxis de este comando es:
    #userdel [opciones] USUARIO

    Las opciones que admite esta orden son:
    • -f, --force: fuerza la eliminación del usuario, incluso si el usuario está dentro del sistema en ese momento. También elimina el directorio de inicio del usuario y la cola de correo, aún cuando otro usuario distinto esté usando el directorio de inicio como suyo o no sea el propietario de la cola de correo. Si USERGROUPS_ENBL está definida en el fichero /etc/login.defs y si existe un grupo con el mismo nombre que el del usuario, este grupo será eliminado, incluso si es el grupo primario de otro usuario.
      NOTA: esta opción es peligrosa y puede dejar el sistema en un estado de inconsistencia.
    • -r, --remove: los archivos del directorio de inicio serán eliminados junto a éste y la cola de correo del usuario. Los archivos ubicados en otros sistemas de ficheros se tendrán que eliminar manualmente.

  • groupadd: añade un nuevo grupo al sistema. La sintaxis de esta orden es:
    #groupadd [opciones] NOMBRE
    Algunas de las opciones que se pueden utilizar son:
    • -f, --force: esta opción causa que el comando termine con el estado de éxito, incluso si el grupo existe. Cuando se usa conjuntamente con la opción -g y el grupo existe, otro GID (identificador único del grupo) sea elegido.
    • -g, --gid GID: el valor numérico para el identificador de grupo. Este valor ha de ser único a menos que se utilice la opción -o. El valor no puede ser negativo. Por defecto se usa el número menor que sea mayor de 999 y mayor que del de cualquier otro GID. Los números entre 0 y 999 se reservan para cuentas del sistema.
    • -o, --non-unique: permite añadir un grupo con un GID repetido.
    • -r, --system: permite crear un grupo de sistema.

  • groupdel: elimina un grupo. Este comando modifica los archivos de cuentas del sistema, eliminando todas las entradas que se refieran al grupo. El nombre del grupo debe existir. Su sintaxis es:
    #groupdel GRUPO
    No se puede eliminar el grupo primario de un usuario que exista, se debe eliminar primero el usuario. Se debe revisar manualmente todos los sistemas de ficheros para asegurarse de que no existen archivos que hagan referencia a este grupo.
  • reboot: reinicia o para el sistema. La sintaxis es:
    #reboot [opciones]
    Alguna de sus opciones:
    • -f, --force: reinicia inmediatamente el sistema.
    • -p, --poweroff: para el sistema invocando el comando halt.
    • --verbose: muestra mensajes a medida que va apagando el sistema. Útil para tareas de depuración en problemas de apagado.

  • shutdown: apaga el sistema de un modo seguro. Todos los usuarios que estén accediendo en ese momento son notificados de que el sistema se va a apagar y se previene que no puedan acceder nuevos usuarios. La sintaxis de este comando es:
    #shutdown [opciones] TIEMPO [MENSAJE]
    El tiempo se puede especificar de varias formas: utilizando la palabra now el sistema se apagará inmediatamente. Otros formatos válidos son +m, donde m es el número de minutos que se esperará antes de apagar el sistema, o bien, hh:mm que especifica la hora en formato de un reloj de 24 horas.
    Las opciones pueden ser:
    • -r: hace que el sistema se reinicie después de apagarse.
    • -h: hace que el sistema se apague completamente.
    • -c: cancela la orden de apagado. El tiempo no se ha de especificar con esta opción.

Por último, recordarles que los comandos que he explicado en esta serie de artículos admiten más opciones que las que yo he explicado. Para acceder a una explicación detallada de cada uno de los comandos siempre se puede acudir al manual que todo sistema GNU/Linux tiene invocando la orden en la línea de comandos:
$man NOMBRE_COMANDO
Por ejemplo, para ver la descripción detallada del comando adduser, pondríamos:
$man adduser
De nuevo, espero que este artículo les haya sido de alguna utilidad.

Comentarios

Entradas populares de este blog

Zed: ahora un editor de código de código abierto

  Zed: ahora un editor de código de código abierto Introducción Como ya les comenté en un artículo anterior  Atom ha muerto, viva ZED , Microsoft dejó de dar soporte para el editor de código Atom en el año 2022 en beneficio del Visual Studio Code . En aquel artículo les comentaba que para mi el sucesor de Atom era Zed pues era un editor que se estaba creando por el mismo grupo de trabajo que creó el Atom . Además de que parecía que iba a seguir con la misma filosofía con la que nació  Atom . El editor Zed, una descripción de sus características Zed es un editor de código desarrollado en Rust que, como deberíamos saber, es un lenguaje de programación de sistemas que se enfoca en la seguridad, el rendimiento y la concurrencia. Pues, como decíamos, Zed acaba de dar el salto a ser de código abierto bajo la licencia GPL v3 . Este cambio no solo representa una nueva era para Zed , sino que también nos dirige a un nuevo mundo de colaboración y desarrollo en el ámbito de la...

Cómo redimensionar un disco virtual en KVM

Introducción Hola de nuevo, amigos. Tras un parón al que me he visto forzado por circunstancias personales, vuelvo de nuevo con un nuevo artículo.  En esta ocasión voy a abordar cómo ampliar un disco virtual en una máquina creada en KVM . Con el fin de cubrir este aspecto cuando nos quedamos cortos de espacio en una máquina virtual por haber calculado mal en el momento de crearla. Cómo crear esta máquina ya lo expliqué en un artículo anterior:  Virtualizacion con KVM . Para este pequeño laboratorio he creado una máquina virtual con una instalación limpia de Ubuntu 20.04 con las siguientes características:  CPUs: 2 Memoria: 4096 MiB = 4 GiB Disco: VirtIO en formato qcow2 de 30GiB El resto las opciones son las que se muestran por defecto. Y otra máquina virtual con Windows 7 , con las siguientes características: CPUs: 2 Memoria: 4096 MiB = 4 GiB Disco: VirtIO en formato qcow2 de 40GiB Redimensionando el disco virtual Antes de realizar el redimensionado de la partición es a...

Gestión de la red usando la línea de comandos (II): rutas persistentes

  Introducción Esta será la segunda entrada de la serie de artículos referentes a la gestión de la red en la línea de comandos de Linux. Concretamente, en esta entrada voy a explicar tres métodos para dejar configuradas rutas persistentes en nuestro Ubuntu. Las pruebas de campo las he hecho en una máquina virtual con Ubuntu Desktop 22.04 instalado. Pero lo explicado es válido para cualquier sabor de Ubuntu, incluido el Ubuntu Server. Ejecutar una tarea programada En Linux en general y, por tanto, también en Ubuntu, existe la posibilidad de programar tareas. Las tareas son ejecutadas por el demonio cron  y tienen que ser definidas usando el comando crontab . Para conocer más sobre el sistema de programación de tareas programadas les recomiendo mirar las páginas del manual: man cron , man crontab , man 5 crontab ... En este último se explica la estructura de un fichero crontab . Lo primero que tenemos que hacer es crear nuestro script que luego se ejecutará en la programación de...