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

Añadir disco en caliente a un Ubuntu virtualizado

  En este artículo vamos a explicar cómo aumentar un volumen de discos en una máquina virtual. Pongamos por caso que tenemos un servidor que se nos ha quedado corto de espacio en disco y que no podemos parar. La solución es añadir un nuevo disco virtual a nuestra máquina y, con ese espacio añadido, extender el volumen de discos.  En principio, este es un proceso en el que no hay pérdida de datos. Sin embargo, es conveniente que exista una copia de seguridad antes de llevarlo a cabo como precaución. He de decir que yo lo he hecho en un par de ocasiones y no ha habido problemas con la máquina virtual ni con los datos. De hecho, los usuarios ni se enteraron de que se amplió el espacio en disco. Consideraciones iniciales En primer lugar, este es un proceso que sólo se puede llevar a cabo en una máquina virtual. Para añadir un disco nuevo en una máquina física hay que pararla y, por lo tanto, no se puede añadir en caliente. Cierto es que la parte de extender el volumen sí que se realiza igu

Atom ha muerto, viva Zed

El día 8 de junio de 2022, Microsoft anunció que a partir del día 31 de diciembre de este mismo año dejaría de dar soporte para el editor de código Atom .  ¿En qué nos afecta esto a nosotros? Bueno, pues si me han seguido en artículos anteriores saben que tras una comparativa de varios IDEs había decidido utilizar Atom para los ejemplos que tuviera que hacer en este blog. Sobre todo los artículos que prepararé para ilustrar el uso de Laravel . Amén de los miles de programadores que actualmente usan Atom  en sus proyectos, claro. Pero, ¿qué editor de código abierto podremos utilizar para sustituir a Atom ? En el mismo comunicado, Microsoft explicaba que el abandono del proyecto Atom  se debía a que querían volcar todos sus esfuerzos en el Visual Studio Code y, por supuesto, recomendó a los usuarios de Atom la utilización del mismo como alternativa natural. No quiero entrar en las bondades o defectos del Visual Studio Code  si quieres elegirlo como tu IDE para desarrollo predeterm

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 programación.