Одной из полезных возможностей Webmin является вызов пользовательского скрипта до и после действий по созданию, изменению, удалению пользователей и групп (pre и post hook). В нашей работе по школе мы задействовали этот механизм для автоматического создания папок со ссылками на домашние директории пользователей. Каждая папка представляла собой учеников одного класса.
Для чего все это создавалось
Домашние директории удобно хранить в одном каталоге, расположение которого не меняется. Такая система отлично подходит для администрирования, но совершенно неудобна для случая, когда нужно работать с файлами небольшого подмножества пользователей, объединенных в одну группу. Для решения этой проблемы, можно воспользоваться замечательном средством Unix систем — символическими ссылками.
Использование ссылок позволяет хранить домашние директории в одном месте и параллельно иметь директории, в которых сгруппированы не сами домашние директории пользователей, а ссылки на них. Ссылки должны быть относительными для корректной работы по NFS и возможности монтировать шару с пользователями куда угодно на удаленном компьютере.
Для решения наших задач был выбран следующий шаблон относительного пути:
../../$USERS_HOME_BASE_DIR/$USERNAME
При такой относительной структуре ссылок мы можем как угодно группировать пользователей при следующих двух ограничениях:
- Возможна только плоская группировка, т.е. все возможные группы располагаются на одном уровне
- Ссылки жестко привязаны только к названию домашнего каталога с пользователями. Папка с пользователями должна монтироваться под тем же именем, которое она имеет на сервере. Это ограничение можно обойти созданием дополнительной символической ссылки на компьютере который монтирует сетевую NFS шару, но будем считать такой вариант слишком хлопотным