Cách tạo tài khoản linux với useradd mà không cần tạo spool mail


11

Tóm lược

Tôi có thể tạo một người dùng mới mà không cần tạo thư thư và không sửa đổi /etc/default/useraddkhông?

Giải thích

Tôi muốn tạo một người dùng có thư mục chính và bộ xương, nhưng tôi không muốn useraddtập lệnh thêm tệp đệm thư vào hệ thống unix.

/etc/default/useraddTập tin của tôi nói rằng

CREATE_MAIL_SPOOL=yes

nhưng tôi không muốn sửa đổi hành vi mặc định.

Hiện tại tôi đang sử dụng

useradd nomailuser
rm /var/spool/mail/nomailuser

Ngoài ra tôi biết về -dnhưng có vẻ như tôi không thể tìm thấy một tùy chọn cho việc không tạo một hộp thư .

Tôi đang suy nghĩ về việc có một tùy chọn để sử dụng /etc/default/useraddtập tin tùy chỉnh .

Câu trả lời:


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

Vì vậy, hãy thử điều này:

# useradd -K MAIL_DIR=/dev/null nomailuser

Một cảnh báo sẽ xuất hiện ( Tạo tệp hộp thư: Không phải là thư mục ), nhưng bạn có thể bỏ qua.


Cảm ơn, làm việc như một nét duyên dáng. Có bất kỳ lý do cụ thể mà -K CREATE_MAIL_SPOOL=nokhông hoạt động?
drinchev

1
Bởi vì nó không thuộc về /etc/login.defs.
lượng tử

@quanta, Vì -K MAIL_DIR=/dev/nulltôi gặp lỗi:Creating mailbox file: Not a directory
Kirby

@drinchev, vì -K CREATE_MAIL_SPOOL=notôi gặp lỗi configuration error - unknown item 'CREATE_MAIL_SPOOL' (notify administrator).
Kirby

Tôi đã nhận được kết quả tương tự như Kirby ... Tôi đã sử dụng nó cho một container echo "CREATE_MAIL_SPOOL no" >> /etc/default/useradd
docker

5

Tôi đang thiết lập hình ảnh Docker với gói Alpine và bóng tối và gặp lỗi tương tự.

Để tránh lỗi "Tạo tệp hộp thư: Không có tệp hoặc thư mục như vậy", tôi đã phải thêm thay thế nội tuyến sau đây trước khi thử thêm người dùng:

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

Đây là một chỉ thị Dockerfile . Nếu bạn đang vật lộn với một máy chủ đã chạy, chỉ cần chỉnh sửa tệp / etc / default / useradd và thay đổi cài đặt cho phù hợp. Thay đổi này sẽ ngăn bất kỳ sáng tạo người dùng nào khác nhận được hộp thư của nó được tạo.
Đó không phải là hành vi mong muốn, bạn chỉ có thể tạo thư mục / var / mail với

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

Hoặc trong Dockerfile:

RUN mkdir /var/mail 

Hy vọng điều này sẽ giúp.


3

Thật kỳ lạ, câu trả lời là không. Tôi chỉ đọc mã nguồn và không có tùy chọn nào cho việc này, mặc dù có một cách giải quyết (loại): maildirs không được tạo cho tài khoản hệ thống.

Vì vậy, bạn có thể làm useradd -r -m. Bạn cũng sẽ phải chỉ định UID / GID theo cách thủ công, vì chúng được chọn từ các phạm vi khác nhau.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.