Linux
如何在不創建郵件假離線的情況下使用 useradd 創建 linux 帳戶
概括
我可以在不創建郵件假離線且不修改的情況下創建新使用者
/etc/default/useradd
嗎?解釋
我想創建一個具有主目錄和骨架的使用者,但我不希望
useradd
腳本將郵件假離線文件添加到 unix 系統。我的
/etc/default/useradd
文件指出CREATE_MAIL_SPOOL=yes
但我不想修改預設行為。
現在我正在使用
useradd nomailuser rm /var/spool/mail/nomailuser
我也知道,
-d
但似乎找不到不創建郵件假離線的選項。我正在考慮是否可以選擇使用自定義
/etc/default/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
希望這有幫助。