วิธีสร้างบัญชี linux ด้วย useradd โดยไม่ต้องสร้าง mail spool


11

สรุป

ฉันสามารถสร้างผู้ใช้ใหม่โดยไม่ต้องสร้างเมลสปูลและไม่มีการแก้ไขได้/etc/default/useraddหรือไม่?

ชี้แจง

ฉันต้องการสร้างผู้ใช้ที่มีโฮมไดเร็กตอรี่และโครงกระดูก, แต่ฉันไม่ต้องการให้useraddสคริปต์เพิ่มไฟล์เมลสปูลลงในระบบยูนิกซ์.

/etc/default/useraddไฟล์ของฉันระบุว่า

CREATE_MAIL_SPOOL=yes

แต่ฉันไม่ต้องการแก้ไขพฤติกรรมเริ่มต้น

ตอนนี้ฉันกำลังใช้

useradd nomailuser
rm /var/spool/mail/nomailuser

นอกจากนี้ฉันรู้เกี่ยวกับ-dแต่ดูเหมือนว่าฉันไม่สามารถหาตัวเลือกที่จะไม่สร้างจดหมายเก็บพัก

ฉันคิดว่าจะมีตัวเลือกให้ใช้/etc/default/useraddไฟล์ที่กำหนดเอง

คำตอบ:


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

ดังนั้นลองทำสิ่งนี้:

# useradd -K MAIL_DIR=/dev/null nomailuser

คำเตือนจะปรากฏขึ้น ( การสร้างไฟล์กล่องจดหมาย: ไม่ใช่ไดเรกทอรี ) แต่คุณสามารถเพิกเฉยได้


ขอบคุณทำงานเป็นเสน่ห์ มีเหตุผลเฉพาะใด ๆ ที่-K CREATE_MAIL_SPOOL=noไม่ได้ผลเลยใช่ไหม
drinchev

1
/etc/login.defsเพราะมันไม่ได้เป็นของ
quanta

@quanta เพราะ-K MAIL_DIR=/dev/nullฉันได้รับข้อผิดพลาด:Creating mailbox file: Not a directory
Kirby

@drinchev สำหรับผมได้รับข้อผิดพลาด-K CREATE_MAIL_SPOOL=no configuration error - unknown item 'CREATE_MAIL_SPOOL' (notify administrator)
เคอร์บี้

ฉันได้ผลลัพธ์เช่นเดียวกับเคอร์บี้ ... ฉันใช้มันสำหรับตู้เก็บของอัลไพน์ดังนั้นฉันจึงไปกับecho "CREATE_MAIL_SPOOL no" >> /etc/default/useradd
Adi Roiban

5

ฉันกำลังตั้งค่ารูปภาพ Docker พร้อมอัลไพน์และแพคเกจเงาและได้รับข้อผิดพลาดเดียวกัน

เพื่อหลีกเลี่ยงข้อผิดพลาด"การสร้างไฟล์กล่องจดหมาย: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว"ข้อผิดพลาดฉันต้องเพิ่มการแทนที่แบบอินไลน์ต่อไปนี้ก่อนที่จะพยายามเพิ่มผู้ใช้:

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

นี่คือคำสั่ง Dockerfile หากคุณกำลังดิ้นรนกับโฮสต์ที่กำลังทำงานอยู่ให้แก้ไขไฟล์ / etc / default / useradd และเปลี่ยนการตั้งค่าตามนั้น การเปลี่ยนแปลงนี้จะป้องกันการสร้างผู้ใช้อื่นจากการสร้างกล่องจดหมาย
มันไม่ใช่พฤติกรรมที่ต้องการคุณเพียงแค่สร้างโฟลเดอร์ / var / mail ด้วย

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

หรือใน Dockerfile:

RUN mkdir /var/mail 

หวังว่านี่จะช่วยได้


3

ผิดปกติพอคำตอบคือไม่ ฉันเพิ่งอ่านซอร์สโค้ดและไม่มีตัวเลือกสำหรับสิ่งนี้แม้ว่าจะมีวิธีแก้ไข (เรียงลำดับ): maildirs ไม่ได้ถูกสร้างขึ้นสำหรับบัญชีระบบ

useradd -r -mดังนั้นคุณสามารถทำได้ คุณจะต้องระบุ UID / GID ด้วยตนเองเช่นกันเนื่องจากจะถูกเลือกจากช่วงที่แตกต่างกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.