Як створити обліковий запис Linux за допомогою useradd без створення поштової котушки


11

Підсумок

Чи можу я створити нового користувача без створення поштової котушки та без змін /etc/default/useradd?

Пояснення

Я хочу створити користувача, який має домашній каталог та скелет, але я не хочу, щоб useraddсценарій додавав файл електронної котушки до системи Unix.

Мій /etc/default/useraddфайл констатує це

CREATE_MAIL_SPOOL=yes

але я не хочу змінювати поведінку за замовчуванням.

Зараз я використовую

useradd nomailuser
rm /var/spool/mail/nomailuser

Також я знаю про, -dале здається, що я не можу знайти варіант для створення поштової котушки .

Я думаю про те, чи є можливість використовувати спеціальний /etc/default/useraddфайл.

Відповіді:


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взагалі не працює?
дінчев

1
Тому що це не належить /etc/login.defs.
кванта

@quanta, бо -K MAIL_DIR=/dev/nullя отримав помилку:Creating mailbox file: Not a directory
Кірбі

@drinchev, бо -K CREATE_MAIL_SPOOL=noя отримав помилку configuration error - unknown item 'CREATE_MAIL_SPOOL' (notify administrator).
Кірбі

Я отримав такий самий результат, що і Кірбі ... Я використовував це для контейнера альпійського докера, тому я пішовecho "CREATE_MAIL_SPOOL no" >> /etc/default/useradd
Аді Ройбан

5

Я налаштовував зображення Docker за допомогою пакету Alpine і тінь і отримав ту саму помилку.

Щоб уникнути цієї помилки "Створення файлу поштової скриньки: Немає такого файлу чи каталогу", мені довелося додати наступну вбудовану заміну, перш ніж намагатися додати користувача:

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 вручну, оскільки вони вибираються з різних діапазонів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.