useradd: создать домашний каталог И другую директорию для пользователя

Вопрос или проблема

Я знаю, что домашний каталог нового пользователя можно создать с помощью команды sudo useradd -m -d /home/<username> <username>.

Однако предположим, что я также хочу создать другой не домашний каталог для этого пользователя по пути /ssd/<username>, и я не хочу делать это вручную каждый раз, когда добавляю нового пользователя в систему. Другими словами, я не хочу выполнять эти действия отдельно:

  • useradd -m -d /home/<username> <username>
  • mkdir /ssd/<username>
  • изменить права доступа к каталогу.

Я хотел бы сделать все 3 действия одной командой.

Предоставляет ли useradd или adduser опцию, которая позволяет сделать это в момент создания пользователя?

В файле /etc/login.defs может быть запись – USERADD_CMD /usr/sbin/useradd.local. Эта команда выполняется после useradd. Отредактируйте файл /usr/sbin/useradd.local, чтобы создать все, что вам нужно, и при необходимости измените права доступа.

Ответ или решение

Для создания нового пользователя с домашним каталогом и дополнительным каталогом в /ssd/ с помощью команды useradd, можно воспользоваться следующим подходом. Учитывая, что стандартная команда useradd не предоставляет возможности создавать несколько каталогов при создании пользователя в одной команде, решение заключается в использовании скрипта, который будет выполняться после добавления пользователя.

Шаги для автоматизации создания каталогов

  1. Создание скрипта для расширенной настройки:
    Создайте файл /usr/sbin/useradd.local, который будет автоматически вызываться после выполнения команды useradd. Этот файл должен содержать команды для создания дополнительного каталога и установки прав доступа.

    sudo nano /usr/sbin/useradd.local

    Вставьте следующий код в файл useradd.local:

    #!/bin/bash
    # Создание дополнительного каталога для нового пользователя
    USER_HOME_DIR="/home/$1"
    ADDITIONAL_DIR="/ssd/$1"
    
    if [ ! -d "$ADDITIONAL_DIR" ]; then
       mkdir "$ADDITIONAL_DIR"
       # Установка прав доступа на каталог
       chown "$1:$1" "$ADDITIONAL_DIR"
    fi

    Не забудьте сохранить изменения и выйти из текстового редактора.

  2. Установка прав на выполнение скрипта:
    После создания файла необходимо сделать его исполняемым:

    sudo chmod +x /usr/sbin/useradd.local
  3. Добавление нового пользователя:
    Теперь, когда скрипт настроен, вы можете добавлять новых пользователей, и скрипт будет автоматически создавать дополнительный каталог для каждого нового пользователя. Выполните следующую команду:

    sudo useradd -m -d /home/<username> <username>

    Замените <username> на имя нового пользователя.

Заключение

Таким образом, вы можете эффективно создавать домашний каталог для нового пользователя, а также автоматически создавать другой каталог в /ssd/, предотвращая необходимость ручного выполнения этих действий каждый раз. Использование скрипта позволяет адаптировать процесс и добавлять дополнительные шаги при необходимости.

Оцените материал
Добавить комментарий

Капча загружается...