Consejos útiles

Usuarios de Linux: agregar, modificar, eliminar

Linux es un sistema multiusuario y, por lo tanto, un usuario es un concepto clave para organizar todo el sistema de acceso en Linux. Cuando un usuario inicia sesión en el sistema (realiza el procedimiento de autorización, por ejemplo, al ingresar el nombre y la contraseña del sistema), se identifica con cuenta, en el que el sistema almacena información sobre cada usuario: su nombre de sistema y alguna otra información necesaria para trabajar con él. Es con las cuentas, y no con los propios usuarios, que el sistema funciona. La siguiente es una lista de esta información.

Crear y eliminar un usuario en Linux - useradd

El comando Useradd se usa para agregar usuarios, y se eliminan usando userdel. Creemos dos cuentas, seguiremos trabajando con una y eliminaremos la segunda.

Antes de agregar una cuenta a un servidor desconocido, primero mire la configuración predeterminada para los nuevos usuarios. useradd usa la plantilla que se especifica en el archivo / etc / default / useradd. Veamos que tenemos allí:

Lo que es importante para nosotros aquí:

  • HOME = / home - el directorio donde se creará la carpeta de inicio del usuario, tradicionalmente es / home
  • INACTIVO = -1: el número de días después de los cuales la cuenta se bloqueará para siempre después de que caduque la contraseña. -1 aquí significa que la oportunidad no se usa.
  • EXPIRE = - fecha en que el usuario será bloqueado. Ahora vacío, luego nunca.
  • SHELL = / bin / bash: qué shell será utilizado por el usuario.
  • SKEL = / etc / skel: la carpeta donde se encuentran los archivos que se copiarán en el directorio de inicio del nuevo usuario.

De hecho, todo nos conviene, creemos una cuenta:

-m indica que necesita crear una carpeta de usuario en / home si aún no está allí.
E inmediatamente cree el segundo:

Para variar, usando el modificador -s, indiqué que el shell de shell no sería bash, sino sh. A -c establece un comentario para el usuario que se usa, generalmente como el nombre completo del usuario.

Qué claves usa useradd todavía entiendo:
-b: establece el directorio base en el que se creará la carpeta de inicio del usuario. Predeterminado / inicio
-d: establece el nombre del directorio de inicio. Por defecto, el nombre coincide con el nombre de usuario
-e Fecha en que el usuario está bloqueado. Establecer en el formato AAAA-MM-DD. Deshabilitado por defecto. Corresponde a EXPIRE en la plantilla / etc / default / useradd,
-f: corresponde a INACTIVO en la plantilla, como ya se mencionó, la fecha de caducidad de la contraseña antes del bloqueo,
-g: establece el grupo primario para el nuevo usuario. Se indica GID o nombre del grupo. Si no se especifica el parámetro, el nombre del grupo será el mismo que el nombre de usuario,
-G: una lista de grupos adicionales para el usuario que se está creando,
-k es la ruta al directorio de la plantilla. Corresponde a SKEL en la plantilla,
-u: para configurar el UID del usuario manualmente.

Identificador de usuario (UID)

Enlaces de Linux nombre del sistema c ID de usuario en el sistema UID (ID de usuario). UID Es un entero positivo por el cual el sistema rastrea a los usuarios 1. Por lo general, este número se selecciona automáticamente al registrar una cuenta, pero no puede ser completamente arbitrario. Linux tiene algunas convenciones sobre qué tipos de identificadores de usuarios de un rango dado pueden emitirse. En particular UID "0" a "100" están reservados para pseudousuarios 2 .

Identificador de grupo (GID)

Además de la ID de usuario, la cuenta está asociada con identificación del grupo. Grupos de usuarios Se utiliza para organizar el acceso de varios usuarios a ciertos recursos. El grupo, como el usuario, tiene un nombre y un número de identificación: Gid (ID del grupo). En Linux, cada usuario debe pertenecer al menos a un grupo: grupo predeterminado. Al crear una cuenta de usuario, generalmente se crea un grupo, cuyo nombre coincide con nombre del sistema 3, es este grupo el que se usará como el grupo predeterminado para este usuario. Un usuario puede ingresar más de un grupo, pero solo el número de grupo predeterminado se indica en la cuenta. Los grupos le permiten controlar el acceso de varios usuarios a diversos recursos.

Nombre completo

Ademas nombre del sistema la cuenta contiene y nombre completo (nombre y apellido) de la persona que usa esta cuenta. Por supuesto, el usuario puede especificar cualquier cosa como su nombre y apellido. Se necesita un nombre completo no tanto para el sistema como para las personas, para poder determinar quién es el propietario de la cuenta.

Ejemplo de crear un usuario con privilegios de sudo

Inicie sesión en el servidor como root:

ssh root @ server_ip_address

Introducir comando adduser Para crear una nueva cuenta en el sistema:

nombre de usuario adduser

Establezca y confirme la contraseña para el nuevo usuario siguiendo las instrucciones en pantalla:

Si la contraseña se actualiza correctamente, el sistema mostrará un mensaje:

Siga las instrucciones en pantalla para ingresar información sobre el nuevo usuario. Puede aceptar los valores predeterminados dejando en blanco los campos de entrada.

Ingrese un nuevo valor o presione ENTER para establecer los valores predeterminados.

A continuación, el sistema solicitará confirmación de que todos los datos se han ingresado correctamente:

Presione la tecla Y para confirmar que los datos ingresados ​​son correctos.

Usar comando usermod Para agregar un usuario al grupo sudo:

usermod -aG sudo nombre de usuario

Por defecto, en Ubuntu, los miembros del grupo SUDO tienen privilegios SUDO.

Usar comando su para ir a la nueva cuenta de usuario:

su - nombre de usuario

Como usuario nuevo, asegúrese de que puede usar los derechos de Sudo escribiendo sudo antes del comando que ejecuta con privilegios de superusuario:

sudo command_to_run

Por ejemplo, puede ver el contenido del directorio / root, que generalmente solo es accesible para el superusuario:

sudo ls -la / root

Cuando use Sudo en una sesión por primera vez, se le pedirá que ingrese la contraseña de la cuenta de usuario. Ingrese la contraseña para continuar:

Si el usuario está en el grupo correspondiente y la contraseña se ingresó correctamente, el comando que comienza con sudo debe ejecutarse con privilegios de superusuario.

Cambiar la configuración de la cuenta de usuario

Usando el comando chfn Puede ingresar o cambiar la información de la cuenta de usuario (nombre completo, número de teléfono del trabajo, coordenadas del trabajo, etc., nombre de usuario - nombre de usuario):

chfn -f nombre completo -o office -p work_phone -h home_phone -u -v nombre de usuario

Para establecer una contraseña, use el comando passwd:

nombre de usuario passwd

Como resultado del comando, se nos pedirá que ingresemos una nueva contraseña y la repitamos.

Si queremos darle al usuario la oportunidad de cambiar la contraseña en el primer inicio de sesión, debe ingresar el comando:

cambiar -d 0 nombre de usuario

Ver cuentas de usuario

Toda la información de la cuenta de usuario se almacena en el archivo / etc / passwd.

Para ver la lista de usuarios, debe ingresar el comando:

cat / etc / passwd

La salida puede verse así:

Esta línea tiene el siguiente formato:

cuenta: contraseña: UID: GID: GECOS: directorio: shell

cuenta - nombre de usuario
contraseña - contraseña de usuario cifrada
UID - número de identificación de usuario
Gid - número de identificación del grupo de usuarios principal
Gecos - un campo opcional utilizado para indicar información adicional sobre el usuario (por ejemplo, el nombre completo del usuario)
directorio - directorio de inicio del usuario ($ HOME)
concha - shell de usuario (generalmente / bin / sh)

Para ver la lista de usuarios que están actualmente en el sistema, use el comando quien o w.

Resultado del comando quien se ve así:

Resultado del comando w se ve así:

Gestión de cuentas de usuario

Las cuentas de usuario de Linux se pueden administrar de tres maneras equivalentes. Primero, puede usar las herramientas GUI proporcionadas por su distribución. La apariencia y el funcionamiento de estas herramientas dependen de la distribución que utilice. En caso de que sea un usuario inexperto de su sistema Linux doméstico, use la herramienta GUI que le proporciona su distribución. Este enfoque está garantizado para evitar problemas.

Otra opción es utilizar herramientas de línea de comandos como useradd, usermod, gpasswd, passwd y otras. Es muy probable que los administradores de servidores utilicen estas herramientas, ya que les son familiares, y también se suministran sin cambios como parte de varias distribuciones. Este capítulo se centrará en estas herramientas de línea de comandos.

Una tercera forma bastante radical de administrar las cuentas de usuario es editar directamente los archivos de configuración locales utilizando el editor de texto vi (o vipw / vigr). ¡No intente hacer esto cuando los sistemas operativos están en operación comercial, si no tiene el conocimiento apropiado!

Archivo / etc / passwd

Como puede ver, este archivo contiene datos en forma de una tabla con siete columnas separadas por dos puntos. Las columnas contienen el nombre de usuario, el carácter x, la ID de usuario, el identificador del grupo de usuarios principal, la descripción de la cuenta de usuario, la ruta al directorio de inicio del usuario y la ruta al archivo ejecutable del shell utilizado para iniciar la sesión del usuario en el sistema.

Directorio de inicio

Los archivos de todos los usuarios en Linux se almacenan por separado, cada usuario tiene su propio directorio de inicioen el que puede almacenar sus datos. El acceso de otros usuarios al directorio de inicio del usuario puede estar restringido. La información sobre el directorio de inicio debe estar presente en la cuenta, porque es de él que el usuario que inicia sesión en el sistema comienza a funcionar.

Shell de inicio de sesión

La forma más importante de interactuar con un sistema Linux es línea de comando, que permite al usuario realizar un "diálogo" con el sistema: enviarle comandos y recibir sus respuestas. Un programa especial sirve para este propósito: shell de comando (o intérprete de línea de comando), en inglés - shell. El shell inicial (shell de inicio de sesión) se inicia cuando un usuario inicia sesión en modo texto (por ejemplo, en una consola virtual). Dado que hay varios shells diferentes disponibles en Linux, la cuenta indica cuáles de los shells ejecutar para este usuario. A menos que especifique específicamente el shell inicial al crear la cuenta, se asignará de manera predeterminada, lo más probable es que sea bash.

Toda la información de cuenta enumerada se almacena en el archivo / etc / passwd. Se puede obtener información sobre una cuenta de usuario específica utilizando la utilidad getent 4:

El primer parámetro, passwd, es el nombre de la base de datos en la que buscar, coincide con el nombre del archivo de configuración correspondiente. El segundo parámetro, probador, es el nombre de la cuenta de usuario (nombre del sistema). getent muestra la línea / etc / passwd donde se describe la cuenta: muestra el nombre del sistema y la contraseña a través de ":" (la letra "x" está aquí, porque la contraseña está oculta en otro lugar, ver más abajo), UID, GID , nombre completo, directorio de inicio y shell inicial.

En Linux, la contraseña del usuario no se almacena explícitamente en ningún lugar, sino solo en la encriptada. En los sistemas modernos, generalmente se usan las llamadas "contraseñas ocultas", que se almacenan por separado de otra información sobre la cuenta, y también le permiten asignar restricciones adicionales, en particular, la "fecha de vencimiento" de la contraseña. Dependiendo de la gravedad de la política de seguridad, las contraseñas de usuario cifradas se pueden almacenar en un archivo común / etc / shadow (menos estrictamente) o en un archivo shadow separado para cada usuario. ALT Linux utiliza el esquema tcb por defecto, que implementa una política más estricta. Para ver información del archivo sombra, se requieren privilegios de superusuario, esto se puede hacer usando el comando getent passwd tester. Puede leer más sobre las capacidades de las contraseñas shadow en los manuales shadow (5) y tcb (5).

La información sobre todos los grupos de usuarios en el sistema también se almacena por separado, para esto está destinado el archivo / etc / group. Se puede obtener información sobre un grupo específico utilizando la misma utilidad getent:

La entrada en el archivo / etc / group es muy simple: primero viene el nombre del grupo (como el nombre de la cuenta, luego el campo de contraseña (aquí nuevamente "x", pero las contraseñas para el grupo se usan muy raramente), GID, una lista de nombres de cuenta separados por comas (nombres de usuario) incluidos en este grupo Cualquier usuario puede obtener una lista de los nombres de los grupos en los que es miembro del comando de grupos e información más detallada sobre su cuenta u otra con el comando id nombre de usuario . Pertenecer a un grupo es importante solo en un aspecto: los derechos de acceso, ya que para cada archivo no solo se define el propietario del usuario, sino también el propietario del grupo.

Creación de usuario

Para crear un usuario de Linux completo, debe realizar varias acciones relativamente independientes:

  • cree una entrada en / etc / passwd, donde le dará a la cuenta un nombre único, UID, etc.
  • crear el directorio de inicio del usuario, proporcionarle acceso al usuario a su directorio de inicio (convertirlo en el propietario del directorio),
  • poner en el directorio de inicio el contenido estándar (generalmente archivos de configuración), tomado de / etc / skel,
  • modificar los archivos de configuración del sistema, en particular, crear un repositorio para el correo entrante para un usuario determinado (/ var / spool / mail / tester).

Todas estas acciones se pueden realizar manualmente, sin embargo, es bastante inconveniente y puede olvidar algo. Para simplificar el proceso, se utiliza la utilidad useradd (tradicionalmente se llama adduser), que, por supuesto, requerirá privilegios de administrador. En el caso más simple, bastarán dos pasos:

Primero, useradd agrega una cuenta (nombre de usuario es el único parámetro, en nuestro ejemplo - prueba), llenándolo con valores predeterminados y haciendo los cambios necesarios en el sistema. Al utilizar parámetros adicionales al llamar a useradd, puede especificar explícitamente un valor para un campo de cuenta particular, esta utilidad también le permite modificar la configuración predeterminada de creación de usuarios. Consulte el manual de useradd (8) para más detalles. La utilidad passwd, llamada con privilegios de superusuario, le permite asignar cualquier contraseña a este usuario. En este caso, la información sobre la contraseña anterior para este usuario (si la hubiera) se perderá por completo. passwd, causado por un usuario normal (sin parámetros), le permite cambiar su propia contraseña, pero para esto, deberá ingresar la contraseña de usuario actual.

Existen utilidades similares de useradd para modificar los parámetros de una cuenta existente (usermod) y para eliminar usuarios (userdel). El usuario también puede cambiar cierta información no crítica en su cuenta por su cuenta. En particular, para instalar su nombre completo y algunos otros campos de información de la cuenta son la utilidad chfn (1) del paquete shadow-change, change caparazón inicial la utilidad chsh (1) ayudará (le permite seleccionar solo uno de los shells listados en / etc / shells) del mismo paquete. Tenga en cuenta que en ALT Linux, un usuario tiene derecho a editar su propia cuenta solo si se establece el modo de acceso apropiado: el comando control chsh debe devolver public, similar a control chfn. El superusuario puede establecer el acceso requerido con el comando public chsh de control (de manera similar para chfn).

La operación más popular para trabajar con grupos (agregar un usuario a un grupo) se logra más fácilmente simplemente editando el archivo / etc / group. Es suficiente abrir este archivo en cualquier editor de texto (por supuesto, con privilegios de superusuario), buscar la línea que comience con el nombre del grupo deseado y agregar el nombre del usuario deseado al final de esta línea con una coma). Para administrar grupos, hay un conjunto de utilidades groupadd (8), groupdel (8), groupmod (8), los detalles sobre cómo trabajar con ellos se pueden encontrar en los respectivos manuales.

Esto puede ser importante, por ejemplo, en tal situación: una cuenta de usuario con la prueba de nombre se eliminó del sistema y luego se agregó nuevamente. Sin embargo, desde el punto de vista del sistema, este es un usuario diferente, porque tiene un UID diferente.

2 Normalmente, Linux proporciona UID a usuarios normales a partir de "500" o "1000".

3 Normalmente, el valor numérico del GID en este caso coincide con el valor del UID.

4 Esta utilidad también es útil para obtener información sobre otros recursos del sistema, consulte getent --help.

Práctica: Administrar cuentas de usuario

1. Cree una cuenta de usuario con el nombre serena y la descripción (o comentario) "Serena Williams", así como el directorio de inicio del usuario. Realice las acciones necesarias dentro de un equipo.

2. Cree una cuenta de usuario con el nombre venus, indicando la necesidad de usar el shell bash y la descripción de "Venus Williams", así como el directorio de inicio del usuario con un solo comando.

3. Verifique que ambos usuarios tengan las entradas correctas en los archivos / etc / passwd, / etc / shadow y / etc / group.

4. Проверьте корректность создания домашних директорий пользователей.

5. Создайте учетную запись пользователя с именем einstime и утилитой /bin/time в качестве стандартной командной оболочки.

6. Что случится, если вы войдете в систему под именем пользователя einstime ? Можете ли вы сделать предположение о реальной ситуации, в которой было бы полезно заменить стандартную командную оболочку пользователя на приложение?

7. Создайте файл с именем welcome.txt и убедитесь в том, что каждый новый пользователь будет обнаруживать данный файл в своей домашней директории.

8. Проверьте корректность размещения созданного файла в файловой системе, создав (и удалив) тестовую учетную запись пользователя.

9. Cambie el shell predeterminado para iniciar sesión en serena con el shell / bin / bash. Realice las comprobaciones necesarias antes y después de cambiar el shell.

El procedimiento correcto para completar la tarea práctica: administrar cuentas de usuario

1. Cree una cuenta de usuario con el nombre serena y la descripción (o comentario) "Serena Williams", así como el directorio de inicio del usuario. Realice las acciones necesarias dentro de un equipo.

2. Cree una cuenta de usuario con el nombre venus, que indica la necesidad de utilizar el shell bash y la descripción de "Venus Williams", así como el directorio de inicio del usuario con un solo comando.

3. Verifique que ambos usuarios tengan las entradas correctas en los archivos / etc / passwd, / etc / shadow y / etc / group.

4. Verifique la creación correcta de los directorios de inicio del usuario.

5. Cree una cuenta de usuario llamada einstime y la utilidad / bin / time como un shell estándar.

6. ¿Qué sucede si inicia sesión como einstime? ¿Puede suponer una situación real en la que sería útil reemplazar el shell de usuario estándar con una aplicación?

Tal reemplazo para el shell de comandos estándar puede ser útil si el usuario necesita acceder solo a una aplicación en el servidor. Inmediatamente después de ingresar al sistema, el usuario tiene la oportunidad de trabajar con la aplicación, y después de completarla, el sistema cierra la sesión automáticamente.

7. Cree un archivo llamado welcome.txt y asegúrese de que cada nuevo usuario encuentre este archivo en su directorio de inicio.

8. Verifique la ubicación del archivo creado en el sistema de archivos creando (y eliminando) una cuenta de usuario de prueba.

9. Cambie el shell predeterminado para iniciar sesión en serena como shell / bin / bash. Realice las comprobaciones necesarias antes y después de cambiar el shell.

Mira el video: Cómo crear y eliminar usuarios en Ubuntu? y quién es el Root? (Febrero 2020).