Siguiente: , Anterior: , Subir: Configuración del sistema   [Índice general][Índice]


10.5 Cuentas de usuaria

Los grupos y cuentas de usuaria se gestionan completamente a través de la declaración operating-system. Se especifican con las formas user-account y user-group:

(user-account
  (name "alicia")
  (group "users")
  (supplementary-groups '("wheel"   ;permite usar sudo, etc.
                          "audio"   ;tarjeta de sonido
                          "video"   ;dispositivos audivisuales como cámaras
                          "cdrom")) ;el veterano CD-ROM
  (comment "hermana de Roberto"))

Esta es una cuenta que usa un shell diferente y un directorio personalizado (el predeterminado sería "/home/rober"):

(user-account
  (name "rober")
  (group "users")
  (comment "hermano de Alicia")
  (shell (file-append zsh "/bin/zsh"))
  (home-directory "/home/roberto"))

Durante el arranque o tras la finalización de guix system reconfigure, el sistema se asegura de que únicamente las cuentas de usuaria y grupos especificados en la declaración operating-system existen, y con las propiedades especificadas. Por tanto, la creación o modificación de cuentas o grupos realizadas directamente invocando órdenes como useradd se pierden al reconfigurar o reiniciar el sistema. Esto asegura que el sistema permanece exactamente como se declaró.

Tipo de datos: user-account

Objetos de este tipo representan cuentas de usuaria. Los siguientes miembros pueden ser especificados:

name

El nombre de la cuenta de usuaria.

group

Este es el nombre (una cadena) o identificador (un número) del grupo de usuarias al que esta cuenta pertenece.

supplementary-groups (predeterminados: '())

Opcionalmente, esto puede definirse como una lista de nombres de grupo a los que esta cuenta pertenece.

uid (predeterminado: #f)

Este es el ID de usuaria para esta cuenta (un número), o #f. En el último caso, un número es seleccionado automáticamente por el sistema cuando la cuenta es creada.

comment (predeterminado: "")

Un comentario sobre la cuenta, como el nombre completo de la propietaria.

home-directory

Este es el nombre del directorio de usuaria de la cuenta.

create-home-directory? (predeterminado: #t)

Indica si el directorio de usuaria de esta cuenta debe ser creado si no existe todavía.

shell (predeterminado: Bash)

Esto es una expresión-G denotando el nombre de archivo de un programa que será usado como shell (véase Expresiones-G). Por ejemplo, podría hacer referencia al ejecutable de Bash de este modo:

(file-append bash "/bin/bash")

... y al ejecutable de Zsh de este otro:

(file-append zsh "/bin/zsh")
system? (predeterminado: #f)

Este valor lógico indica si la cuenta es una cuenta “del sistema”. Las cuentas del sistema se tratan a veces de forma especial; por ejemplo, los gestores gráficos de inicio no las enumeran.

password (predeterminada: #f)

Normalmente debería dejar este campo a #f, inicializar la contraseña de usuaria como root con la orden passwd, y entonces dejar a las usuarias cambiarla con passwd. Las contraseñas establecidas con passwd son, por supuesto, preservadas entre reinicio y reinicio, y entre reconfiguraciones.

Si usted realmente quiere tener una contraseña prefijada para una cuenta, entonces este campo debe contener la contraseña cifrada, como una cadena. Puede usar el procedimiento crypt para este fin:

(user-account
  (name "carlos")
  (group "users")

  ;; Especifica una contraseña inicial mediante un hash SHA-512.
  (password (crypt "ContraseñaInicial!" "$6$abc")))

Nota: El hash de esta contraseña inicial estará disponible en un archivo en /gnu/store, legible por todas las usuarias, por lo que este método debe usarse con precaución.

Véase Passphrase Storage en The GNU C Library Reference Manual, para más información sobre el cifrado de contraseñas, y Encryption en GNU Guile Reference Manual, para información sobre el procedimiento de Guile crypt.

Las declaraciones de grupos incluso son más simples:

(user-group (name "estudiantes"))
Tipo de datos: user-group

Este tipo es para grupos de usuarias. Hay únicamente unos pocos campos:

name

El nombre del grupo.

id (predeterminado: #f)

El identificador del grupo (un número). Si es #f, un nuevo número es reservado automáticamente cuando se crea el grupo.

system? (predeterminado: #f)

Este valor booleano indica si el grupo es un grupo “del sistema”. Los grupos del sistema tienen identificadores numéricos bajos.

password (predeterminada: #f)

¿Qué? ¿Los grupos de usuarias pueden tener una contraseña? Bueno, aparentemente sí. A menos que sea #f, este campo especifica la contraseña del grupo.

Por conveniencia, una variable contiene una lista con todos los grupos de usuarias básicos que se puede esperar:

Variable Scheme: %base-groups

Esta es la lista de grupos de usuarias básicos que las usuarias y/o los paquetes esperan que estén presentes en el sistema. Esto incluye grupos como “root”, “wheel” y “users”, así como grupos usados para controlar el acceso a dispositivos específicos como “audio”, “disk” y “cdrom”.

Variable Scheme: %base-user-accounts

Esta es la lista de cuentas de usuaria básicas que los programas pueden esperar encontrar en un sistema GNU/Linux, como la cuenta “nobody”.

Fíjese que la cuenta de “root” no se incluye aquí. Es un caso especial y se añade automáticamente esté o no especificada.


Siguiente: , Anterior: , Subir: Configuración del sistema   [Índice general][Índice]