Изба архитектурных костылей

Разбираем использование /etc/skel как шаблона для домашних каталогов. Узнаете, как задать структуру папок и файлов, использовать кастомные шаблоны, и даже изменить расположение домашней папки.


Вспомнил тут приколюху при создании нового пользователя в Linux. Ща расскажу.

Короче при создании нового юзера, создается папка /home/user и в ней минимальный набор файлов, типа .bashrc, .profile. И все, больше в ней ничего нет.

Про различия .profile/.bashrc и т.п. я писал в этом посте.

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

Например:

/home/user/www/htdocs
/home/user/www/logs
/home/user/www/tmp


Ну тут логично, триггерим какой-нибудь bash скрипт который через mkdir создаст эти папки.

НО так не интересно!


В коробке линукса для этого есть /etc/skel. Эта папка служит шаблоном для домашнего каталога нового пользователя.

Вот это нихуясе? Ага!

Работает это так:

sudo mkdir -p /etc/skel/www/htdocs /etc/skel/www/logs /etc/skel/www/tmp


Создаём необходимый шаблон со структурой папок.

Так-же можешь добавить шаблонные файлы .bashrc и .profile

Теперь создаем нового пользователя:

sudo useradd -m bashdays
Мнение эксперта
Роман Шубин
Роман Шубин
CEO & CTO, действующий девопс-инженер в «Цифровой улей»
Задать вопрос
Идем в домашнюю папку нового пользователя и видим, что папка содержит шаблонные папки, которые мы определили в skel.

Ну красота же!

Можешь создавать альтернативные шаблоны структур и затем это раскатывать так:

sudo useradd -m -k /custom/skel bashdays


И да, все права на папки и файлы автоматически установятся на те что нужно.

Ну и на закуску:

Не обязательно хостить пользователей в папке /home, можно сделать так:

sudo useradd -m -d /var/www/bashdays bashdays


В этом случае домашняя папка юзера будет расположена в /var/www/, а в /etc/passwd будет такое:

bashdays:x:1000:1000::/var/www/bashdays:/bin/sh


Вот так вот и живем. Изучай.

А какие приколюхи знаешь ты? Камон в комменты.

Комментарии