Cara membuat akun linux dengan useradd tanpa membuat spool mail

11

Ringkasan

Bisakah saya membuat pengguna baru tanpa membuat spool mail dan tanpa modifikasi /etc/default/useradd?

Penjelasan

Saya ingin membuat pengguna yang memiliki direktori home dan kerangka, tetapi saya tidak ingin useraddskrip menambahkan file spool mail ke sistem unix.

/etc/default/useraddFile saya menyatakan itu

CREATE_MAIL_SPOOL=yes

tapi saya tidak ingin mengubah perilaku default.

Untuk saat ini saya menggunakan

useradd nomailuser
rm /var/spool/mail/nomailuser

Saya juga tahu tentang -dtetapi tampaknya saya tidak dapat menemukan opsi untuk tidak membuat surat spool .

Saya sedang memikirkan apakah ada opsi untuk menggunakan /etc/default/useraddfile khusus .

drinchev
sumber

Jawaban:

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

Jadi, coba ini:

# useradd -K MAIL_DIR=/dev/null nomailuser

Sebuah peringatan akan muncul ( Membuat file kotak surat: Bukan direktori ), tetapi Anda dapat mengabaikannya.

kuanta
sumber
Terima kasih, berfungsi sebagai pesona. Apakah ada alasan khusus yang -K CREATE_MAIL_SPOOL=notidak berhasil sama sekali?
drinchev
1
Karena itu bukan milik /etc/login.defs.
kuanta
@quanta, Karena -K MAIL_DIR=/dev/nullsaya mendapat kesalahan:Creating mailbox file: Not a directory
Kirby
@ Drinchev, karena -K CREATE_MAIL_SPOOL=nosaya mendapat kesalahan configuration error - unknown item 'CREATE_MAIL_SPOOL' (notify administrator).
Kirby
Saya mendapatkan hasil yang sama dengan Kirby ... Saya menggunakannya untuk wadah buruh pelabuhan alpine jadi saya pergi denganecho "CREATE_MAIL_SPOOL no" >> /etc/default/useradd
Adi Roiban
5

Saya menyiapkan gambar Docker dengan paket Alpine dan shadow dan mendapatkan kesalahan yang sama.

Untuk menghindari kesalahan "Membuat file kotak surat: Tidak ada file atau direktori" saya harus menambahkan penggantian inline berikut sebelum mencoba menambahkan pengguna:

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

Ini adalah arahan Dockerfile . Jika Anda kesulitan dengan host yang sudah berjalan, cukup edit file / etc / default / useradd dan ubah pengaturannya. Perubahan ini akan mencegah pembuatan pengguna lain dari membuat kotak suratnya dibuat.
Jika itu bukan perilaku yang diinginkan, Anda cukup membuat folder / var / mail

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

Atau di Dockerfile:

RUN mkdir /var/mail 

Semoga ini bisa membantu.

Gaston Martin
sumber
3

Anehnya, jawabannya adalah tidak. Saya baru saja membaca kode sumber dan tidak ada opsi untuk ini, meskipun ada solusi (semacam): maildirs tidak dibuat untuk akun sistem.

Jadi kamu bisa melakukannya useradd -r -m. Anda harus menentukan UID / GID secara manual juga, karena mereka dipilih dari rentang yang berbeda.

Dennis Kaarsemaker
sumber