如何使用useradd创建Linux帐户而不创建邮件假脱机


11

摘要

是否可以创建新用户而不创建邮件假脱机且无需修改/etc/default/useradd

讲解

我想创建一个具有主目录和框架的用户,但是我不希望useradd脚本将邮件假脱机文件添加到UNIX系统。

我的/etc/default/useradd档案指出

CREATE_MAIL_SPOOL=yes

但我不想修改默认行为。

现在我正在使用

useradd nomailuser
rm /var/spool/mail/nomailuser

我也知道,-d但似乎找不到无法创建邮件后台处理的选项。

我在考虑是否有使用自定义/etc/default/useradd文件的选项。

Answers:


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,因为-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)
柯比

我得到的结果与Kirby相同……我将其用于高山码头集装箱,所以我选择了echo "CREATE_MAIL_SPOOL no" >> /etc/default/useradd
Adi Roiban

5

我正在使用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 

希望这会有所帮助。


3

奇怪的是,答案是否定的。我只是阅读了源代码,尽管有一种解决方法(某种),但没有任何选择:不会为系统帐户创建maildirs。

这样就可以了useradd -r -m。但是,您也必须手动指定UID / GID,因为它们是从不同范围中选取的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.