Come creare un account Linux con useradd senza creare spool di posta


11

Sommario

Posso creare un nuovo utente senza creare spool di posta e senza modificarne /etc/default/useradd?

spiegazione

Voglio creare un utente che abbia una home directory e uno scheletro, ma non voglio che lo useraddscript aggiunga un file di spool di posta al sistema unix.

Il mio /etc/default/useraddfile lo afferma

CREATE_MAIL_SPOOL=yes

ma non voglio modificare il comportamento predefinito.

Per ora sto usando

useradd nomailuser
rm /var/spool/mail/nomailuser

Inoltre lo so, -dma sembra che non riesca a trovare un'opzione per non creare uno spool di posta .

Sto pensando c'è un'opzione per utilizzare il /etc/default/useraddfile personalizzato .

Risposte:


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

Quindi, prova questo:

# useradd -K MAIL_DIR=/dev/null nomailuser

Verrà visualizzato un avviso ( Creazione del file della cassetta postale: non una directory ), ma è possibile ignorarlo.


Grazie, funziona come un fascino. C'è qualche motivo specifico che -K CREATE_MAIL_SPOOL=nonon funziona affatto?
drinchev,

1
Perché non appartiene a /etc/login.defs.
quanta,

@quanta, Perché -K MAIL_DIR=/dev/nullho ricevuto un errore:Creating mailbox file: Not a directory
Kirby,

@drinchev, perché -K CREATE_MAIL_SPOOL=noho ricevuto un errore configuration error - unknown item 'CREATE_MAIL_SPOOL' (notify administrator).
Kirby,

Ho ottenuto lo stesso risultato di Kirby ... Lo stavo usando per un container alpino, quindi sono andato conecho "CREATE_MAIL_SPOOL no" >> /etc/default/useradd
Adi Roiban,

5

Sto configurando un'immagine Docker con pacchetto Alpine e shadow e ho avuto lo stesso errore.

Per evitare questo errore "Creazione del file della cassetta postale: nessun file o directory", ho dovuto aggiungere la seguente sostituzione in linea prima di provare ad aggiungere l'utente:

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

Questa è una direttiva Dockerfile . Se hai problemi con un host già in esecuzione, modifica il file / etc / default / useradd e modifica le impostazioni di conseguenza. Questa modifica impedirebbe a qualsiasi altra creazione utente di creare la propria cassetta postale.
Se questo non è il comportamento desiderato, puoi semplicemente creare la cartella / var / mail con

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

O nel Dockerfile:

RUN mkdir /var/mail 

Spero che questo abbia aiutato.


3

Stranamente, la risposta è no. Ho appena letto il codice sorgente e non esiste alcuna opzione per questo, anche se esiste una soluzione alternativa (una sorta di): i maildir non vengono creati per gli account di sistema.

Quindi puoi farlo useradd -r -m. Dovrai specificare un UID / GID anche manualmente, poiché vengono scelti da intervalli diversi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.