Назад | Перейти на главную страницу

Как создать учетную запись linux с помощью useradd без создания спула почты

Резюме

Могу ли я создать нового пользователя без создания спула почты и без модификации /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

Появится предупреждение (Создание файла почтового ящика: не каталог), но можно игнорировать.

Я настраиваю образ Docker с пакетом Alpine и shadow и получаю ту же ошибку.

Чтобы избежать этого «Создание файла почтового ящика: такого файла или каталога нет» error Мне пришлось добавить следующую встроенную замену, прежде чем пытаться добавить пользователя:

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 

Надеюсь, это помогло.

Как ни странно, ответ отрицательный. Я просто прочитал исходный код, и для этого нет возможности, хотя есть обходной путь (вроде): maildirs не создаются для системных учетных записей.

Так ты можешь сделать useradd -r -m. Вам также придется указать UID / GID вручную, поскольку они выбираются из разных диапазонов.