Linux: Usuarios y Grupos. Permisos en linux.
La gestión de usuarios y grupos en Linux es fundamental para administrar un sistema de manera eficiente y segura. Aquí tienes información relevante:
- Tipos de Usuarios en Linux:
- Usuario root: El superusuario con privilegios administrativos completos. Puede realizar acciones críticas, pero se recomienda usarlo con precaución.
- Usuarios normales: Son estándar y realizan tareas regulares. Tienen permisos limitados en comparación con root.
- Usuarios del sistema: Asociados a servicios y aplicaciones, no usuarios reales.
- Grupos en Linux:
- Los grupos agrupan usuarios según roles o responsabilidades compartidas.
- Algunos grupos comunes:
- wheel/sudo: Usuarios autorizados a ejecutar comandos como superusuario.
- users: Agrupa a usuarios normales.
- adm: Gestiona acceso a registros y archivos de registro del sistema.
- Comandos para la gestión de usuarios y grupos:
useradd
: Añade un nuevo usuario al sistema. Ejemplo:sudo useradd -m nuevo_usuario
.passwd
: Establece o cambia la contraseña de un usuario. Ejemplo:sudo passwd nombre_usuario
.usermod
: Modifica propiedades de usuario como el nombre completo o el grupo primario. Ejemplo:sudo usermod -c "Nombre Completo" -g grupo_usuario nombre_usuario
.userdel
: Elimina un usuario del sistema.
useradd
Introducción
En el mundo de Linux, la gestión de usuarios es una tarea fundamental que realizan los administradores de sistemas. Aquí es donde entra en juego el comando ‘useradd’. El comando ‘useradd’ es una utilidad de bajo nivel que permite a los administradores crear nuevas cuentas de usuario. Con una gran cantidad de opciones, este comando es a la vez flexible y poderoso. Este artículo tiene como objetivo desmitificar el comando ‘useradd’, proporcionando una guía completa sobre su uso y mejores prácticas.
Comprender el comando Useradd
En su forma más básica, el comando ‘useradd’ se utiliza para crear una nueva cuenta de usuario en un sistema Linux. La sintaxis es sencilla:
useradd [opciones] nombre de usuario.
El ‘nombre de usuario’ es el único argumento requerido y representa el nombre del usuario que se creará.Cuando se ejecuta sin ninguna opción, el comando ‘useradd’ crea una nueva cuenta de usuario con la configuración predeterminada definida en el archivo ‘/etc/default/useradd’. Esto incluye crear un grupo con el mismo nombre que el usuario, crear un directorio de inicio en ‘/home/nombredeusuario’ y copiar los archivos de ‘/etc/skel’ al nuevo directorio de inicio.
Opciones comúnmente utilizadas
El comando ‘useradd’ viene con una variedad de opciones que permiten un control más detallado sobre la creación de una nueva cuenta de usuario. Éstos son algunos de los más utilizados:
useradd -m nombre de usuario
Esto crea un nuevo usuario con un directorio de inicio. De forma predeterminada, ‘useradd’ no crea un directorio de inicio a menos que se especifique esta opción.
useradd -d /ruta/al/nombre de usuario de inicio
Esto crea un nuevo usuario con el directorio de inicio especificado.
useradd -s /path/to/shell nombre de usuario
Esto crea un nuevo usuario con el shell de inicio de sesión especificado.
useradd -G grupo1, nombre de usuario grupo2
Esto crea un nuevo usuario y lo agrega a los grupos suplementarios especificados.
Administrar contraseñas
Es importante tener en cuenta que el comando ‘useradd’ no solicita una contraseña. Para establecer una contraseña para el nuevo usuario, el comando ‘passwd’ se utiliza de la siguiente manera:
passwd nombre de usuario
Esto solicitará una nueva contraseña para el usuario.
Consejos y trucos
Utilice siempre la opción ‘-m’ si desea que el usuario tenga un directorio de inicio. Sin él, el usuario no tendrá un espacio personal para almacenar archivos.Si desea especificar un shell de inicio de sesión personalizado o un directorio de inicio no predeterminado, recuerde usar las opciones ‘-s’ y ‘-d’ respectivamente.Para agregar un usuario a varios grupos, use la opción ‘-G’ seguida de una lista de grupos separados por comas. Esto es particularmente útil al administrar permisos.
Casos comunes propensos a errores y cómo evitarlos
Un error común es olvidar establecer una contraseña para el nuevo usuario. Sin una contraseña, el usuario no podrá iniciar sesión. Esto se puede evitar fácilmente utilizando el comando ‘passwd’ inmediatamente después de crear el nuevo usuario.Otro error común es no especificar un directorio de inicio cuando es necesario, o especificar una ruta incorrecta o inexistente para el directorio de inicio. Esto puede provocar un comportamiento inesperado cuando el usuario intenta iniciar sesión. Siempre verifique la ruta antes de crear un nuevo usuario.Crear un usuario con un nombre de usuario no único es otro error común. El comando ‘useradd’ no permite nombres de usuario duplicados. Si intenta crear un usuario con un nombre de usuario que ya existe, el comando fallará. Para evitar esto, verifique siempre los usuarios existentes antes de crear uno nuevo.En conclusión, el comando ‘useradd’ es una poderosa herramienta para administrar usuarios en un sistema Linux. Con una buena comprensión de su sintaxis y opciones, y teniendo en cuenta los casos comunes propensos a errores, puede crear nuevas cuentas de usuario de manera efectiva y eficiente.
El comando chmod: qué es y para qué sirve
El comando chmod (change mode) sirve para gestionar los permisos de los archivos o directorios del sistema. Cuando usamos este comando debemos tener presentes los tres niveles de gestión de permisos que existen:
- Lectura (r)
- Escritura (w)
- Ejecución (x)
Además, tener que tener en cuenta a los tres tipos de usuarios a los que podemos asignar permisos de manera independiente:
- Propietario (Owner): El dueño del archivo (o directorio)
- Grupo (Group): El grupo al que pertenece
- Otros (Others): Todos los usuarios en general
Sintaxis del comando chmod
Aclarados estos puntos, podremos entender la sintaxis del comando chmod:
chmod [opciones] permisos archivo/directorio/s
Los permisos se pueden indicar de dos maneras, por medio de una sintaxis en números octales (base 8) o por medio de caracteres. ¿Y cómo funciona la base octal? Puede resultar un poco más compleja, pero resulta más abreviada y universal. En base octal, los permisos se expresan con tres dígitos (del 0 al 7).
- El primer dígito corresponde a los permisos del usuario
- El segundo dígito a los del grupo
- El tercer dígito a los del resto de usuarios
Por ejemplo, posibles valores de permisos podrían ser 000, 644, 755, 777, etc.
Para entender lo que cada opción significa, debemos saber que los números octales tienen su correspondencia con números binarios (ceros y unos). Un cero binario significa que no se tiene permiso y un uno binario que sí se tiene.
La tabla de transformación de octal a binario sería la siguiente:
Número | Binario | Lectura (r) | Escritura (w) | Ejecución (x) |
0 | 000 | |||
1 | 001 | |||
2 | 010 | |||
3 | 011 | |||
4 | 100 | |||
5 | 101 | |||
6 | 110 | |||
7 | 111 |
- Así, 0 significa que no hay ningún permiso y 7 que los tiene todos.
- 000 significa que nadie tiene permiso para hacer nada con el fichero.
- 777 significa que todo el mundo tiene permisos para hacer cualquier cosa.
- 700 significa que existen permisos totales para el dueño del archivo, pero no para el resto de los usuarios.
Un ejemplo completo de comando sería el siguiente:
chmod 764 archivo.txt
Esto indica que:
- El usuario dueño tendrá permisos totales sobre el fichero archivo.txt
- El grupo tiene permiso de lectura y escritura (pero no de ejecución)
- El resto de usuarios sólo tienen permiso de lectura
Como modificadores u opciones del comando encontramos una muy útil, que sirve para gestionar los permisos de manera recursiva, en todas las carpetas y subcarpetas de un directorio.
chmod -R 755 mi_carpeta
El comando chown: qué es y para qué sirve
El comando chown (change owner) sirve para indicar quién es el dueño y el grupo de un archivo. Su uso es mucho más sencillo de chmod. Vamos a verlo con un ejemplo directamente.
chown usuariox:grupoy archivo.txt
Como se aprecia, se puede especificar el usuario (en este caso usuariox) y el grupo (grupoy), separados por el carácter. A continuación, se indica el nombre del archivo o directorio afectados por esta nueva configuración.
Igual que chmod, se puede especificar que la operación se realice de manera recursiva.
chown -R www-data:www-data html
Así, se especifica que la carpeta de nombre html y todo su contenido pertenecerán al usuario y grupo www-data.
Recomendaciones de uso para los comandos chmod y chown
Como habíamos comentado, estos comandos son muy relevantes en lo que respecta a la seguridad de los ficheros y carpetas del servidor. Por tanto, queremos finalizar con unos consejos importantes sobre la seguridad.
- Nunca debemos asignar permisos 777. Aunque a veces pueda parecer que una aplicación web no funciona si no le asignamos esos permisos a una carpeta donde se desea escribir información, el nivel 777 es muy peligroso, ya que estamos asignando permisos totales a esos archivos o carpetas. Generalmente, hay que buscar soluciones de permisos más restrictivas y, en cambio, modificar los propietarios o el grupo de los archivos o carpetas.
- Generalmente, trabajamos con 644 para ficheros y 755 para directorios. Esos son los permisos más estándar para los archivos y carpetas del servidor. Esta opción genérica no tiene por qué ser la necesaria para todos los proyectos, pero siempre es una solución bastante apropiada.
Nuevamente, si nuestra aplicación no funciona bien con este nivel de permisos, conviene estudiar quién se encuentra asignado como propietario y grupo de los archivos y carpetas. Un problema habitual es que el propietario sea root. Esto podría suponer que, cuando desde un lenguaje de programación se intenta acceder al archivo para su escritura, nos arroje un error de acceso. La solución adecuada nunca sería asignar 777 para que la aplicación funcione, sino encontrar el usuario y grupo adecuados para el contenido de la carpeta.
Conclusiones para comandos chmod y chown
La gestión de servidores es una tarea que requiere precisión y control, y los comandos chmod y chown son herramientas fundamentales para lograrlo. Al comprender cómo utilizar estos comandos y cuándo aplicarlos, puedes garantizar un servidor seguro y bien organizado.
Además, su importancia se extiende hasta el mundo de los dominios y el hosting web, donde una configuración adecuada de permisos y propietarios es esencial para asegurar el funcionamiento y la seguridad para crear una página web. La administración de servidores y de sitios web van de la mano, y una gestión adecuada de estos comandos es esencial para crear un entorno seguro y eficiente.
Comando ‘chgrp’ en Linux: Introducción y sintaxis básica
El comando ‘chgrp’ en Linux se utiliza para cambiar el grupo de un archivo o directorio. La sintaxis básica de este comando es la siguiente:
chgrp [opciones] grupo archivo/directorio
Donde «grupo» es el nombre del grupo al que se desea cambiar y «archivo/directorio» es el archivo o directorio al que se le desea cambiar el grupo. Es importante destacar que solo el usuario root o el propietario del archivo o directorio pueden cambiar el grupo.
Cambiar grupo de un archivo utilizando ‘chgrp’ en Linux
Para cambiar el grupo de un archivo utilizando el comando ‘chgrp’ en Linux, simplemente debemos ejecutar el siguiente comando:
chgrp nuevo_grupo archivo
Donde «nuevo_grupo» es el nombre del grupo al que se desea cambiar y «archivo» es el archivo al que se le desea cambiar el grupo.
Cambiar grupo de un directorio con el comando ‘chgrp’ en Linux
Para cambiar el grupo de un directorio utilizando el comando ‘chgrp’ en Linux, debemos ejecutar el siguiente comando:
chgrp nuevo_grupo directorio
Donde «nuevo_grupo» es el nombre del grupo al que se desea cambiar y «directorio» es el directorio al que se le desea cambiar el grupo.
Opciones avanzadas del comando ‘chgrp’ en Linux para el cambio de grupos
El comando ‘chgrp’ en Linux también cuenta con opciones avanzadas que permiten realizar cambios más específicos en los grupos. Algunas de las opciones más comunes incluyen:
- ‘-R’: Cambiar recursivamente el grupo de un directorio y todos sus subdirectorios y archivos.
- ‘-h’: Cambiar el grupo de los enlaces simbólicos en lugar del archivo o directorio al que están enlazados.
- ‘–from’: Cambiar el grupo solo si ya pertenece a un grupo específico.
- ‘–reference’: Cambiar el grupo de un archivo o directorio basado en las propiedades de otro archivo o directorio.
Estas opciones permiten un mayor control sobre los cambios de grupo y pueden ser útiles en situaciones más complejas.
El comando ‘chgrp’ en Linux es una herramienta poderosa para cambiar el grupo de un archivo o directorio. A través de su sintaxis básica y opciones avanzadas, este comando permite a los usuarios tener un mayor control sobre los permisos de acceso y compartir archivos con grupos específicos. Conociendo cómo utilizar este comando, los usuarios pueden optimizar la gestión de sus archivos y directorios en entornos Linux.
Diferencias entre useradd y adduser
adduser vs. useradd: Domina la creación de usuarios en Linux
En el apasionante mundo de la administración de sistemas Linux, la creación de usuarios es una tarea fundamental. Dos comandos que te ayudarán a dominar este arte son adduser y useradd. Aunque ambos te permiten crear usuarios, existen diferencias importantes que debes conocer para convertirte en un maestro Jedi de la administración.
Entendiendo a los comandos: useradd y adduser
useradd: Es un comando centralizado, disponible en todas las distribuciones de Linux. Su función principal es crear una cuenta de usuario en el sistema. Para usar useradd como un ninja, deberás especificar opciones que definan varios aspectos de la cuenta, como el nombre de usuario, UID (identificador de usuario), GID (identificador de grupo) y directorio de inicio.
adduser: En la mayoría de las distribuciones, adduser es un script de shell que envuelve al poderoso useradd. Pero no te dejes engañar por su apariencia simple, adduser esconde una gran cantidad de habilidades. Además de crear la cuenta de usuario, adduser automatiza ciertos pasos y te ofrece una interacción más amigable, permitiéndote configurar la cuenta del usuario con la facilidad de un Jedi.
Diferencias clave entre useradd y adduser:
- Configuración predeterminada:
- useradd: No establece configuraciones predeterminadas. Te obliga a especificar todos los detalles de la cuenta usando opciones de comando, como un verdadero guerrero que afina su espada.
- adduser: Aplica valores predeterminados para grupos, directorios de inicio y otros parámetros. Te facilita la vida, como un sabio maestro que te guía en el camino.
- Solicitud de contraseña:
- useradd: No te pide una contraseña para el usuario recién creado. Si quieres proteger la cuenta, deberás usar la opción
-p
para establecer una contraseña como un ninja sigiloso. - adduser: Te solicita que introduzcas una contraseña durante el proceso de creación de la cuenta, garantizando la seguridad desde el inicio.
- useradd: No te pide una contraseña para el usuario recién creado. Si quieres proteger la cuenta, deberás usar la opción
- Creación del directorio de inicio:
- useradd: No crea automáticamente el directorio de inicio del usuario. Si lo necesitas, usa la opción
-m
para crear un hogar para el nuevo usuario. - adduser: Crea automáticamente el directorio de inicio del usuario en la ubicación predeterminada, como un constructor diligente que prepara un nuevo hogar.
- useradd: No crea automáticamente el directorio de inicio del usuario. Si lo necesitas, usa la opción
- Interfaz de usuario:
- useradd: Te exige usar opciones de línea de comandos específicas para definir las características de la cuenta, como un guerrero que domina su arma.
- adduser: Te ofrece una interfaz interactiva que facilita la configuración de la cuenta del usuario, permitiéndote navegar por el proceso con la fluidez de un maestro Jedi.
- Disponibilidad:
- useradd: Disponible en todas las distribuciones de Linux, como un guerrero omnipresente.
- adduser: Puede no estar disponible en todas las distribuciones. En algunas, como Arch Linux, useradd es el comando central para la creación de usuarios, como un líder que toma el control.
Ejemplos de uso:
Crear un usuario llamado «nuevo_usuario» con useradd:
Bash
useradd -m -p "contraseña_segura" nuevo_usuario
Explicación:
-m
: Crea el directorio de inicio del usuario, como un constructor diligente.-p
: Establece la contraseña del usuario, fortaleciendo la seguridad como un ninja sigiloso.
Crear un usuario llamado «nuevo_usuario» con adduser:
Bash
adduser nuevo_usuario
Explicación:
adduser te pedirá una contraseña para el usuario y creará automáticamente el directorio de inicio, como un maestro Jedi que guía al nuevo usuario.
¿Cuándo usar cada comando?
- Utiliza useradd cuando:
- Necesitas un control granular sobre la configuración de la cuenta del usuario, como un guerrero que afina su espada.
- Creas scripts automatizados para la creación masiva de usuarios, como un ejército de guerreros.
- La distribución de Linux no tiene disponible adduser, como un guerrero que se adapta a cualquier terreno.
- Utiliza adduser cuando:
- Prefieres una interfaz interactiva y amigable para la creación de usuarios, como un maestro Jedi que facilita el aprendizaje.
- Deseas aprovechar la configuración predeterminada para el directorio de inicio y otros parámetros, como un constructor que utiliza planos predefinidos.
- No necesitas especificar opciones de configuración complejas, como un guerrero que busca la simplicidad.
Tabla comparativa :
Característica | adduser | useradd | Ejemplo |
---|---|---|---|
Interactividad | Interactivo, solicita información detallada. | No interactivo, requiere opciones manuales. | sudo adduser nuevo_usuario |
Facilidad de uso | Diseñado para ser más amigable y sencillo. | Requiere conocimientos más avanzados. | sudo useradd -m -s /bin/bash nuevo_usuario |
Crea directorio de inicio | Automáticamente crea el directorio home. | Requiere la opción -m para crearlo. | sudo adduser nuevo_usuario |
Shell predeterminada | Utiliza la shell predeterminada del sistema. | Requiere la especificación con -s . | sudo useradd -m -s /bin/bash nuevo_usuario |
Grupos adicionales | Ofrece opciones para agregar a grupos adicionales. | Necesita comandos adicionales para esto. | sudo adduser nuevo_usuario grupo_adicional |
Configuración por defecto | Configura valores por defecto automáticamente. | Requiere especificación manual de opciones. | sudo useradd -m -s /bin/bash nuevo_usuario |
Bloquea la cuenta | Puede bloquear una cuenta recién creada. | No tiene opción directa para bloquear. | sudo adduser --lock nuevo_usuario |
Mensaje de bienvenida | Puede mostrar un mensaje de bienvenida. | No proporciona directamente esta opción. | sudo adduser --gecos "Bienvenido" nuevo_usuario |
Mensajes de error | Ofrece mensajes de error más informativos. | Las opciones incorrectas pueden ser menos descriptivas. | sudo adduser usuario_existente |
Auditoría de comandos | Puede registrar la creación del usuario. | Menos propenso a mantener registros automáticamente. | No hay una opción directa para la auditoría. |
Uso de scripts | Apto para ser utilizado en scripts. | Menos adecuado para su uso en scripts. | Puede ser utilizado con precaución en scripts. |
Comentarios en /etc/passwd | Puede incluir comentarios en /etc/passwd . | No permite comentarios en ese archivo. | sudo adduser --gecos "Usuario de prueba" nuevo_usuario |
Estos ejemplos te brindan una guía práctica sobre cómo utilizar los comandos adduser
y useradd
con diferentes opciones. Ten en cuenta que los ejemplos pueden variar según la distribución de Linux que estés utilizando.
Conclusión
Tanto useradd como adduser son herramientas valiosas para la creación de usuarios en Linux. Dominar las diferencias entre ellos te permite elegir la opción más adecuada para tus necesidades, convirtiéndote en un administrador de sistemas más eficiente y poderoso.
En general, adduser es más adecuado para la creación rápida y simple de usuarios, como un maestro Jedi que guía al nuevo usuario. Mientras que useradd ofrece mayor control y flexibilidad para configuraciones avanzadas, como un guerrero que se adapta a cualquier desafío.
Recuerda que la mejor opción depende de tu estilo de trabajo y las necesidades específicas de tu sistema. Experimenta con ambos comandos y elige el que te ayude a convertirte en un maestro de la creación de usuarios en Linux.
Consejos adicionales:
- Consulta la documentación de tu distribución de Linux para obtener información específica sobre adduser y useradd.
- Practica usando ambos comandos para familiarizarte con sus opciones y características.
- Crea scripts automatizados para la creación masiva de usuarios, utilizando useradd o adduser según tus necesidades.