Cómo crear una cuenta de Linux con useradd sin crear spool de correo

11

Resumen

¿Puedo crear un nuevo usuario sin crear un spool de correo y sin modificarlo /etc/default/useradd?

Explicación

Quiero crear un usuario que tenga un directorio de inicio y esqueleto, pero no quiero que el useraddscript agregue un archivo de spool de correo al sistema unix.

Mi /etc/default/useraddarchivo dice que

CREATE_MAIL_SPOOL=yes

pero no quiero modificar el comportamiento predeterminado.

Por ahora estoy usando

useradd nomailuser
rm /var/spool/mail/nomailuser

También lo sé, -dpero parece que no puedo encontrar una opción para no crear una cola de correo .

Estoy pensando en si hay una opción para usar un /etc/default/useraddarchivo personalizado .

drinchev
fuente

Respuestas:

9

man useradd

   -K, --key KEY=VALUE
       Overrides /etc/login.defs defaults (UID_MIN, UID_MAX, UMASK, PASS_MAX_DAYS and others).

       Example: -K PASS_MAX_DAYS=-1 can be used when creating system account to turn off password ageing, even though
       system account has no password at all. Multiple -K options can be specified, e.g.: -K UID_MIN=100 -K UID_MAX=499

Entonces, prueba esto:

# useradd -K MAIL_DIR=/dev/null nomailuser

Aparecería una advertencia ( Creación de un archivo de buzón: no es un directorio ), pero puede ignorarlo.

quanta
fuente
Gracias, funciona como un encanto. ¿Hay alguna razón específica que -K CREATE_MAIL_SPOOL=nono funciona en absoluto?
drinchev
1
Porque no pertenece a /etc/login.defs.
quanta
@quanta, porque -K MAIL_DIR=/dev/nullrecibí un error:Creating mailbox file: Not a directory
Kirby
@drinchev, porque -K CREATE_MAIL_SPOOL=norecibí un error configuration error - unknown item 'CREATE_MAIL_SPOOL' (notify administrator).
Kirby
Me dieron el mismo resultado que Kirby ... lo estaba usando para un contenedor alpino ventana acoplable así que fui conecho "CREATE_MAIL_SPOOL no" >> /etc/default/useradd
Adi Roiban
5

Estoy configurando una imagen Docker con Alpine y el paquete shadow y obtuve el mismo error.

Para evitar este error "Creación de un archivo de buzón: No existe tal archivo o directorio" , tuve que agregar el siguiente reemplazo en línea antes de intentar agregar un usuario:

RUN sed -i 's/^CREATE_MAIL_SPOOL=yes/CREATE_MAIL_SPOOL=no/' /etc/default/useradd

Esta es una directiva Dockerfile . Si tiene problemas con un host que ya se está ejecutando, simplemente edite el archivo / etc / default / useradd y cambie la configuración en consecuencia. Este cambio evitaría que cualquier otra creación de usuario obtenga su buzón creado.
Si ese no es el comportamiento deseado, simplemente puede crear la carpeta / var / mail con

[ -d /var/mail ] || mkdir /var/mail

O en el Dockerfile:

RUN mkdir /var/mail 

Espero que esto haya ayudado.

Gaston Martin
fuente
3

Por extraño que parezca, la respuesta es no. Acabo de leer el código fuente y no hay ninguna opción para esto, aunque hay una solución (más o menos): los maildirs no se crean para las cuentas del sistema.

Entonces puedes hacerlo useradd -r -m. Sin embargo, también deberá especificar un UID / GID manualmente, ya que se seleccionan de diferentes rangos.

Dennis Kaarsemaker
fuente