Вопрос или проблема
Я знаю, что домашний каталог нового пользователя можно создать с помощью команды 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
не предоставляет возможности создавать несколько каталогов при создании пользователя в одной команде, решение заключается в использовании скрипта, который будет выполняться после добавления пользователя.
Шаги для автоматизации создания каталогов
-
Создание скрипта для расширенной настройки:
Создайте файл/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
Не забудьте сохранить изменения и выйти из текстового редактора.
-
Установка прав на выполнение скрипта:
После создания файла необходимо сделать его исполняемым:sudo chmod +x /usr/sbin/useradd.local
-
Добавление нового пользователя:
Теперь, когда скрипт настроен, вы можете добавлять новых пользователей, и скрипт будет автоматически создавать дополнительный каталог для каждого нового пользователя. Выполните следующую команду:sudo useradd -m -d /home/<username> <username>
Замените
<username>
на имя нового пользователя.
Заключение
Таким образом, вы можете эффективно создавать домашний каталог для нового пользователя, а также автоматически создавать другой каталог в /ssd/
, предотвращая необходимость ручного выполнения этих действий каждый раз. Использование скрипта позволяет адаптировать процесс и добавлять дополнительные шаги при необходимости.