English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
El sistema operativo Linux es un sistema operativo multitarea y de tiempo compartido multiusuario, cualquier usuario que desee utilizar recursos del sistema debe solicitar primero una cuenta al administrador del sistema y luego ingresar al sistema con la identidad de esta cuenta.
Por un lado, la cuenta de usuario puede ayudar al administrador del sistema a rastrear a los usuarios que utilizan el sistema y controlar su acceso a los recursos del sistema; por otro lado, también puede ayudar a los usuarios a organizar archivos y proporcionar protección de seguridad a los usuarios.
Cada cuenta de usuario tiene un nombre de usuario único y su propia contraseña.
Después de que el usuario ingrese el nombre de usuario y la contraseña correctos al iniciar sesión, puede ingresar al sistema y su directorio principal.
Para implementar la gestión de cuentas de usuarios, se deben completar principalmente los siguientes aspectos:
Añadir, eliminar y modificar cuentas de usuarios.
Gestión de contraseñas de usuarios.
Gestión de grupos de usuarios.
La gestión de cuentas de usuarios se refiere principalmente a la adición, modificación y eliminación de cuentas de usuarios.
Añadir una cuenta de usuario es crear una nueva cuenta en el sistema y luego asignar recursos como número de usuario, grupo de usuario, directorio principal y Shell de inicio al nuevo usuario. La cuenta recién añadida está bloqueada y no se puede usar.
useradd opción nombre_de_usuario
Descripción de los parámetros:
Opciones:
-c comentario Especificar una descripción descriptiva.
-d Directorio Especificar el directorio del directorio principal del usuario, si este directorio no existe, se utiliza-La opción m puede crear un directorio principal.
-g Grupo Especificar el grupo al que pertenece el usuario.
-G Grupo, grupo Especificar el grupo adicional al que pertenece el usuario.
-s Archivo Shell Especificar el Shell de inicio de sesión del usuario.
-u Número de usuario Especificar el número de usuario del usuario, si hay-La opción o permite el uso repetido de otros números de identificación de usuarios.
Nombre de usuario:
Especificar el nombre de inicio de sesión de la nueva cuenta.
# useradd –d /home/sam -m sam
Este comando crea un usuario sam, donde-d y-La opción m se utiliza para generar un directorio principal para el nombre de inicio de sesión sam /home/sam (/home es el directorio padre del directorio principal del usuario por defecto).
# useradd -s /bin/sh -g group –G adm,root gem
Este comando crea un usuario llamado gem, y el Shell de inicio de sesión de este usuario es /bin/sh, que pertenece al grupo de usuarios group, y también al grupo de usuarios adm y root, donde el grupo de usuarios group es el grupo principal.
es posible crear nuevos grupos aquí: #groupadd group y groupadd adm
Añadir una cuenta de usuario es/etc/Añade un registro para el nuevo usuario en el archivo passwd, y actualiza otros archivos del sistema como/etc/shadow, /etc/group, etc.
Linux proporciona la herramienta de gestión de sistemas integrada userconf, que se puede usar para gestionar cuentas de usuarios de manera unificada.
Si una cuenta de usuario ya no se utiliza, se puede eliminar del sistema. Eliminar la cuenta de usuario implica/etc/Elimina el registro del usuario en archivos del sistema como passwd, y si es necesario, también elimina el directorio principal del usuario.
Para eliminar una cuenta de usuario existente, utilice el comando userdel, y su formato es el siguiente:
userdel opción nombre_de_usuario
Las opciones comunes son -r, que tiene el efecto de eliminar el directorio principal del usuario.
Por ejemplo:
# userdel -r sam
Este comando elimina al usuario sam de los archivos del sistema (principalmente/etc/passwd, /etc/shadow, /etc/grupos, etc.), y también eliminar el directorio principal del usuario.
Modificar la cuenta de usuario implica cambiar las propiedades relacionadas del usuario según la situación real, como el número de usuario, el directorio principal, el grupo de usuarios, el Shell de inicio de sesión, etc.
Para modificar la información de un usuario existente, utilice el comando usermod, y su formato es el siguiente:
usermod opción nombre_de_usuario
Las opciones comunes incluyen-c, -d, -m, -g, -G, -s, -u y-o, entre otros, estas opciones tienen el mismo significado que las opciones del comando useradd, y pueden asignar nuevos valores de recursos al usuario.
Además, algunos sistemas pueden usar la opción:-l Nuevo nombre de usuario
Esta opción especifica una nueva cuenta, es decir, cambia el nombre de usuario anterior.
Por ejemplo:
# usermod -s /bin/ksh -d /home/z –g developer sam
Este comando cambia el Shell de inicio de sesión del usuario sam a ksh, y el directorio principal se cambia a/home/z,cambia el grupo de usuarios a developer.
Un contenido importante de la gestión del usuario es la gestión de contraseñas del usuario. Al crear la cuenta de usuario, no hay contraseña, pero está bloqueada por el sistema y no se puede usar, debe especificar una contraseña para que pueda usarse, incluso si es una contraseña vacía.
El comando Shell utilizado para especificar y modificar la contraseña del usuario es passwd. El superusuario puede especificar la contraseña para sí mismo y otros usuarios, mientras que el usuario común solo puede usarlo para modificar su propia contraseña. El formato del comando es:
passwd opción nombre_de_usuario
Opciones disponibles:
-l Bloquea la contraseña, es decir, deshabilita la cuenta.
-u Desbloquea la contraseña, es decir, deshabilita la cuenta.
-d Hace que la cuenta no tenga contraseña.
-f Obliga al usuario a modificar la contraseña la próxima vez que inicie sesión.
Si se usa el nombre de usuario predeterminado, se modifica la contraseña del usuario actual.
Por ejemplo, supongamos que el usuario actual es sam, el siguiente comando modifica la contraseña de este usuario:
$ passwd Contraseña anterior:****** Nueva contraseña:******* Re-Ingrese nueva contraseña:*******
Si es superusuario, se puede especificar la contraseña de cualquier usuario en la siguiente forma:
# passwd sam Nueva contraseña:******* Re-Ingrese nueva contraseña:*******
Cuando el usuario común modifica su contraseña, el comando passwd primero pregunta por la contraseña anterior, verifica y luego requiere que el usuario ingrese dos veces la nueva contraseña, si las dos contraseñas ingresadas son consistentes, se especifica esta contraseña para el usuario; mientras que el superusuario al especificar la contraseña para el usuario, no necesita saber la contraseña anterior.
Para la seguridad del sistema, el usuario debe elegir una contraseña más compleja, por ejemplo, es mejor usar8De longitud de contraseña, que contiene letras mayúsculas, minúsculas y números, y debe ser diferente de nombre, cumpleaños, etc.
Al especificar una contraseña vacía para el usuario, ejecutar el siguiente comando en forma:
# passwd -d sam
Este comando elimina la contraseña del usuario sam, por lo que el sistema ya no permite que el usuario sam inicie sesión la próxima vez que inicie sesión.
El comando passwd también se puede usar -l(lock) Opción que bloquea a un usuario, impidiendo que inicie sesión, por ejemplo:
# passwd -l sam
Cada usuario tiene un grupo de usuarios, y el sistema puede gestionar todos los usuarios de un grupo de usuarios de manera centralizada. Los sistemas Linux diferentes tienen especificaciones diferentes para los grupos de usuarios, como los usuarios en Linux que pertenecen al grupo de usuarios con el mismo nombre, que se crea al mismo tiempo que el usuario se crea.
La gestión del grupo de usuarios implica la adición, eliminación y modificación de grupos de usuarios. La adición, eliminación y modificación del grupo realmente es la/etc/Actualización del archivo group.
groupadd opciones grupo de usuarios
Las opciones que se pueden usar son:
-g Especificar el número de identificación del grupo (GID) del nuevo grupo de usuarios (GID).
-o Generalmente con-Al usar la opción g, el GID del nuevo grupo de usuarios puede ser el mismo que el GID de otros grupos de usuarios del sistema.
# groupadd group1
Esta orden agrega un nuevo grupo group al sistema1El número de identificación del nuevo grupo es el número de identificación del grupo más grande existente en la actualidad más uno1。
# groupadd -g 101 group2
Esta orden agrega un nuevo grupo group al sistema2Al mismo tiempo, se especifica el número de identificación del grupo de nuevo grupo101。
# groupdel grupo de usuarios
# groupdel group1
Esta orden elimina el grupo group del sistema1。
groupmod opciones grupo de usuarios
Las opciones comunes incluyen:
-g Asignar un nuevo número de identificación de grupo (GID) al grupo de usuarios.
-o Con-g opciones se utilizan al mismo tiempo, el nuevo GID del grupo de usuarios puede ser el mismo que el GID de otros grupos de usuarios del sistema.
-n nuevo grupo de usuarios. Cambia el nombre del grupo de usuarios a un nuevo nombre
# groupmod -g 102 group2
Esta orden cambia el número de identificación del grupo group2El número de identificación del grupo se cambia a102。
# groupmod –g 10000 -n group3 group2
Esta orden cambia el número de identificación del grupo group2El número de identificación se cambia a10000, y el nombre del grupo se cambia a group3。
Los usuarios pueden cambiar a otros grupos de usuarios después de iniciar sesión utilizando la orden newgrp, y los parámetros de esta orden son los grupos de usuarios de destino. Por ejemplo:
$ newgrp root
Esta orden cambia al usuario root del grupo actual, siempre que el grupo root sea el grupo principal o adicional del usuario. Al igual que la gestión de cuentas de usuarios, la gestión de grupos de usuarios también se puede completar mediante herramientas de gestión de sistema integradas.
Hay muchas formas de completar el trabajo de gestión de usuarios, pero cada una de ellas es en realidad modificar los archivos del sistema relacionados.
La información relacionada con los usuarios y los grupos de usuarios se almacena en algunos archivos del sistema, que incluyen/etc/passwd, /etc/shadow, /etc/group, etc.
A continuación, se presenta el contenido de estos archivos.
Cada usuario en el sistema Linux está/etc/El archivo passwd tiene una línea de registro correspondiente, que registra algunas propiedades básicas de este usuario.
Este archivo es legible para todos los usuarios. Su contenido es similar al siguiente ejemplo:
# cat /etc/passwd root:x:0:0:Superusuario:/: daemon:x:1:1:Demonios del sistema:/etc: bin:x:2:2:Propietario de comandos del sistema:/bin: sys:x:3:3:Propietario de archivos del sistema:/usr/sys: adm:x:4:4:Cuenta de sistema de accounting:/usr/adm: uucp:x:5:5:Administrador de UUCP:/usr/lib/uucp: auth:x:7:21:Administrador de autenticación:/tcb/files/autenticación: cron:x:9:16:Demonio de Cron:/usr/spool/cron: listen:x:37:4:Demonio de red:/usr/net/nls: lp:x:71:18:Administrador de impresora:/usr/spool/lp: sam:x:200:50:Sam san:/home/sam:/bin/sh
Como podemos ver en el ejemplo anterior,/etc/Una línea en passwd representa a un usuario, y cada registro es separado por dos puntos (:)7campos, cuyo formato y significado específico se describen a continuación:
Nombre de usuario:Contraseña:Número de identificación del usuario:Identificación del grupo:Descripción informativa:Directorio principal:Shell de inicio
Generalmente, la longitud no supera8caracteres, y está formado por letras mayúsculas y/o números. El nombre de inicio de sesión no puede contener dos puntos (:), ya que los dos puntos aquí son separadores.
Para ser compatible, es mejor no incluir el carácter punto (.) en el nombre de inicio de sesión y no usar guiones (-) y el signo más (+) comienza con guión.
A pesar de que este campo almacena solo la cadena encriptada de la contraseña del usuario, no el texto en claro, debido a/etc/El archivo passwd es legible para todos los usuarios, por lo que sigue siendo una vulnerabilidad de seguridad. Por lo tanto, muchos sistemas Linux (como SVR4)han utilizado la tecnología shadow, almacenando la contraseña encriptada real del usuario en/etc/en el archivo shadow, mientras que/etc/El campo de contraseña del archivo passwd solo almacena un carácter especial, por ejemplo, “x” o “*”。
Generalmente, es uno a uno con el nombre de usuario. Si varios nombres de usuarios tienen el mismo número de identificación de usuario, el sistema los considera como el mismo usuario, aunque pueden tener diferentes contraseñas, directorios principales y diferentes shells de inicio, etc.
El rango de valores del número de identificación del usuario normal es de 0 a65 535。0 es el número de identificación del superusuario root.1~99Reservado por el sistema, como cuenta de administración, el número de identificación del usuario común comienza desde100 comienza. En el sistema Linux, este límite es500.
Corresponde a/etc/Una entrada en el archivo group.
Por ejemplo, el nombre real del usuario, teléfono, dirección, etc., este campo no tiene mucho uso práctico. El formato de este campo en diferentes sistemas Linux no es uniforme. En muchos sistemas Linux, este campo almacena un texto descriptivo arbitrario, que se utiliza como salida del comando finger.
Es el directorio en el que se encuentra el usuario después de iniciar sesión. En la mayoría de los sistemas, los directorios principales de los usuarios se organizan en el mismo directorio específico, y el nombre del directorio principal del usuario es el nombre de inicio de sesión del usuario. Los usuarios tienen permisos de lectura, escritura y ejecución (búsqueda) en sus directorios principales, y los permisos de acceso de otros usuarios a este directorio se configuran según la situación específica.
El Shell es la interfaz entre el usuario y el sistema Linux. Los Shells de Linux son muchos, cada uno tiene características diferentes. Los más comunes son sh (Bourne Shell), csh (C Shell), ksh (Korn Shell), tcsh (TENEX)/TOPS-20 tipo C Shell), bash (Bourne Again Shell) entre otros.
El administrador del sistema puede asignar a los usuarios un Shell según la situación del sistema y los hábitos de los usuarios. Si no se especifica Shell, el sistema utiliza sh como Shell de inicio predeterminado, es decir, el valor de este campo es/bin/sh.
El Shell de inicio del usuario también se puede especificar como un programa específico (este programa no es un interpretador de comandos).
Utilizando esta característica, podemos limitar que el usuario solo pueda ejecutar aplicaciones específicas, y después de que la aplicación se ejecute, el usuario se desconecta automáticamente del sistema. Algunos sistemas Linux requieren que solo los programas registrados en el sistema aparezcan en este campo.
Estos usuarios en/etc/El archivo passwd también tiene un registro, pero no se puede iniciar sesión porque su Shell de inicio está vacío. Su existencia es principalmente para facilitar la gestión del sistema, satisfaciendo los requisitos de los procesos del sistema para el propietario del archivo.
Los usuarios pseudo comunes se muestran a continuación:
pseudo: usuario con significado bin: posee archivos de comandos ejecutables del usuario sys: posee archivos de sistema adm: posee el archivo de archivos de cuentas uucp: UUCP se utiliza lp: lp o lpd subsystems se utilizan nobody NFS使用
1posee el archivo de cuentas
Además de los usuarios ficticios enumerados anteriormente, hay muchos usuarios ficticios estándar, como: audit, cron, mail, usenet, etc., que también son necesarios para los procesos y archivos relacionados./etc/debido a/etc/El archivo passwd es legible por todos los usuarios, si la contraseña del usuario es demasiado simple o tiene un patrón obvio, una computadora común puede decifrarla fácilmente, por lo que los sistemas Linux con requisitos de seguridad altos separan la palabra encriptada de la contraseña y la almacenan en un archivo separado, este archivo es archivo shadow.
2solo los superusuarios tienen permiso de lectura de este archivo, lo que garantiza la seguridad de las contraseñas de los usuarios./etc/,/etc/registros en shadow y/etc/datos en passwd se generan automáticamente
Su formato de archivo es similar a/etc/similar a passwd, compuesto por varios campos, separados por ":". Estos campos son:
inicio de sesión:contraseña encriptada:última fecha de cambio:tiempo mínimo entre cambios:tiempo máximo entre cambios:tiempo de advertencia:tiempo inactivo:tiempo de expiración:indicadores
"Nombre de inicio de sesión" es el nombre de inicio de sesión que coincide con/etc/La cuenta de usuario que coincide con el nombre de inicio de sesión en el archivo passwd
El campo "contraseña" almacena la contraseña encriptada del usuario, de longitud13caracteres. Si está vacío, la cuenta de usuario no tiene contraseña y no se requiere contraseña al iniciar sesión; si contiene caracteres que no pertenecen a la colección { ./0-9A-Za-caracteres en z } y el usuario no puede iniciar sesión.
"Última fecha de cambio" indica el número de días desde un momento determinado hasta la última modificación de la contraseña del usuario. Este punto de partida puede variar según el sistema. Por ejemplo, en SCO Linux, este punto de partida es1970 años1mes1día.
El "mínimo tiempo entre cambios" se refiere al número mínimo de días necesarios entre dos cambios de contraseña.
El "máximo tiempo entre cambios" se refiere al número máximo de días durante los cuales la contraseña permanece válida.
El campo "tiempo de advertencia" indica el número de días entre el momento en que el sistema comienza a advertir al usuario y la fecha en que la contraseña se considera caducada.
"Tiempo inactivo" indica el número máximo de días que puede mantenerse una cuenta válida sin actividad de inicio de sesión.
El campo "tiempo de expiración" proporciona un número de días absoluto. Si se utiliza este campo, se indica el período de vida del usuario correspondiente a la cuenta. Después de que finalice el período, la cuenta ya no es válida y ya no se puede usar para iniciar sesión.
A continuación se muestra:/etc/Una instancia de shadow:
# cat /etc/shadow root:Dnakfw28zf38w:8764:0:168:7::: daemon:*::0:0:::: bin:*::0:0:::: sys:*::0:0:::: adm:*::0:0:::: uucp:*::0:0:::: nuucp:*::0:0:::: autenticación:*::0:0:::: cron:*::0:0:::: escuchar:*::0:0:::: lp:*::0:0:::: sam:EkdiSECLWPdSa:9740:0:0::::
La agrupación de usuarios es una de las formas de gestionar y controlar los permisos de acceso en el sistema Linux.
cada usuario pertenece a un grupo de usuarios; un grupo puede tener varios usuarios, y un usuario también puede pertenecer a diferentes grupos.
Cuando un usuario es miembro de varios grupos, en/etc/El archivo passwd registra el grupo principal del usuario, es decir, el grupo predeterminado al iniciar sesión, y otros grupos se denominan grupos adicionales.
Para que un usuario pueda acceder a los archivos que pertenecen a un grupo adicional, debe usar primero el comando newgrp para convertirse en miembro del grupo al que desea acceder.
Todos los datos del grupo de usuarios se almacenan en/etc/El archivo group, su formato también es similar a/etc/El archivo passwd, separado por varios campos con dos puntos (:), estos campos incluyen:
nombre del grupo:contraseña:identificador del grupo:lista de usuarios del grupo
"Nombre del grupo" es el nombre del grupo de usuarios, compuesto por letras o números. Con/etc/los nombres de inicio de sesión en passwd no deben repetirse.
El campo "Contraseña" almacena la palabra clave cifrada del grupo de usuarios. Generalmente, los grupos de usuarios del sistema Linux no tienen contraseñas, es decir, este campo generalmente está vacío o es*。
"Identificador del grupo" es similar al identificador del usuario, también es un entero, utilizado internamente por el sistema para identificar el grupo.
"Lista de usuarios del grupo" es la lista de todos los usuarios de este grupo/b],separados entre usuarios por comas (,). Esta lista de usuarios puede ser el grupo principal del usuario o también puede ser un grupo adicional.
/etc/Un ejemplo de archivo group es el siguiente:
root::0:root bin::2:root,bin sys::3:root,uucp adm::4:root,adm daemon::5:root,daemon lp::7:root,lp users::20:root,sam
Añadir y eliminar usuarios es una tarea sencilla para cada administrador de sistemas Linux, pero puede ser más complicado si se debe añadir decenas, cientos o incluso miles de usuarios, no es probable que sigamos usando useradd para añadirlos uno por uno, sino que es necesario encontrar un método más simple para crear usuarios en grandes cantidades. El sistema Linux proporciona herramientas para crear usuarios en grandes cantidades, permitiéndole crear usuarios en grandes cantidades de inmediato, según el siguiente método:
cada columna debe seguir/etc/el formato del archivo de contraseñas passwd debe escribirse con atención, asegurándose de que los nombres de usuario, UID y directorios de hospedaje de cada usuario no sean iguales, donde la columna de contraseñas puede dejarse en blanco o ingresar el número x. Un ejemplo de contenido del archivo user.txt es el siguiente:
user001::600:100:user:/home/user001:/bin/bash user002::601:100:user:/home/user002:/bin/bash user003::602:100:user:/home/user003:/bin/bash user004::603:100:user:/home/user004:/bin/bash user005::604:100:user:/home/user005:/bin/bash user006::605:100:user:/home/user006:/bin/bash
# newusers < user.txt
然后可以执行命令 vipw 或 vi /etc/passwd 检查 /etc/passwd 文件是否已经出现这些用户的数据,并且用户的宿主目录是否已经创建。
将 /etc/shadow 产生的 shadow 密码解码,然后回写到 /etc/passwd 中,并将/etc/shadow的shadow密码栏删掉。这是为了方便下一步的密码转换工作,即先取消 shadow password 功能。
# pwunconv
格式为:
用户名:密码
示例文件 passwd.txt 内容如下:
user001:123456 user002:123456 user003:123456 user004:123456 user005:123456 user006:123456
创建用户密码,chpasswd 会将经过 /usr/bin/passwd 命令编码过的密码写入 /etc/passwd 的密码栏。
# chpasswd < passwd.txt
执行命令 /usr/sbin/pwconv 将密码编码为 shadow password,并将结果写入 /etc/shadow。
# pwconv
这样就完成了大量用户的创建了,之后您可以到/在 home 下检查这些用户宿主目录的权限设置是否都正确,并登录验证用户密码是否正确。