Jak utworzyć konto Linux z useradd bez tworzenia bufora poczty

11

Podsumowanie

Czy mogę utworzyć nowego użytkownika bez tworzenia bufora poczty i bez modyfikacji /etc/default/useradd?

Wyjaśnienie

Chcę utworzyć użytkownika, który ma katalog domowy i szkielet, ale nie chcę, aby useraddskrypt dodawał plik buforowania poczty do systemu unix.

Mój /etc/default/useraddplik to stwierdza

CREATE_MAIL_SPOOL=yes

ale nie chcę modyfikować domyślnego zachowania.

Na razie korzystam

useradd nomailuser
rm /var/spool/mail/nomailuser

Wiem też o tym, -dale wydaje się, że nie mogę znaleźć opcji, aby nie tworzyć bufora poczty .

Myślę o tym, czy istnieje opcja użycia niestandardowego /etc/default/useraddpliku.

drinchev
źródło

Odpowiedzi:

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

Wypróbuj to:

# useradd -K MAIL_DIR=/dev/null nomailuser

Pojawi się ostrzeżenie ( Tworzenie pliku skrzynki pocztowej: nie katalog ), ale możesz je zignorować.

kwanty
źródło
Dzięki, działa jak urok. Czy jest jakiś konkretny powód, który w -K CREATE_MAIL_SPOOL=noogóle nie działa?
drinchev
1
Ponieważ nie należy do /etc/login.defs.
kwanty
@quanta, -K MAIL_DIR=/dev/nullbo dostałem błąd:Creating mailbox file: Not a directory
Kirby,
@drinchev, -K CREATE_MAIL_SPOOL=nobo mam błąd configuration error - unknown item 'CREATE_MAIL_SPOOL' (notify administrator).
Kirby,
Mam taki sam wynik jak Kirby ... Użyłem go do alpejskiego kontenera echo "CREATE_MAIL_SPOOL no" >> /etc/default/useradd
dokowanego,
5

Konfiguruję obraz Dockera z pakietem Alpine i shadow i dostałem ten sam błąd.

Aby uniknąć tego błędu „Tworzenie pliku skrzynki pocztowej: brak takiego pliku lub katalogu” musiałem dodać następującą wstawkę zastępczą przed próbą dodania użytkownika:

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

To jest dyrektywa Dockerfile . Jeśli masz problemy z już działającym hostem, po prostu edytuj plik / etc / default / useradd i odpowiednio zmień ustawienie. Ta zmiana uniemożliwiłaby utworzenie skrzynki pocztowej każdemu innemu twórcy.
Nie jest to pożądane zachowanie, możesz po prostu utworzyć folder / var / mail za pomocą

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

Lub w Dockerfile:

RUN mkdir /var/mail 

Mam nadzieję, że to pomogło.

Gaston Martin
źródło
3

Co dziwne, odpowiedź brzmi „nie”. Właśnie przeczytałem kod źródłowy i nie ma na to opcji, chociaż istnieje obejście (rodzaj): katalogi pocztowych nie są tworzone dla kont systemowych.

Więc możesz to zrobić useradd -r -m. Musisz także podać UID / GID ręcznie, ponieważ są one wybierane z różnych zakresów.

Dennis Kaarsemaker
źródło