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

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

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

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

Например:

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

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

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

В коробке Linux для этого есть /etc/skel.

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
Эта папка служит шаблоном для домашнего каталога нового пользователя.

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

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

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

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

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

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

sudo useradd -m bashdays

Идём в домашнюю папку нового пользователя и видим, что папка содержит шаблонные каталоги, которые мы определили в 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

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

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