Linux

如何在不創建郵件假離線的情況下使用 useradd 創建 linux 帳戶

  • July 11, 2018

概括

我可以在不創建郵件假離線且不修改的情況下創建新使用者/etc/default/useradd嗎?

解釋

我想創建一個具有主目錄和骨架的使用者,但我不希望useradd腳本將郵件假離線文件添加到 unix 系統。

我的/etc/default/useradd文件指出

CREATE_MAIL_SPOOL=yes

但我不想修改預設行為。

現在我正在使用

useradd nomailuser
rm /var/spool/mail/nomailuser

我也知道,-d但似乎找不到不創建郵件假離線的選項。

我正在考慮是否可以選擇使用自定義/etc/default/useradd文件。

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

會出現警告(創建郵箱文件:不是目錄),但您可以忽略。

我正在使用 Alpine 和 shadow 包設置 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 

希望這有幫助。

引用自:https://serverfault.com/questions/522556