So erstellen Sie ein Linux-Konto mit useradd, ohne einen Mail-Spool zu erstellen

11

Zusammenfassung

Kann ich einen neuen Benutzer erstellen, ohne eine Mail-Spool zu erstellen und ohne Änderungen an /etc/default/useradd?

Erklärung

Ich möchte einen Benutzer erstellen, der über ein Basisverzeichnis und eine Skeletion verfügt, aber ich möchte nicht, dass das useraddSkript dem Unix-System eine Mail- Spooldatei hinzufügt.

Meine /etc/default/useraddDatei besagt das

CREATE_MAIL_SPOOL=yes

Ich möchte das Standardverhalten jedoch nicht ändern.

Im Moment benutze ich

useradd nomailuser
rm /var/spool/mail/nomailuser

Ich weiß auch Bescheid, -daber es scheint, dass ich keine Option finden kann, um keine Mail-Spool zu erstellen .

Ich denke darüber nach, ob es eine Option gibt, um eine benutzerdefinierte /etc/default/useraddDatei zu verwenden.

drinchev
quelle

Antworten:

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

Versuchen Sie Folgendes:

# useradd -K MAIL_DIR=/dev/null nomailuser

Es wird eine Warnung angezeigt ( Postfachdatei erstellen: Kein Verzeichnis ), die Sie jedoch ignorieren können.

Quanten
quelle
Danke, wirkt wie ein Zauber. Gibt es einen bestimmten Grund, der -K CREATE_MAIL_SPOOL=noüberhaupt nicht funktioniert?
Drinchev
1
Weil es nicht dazu gehört /etc/login.defs.
Quanten
@ Quanta, denn -K MAIL_DIR=/dev/nullich habe einen Fehler bekommen:Creating mailbox file: Not a directory
Kirby
@drinchev, denn -K CREATE_MAIL_SPOOL=noich habe einen Fehler bekommen configuration error - unknown item 'CREATE_MAIL_SPOOL' (notify administrator).
Kirby
Ich habe das gleiche Ergebnis wie Kirby ... Ich habe es für einen alpinen Hafencontainer verwendet, also bin ich echo "CREATE_MAIL_SPOOL no" >> /etc/default/useradd
mitgegangen
5

Ich richte ein Docker-Image mit Alpine und Shadow-Paket ein und habe den gleichen Fehler erhalten.

Um diesen Fehler "Postfachdatei erstellen: Keine solche Datei oder kein solches Verzeichnis" zu vermeiden, musste ich den folgenden Inline-Ersatz hinzufügen, bevor ich versuchte, einen Benutzer hinzuzufügen:

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

Dies ist eine Dockerfile-Direktive . Wenn Sie Probleme mit einem bereits laufenden Host haben, bearbeiten Sie einfach die Datei / etc / default / useradd und ändern Sie die Einstellung entsprechend. Diese Änderung würde verhindern, dass eine andere Benutzererstellung ihr Postfach erstellt.
Wenn dies nicht das gewünschte Verhalten ist, können Sie einfach den Ordner / var / mail mit erstellen

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

Oder in der Docker-Datei:

RUN mkdir /var/mail 

Hoffe das hat geholfen.

Gaston Martin
quelle
3

Seltsamerweise lautet die Antwort nein. Ich habe gerade den Quellcode gelesen und es gibt keine Option dafür, obwohl es eine Problemumgehung gibt: Maildirs werden nicht für Systemkonten erstellt.

So können Sie tun useradd -r -m. Sie müssen eine UID / GID jedoch auch manuell angeben, da sie aus verschiedenen Bereichen ausgewählt werden.

Dennis Kaarsemaker
quelle