Если ли какие-то утилиты для того, чтобы автоматизировать следующий процесс:1) при создании пользователя, также создается группа равная имени пользователя
2) пользователь добавляется в другую группу, допустим hosting
3) ему создается скелет с папками с определенными правами:
/hosting 755 root:root
/hosting/domains 751 root:root
/hosting/domains/domain.ru 501 domain.ru:hosting
/hosting/domains/domain.ru/data 751 domain.ru:domain.ru
/hosting/domains/domain.ru/data/www 751 domain.ru:domain.ru
/hosting/domains/domain.ru/data/log 751 domain.ru:domain.ru
4) создается пользователь для proftpd с логином\паролем, как у созданного linux пользователя и доступом в директорию пользователя: /hosting/domains/domain.ruбуду признательна за помощь в поиске :)
т.к. руками создавать права - это ад.
man adduser
man adduser.confОстальное тоже делается элементарно из скрипта на shell.
>man adduser
>man adduser.conf
>
>Остальное тоже делается элементарно из скрипта на shell.man pw
+ скрипт если ftp пользователи виртуальные
>man adduser
>man adduser.conf
>
>Остальное тоже делается элементарно из скрипта на shell.No manual entry for useradd.conf
а каких-то готовых ну или похожих решений нет?
>No manual entry for useradd.confПроверял на Ubuntu и здесь он есть. Вам нужно было указывать какой Unix вы используете.
>а каких-то готовых ну или похожих решений нет?
Какие ещё "решения"?! Скрипт пишется тривиально!
>>No manual entry for useradd.conf
>
>Проверял на Ubuntu и здесь он есть. Вам нужно было указывать какой
>Unix вы используете.
>
>>а каких-то готовых ну или похожих решений нет?
>
>Какие ещё "решения"?! Скрипт пишется тривиально!opensuse
вам не кажется, что если бы задача для меня была тривиальна - вопроса бы не было :)
никто не спорит, что возможно для вас это и есть тривиальная задача, но и вопрос задаете не вы
>вам не кажется, что если бы задача для меня была тривиальна -
>вопроса бы не было :)
>никто не спорит, что возможно для вас это и есть тривиальная задача,
>но и вопрос задаете не вы1) научитесь задавать вопросы, не плодите тупой флуд
2) в каждом хенбуке каждой оси во первЫх строках описаны вопросы связанные с управлением пользователями - вопросы из манов тут не обсуждаются
>>вам не кажется, что если бы задача для меня была тривиальна -
>>вопроса бы не было :)
>>никто не спорит, что возможно для вас это и есть тривиальная задача,
>>но и вопрос задаете не вы
>
>1) научитесь задавать вопросы, не плодите тупой флуд
>2) в каждом хенбуке каждой оси во первЫх строках описаны вопросы связанные
>с управлением пользователями - вопросы из манов тут не обсуждаютсяя не считаю, что это флуд и подобная задача может встречаться у многих и ее решение может быть полезно многим.
а считать себя выше других не только не красиво, но и не дает никакой пользы окружающим, кроме удовлетворения вашего самолюбия, подумайте об этом.если у вас нет ответов на поставленный вопрос - лучше промолчите, чем плодить, как вы сами же говорите "спам".
перечитайте еще раз 2)
Тут нужно выяснить несколько моментов, прежде чем помогать.
1. Представляете ли вы себе, что такое "скелет пользователя" в терминах Unix?
2. Вы знакомы с программированием на Shell?
3. Вы представляете себе команды, которые делают каждый пункт в отдельности?Если на все вопросы ответы положительные, то, вероятно, помогать уже не надо :-) Если с чем-то из этого есть трудности, то давайте по пунктам, с чем именно.
>Тут нужно выяснить несколько моментов, прежде чем помогать.
>1. Представляете ли вы себе, что такое "скелет пользователя" в терминах Unix?
>
>2. Вы знакомы с программированием на Shell?
>3. Вы представляете себе команды, которые делают каждый пункт в отдельности?
>
>Если на все вопросы ответы положительные, то, вероятно, помогать уже не надо
>:-) Если с чем-то из этого есть трудности, то давайте по
>пунктам, с чем именно.(1) насколько я себе представляю - это список папок определенной структуры, который лежит в какой-то папке и который используется при создании очередного элемента, в нашем случае пользователя.
(2) немного, синтаксис конечно знаю не очень, но вообще с программированием знакома хорошо, просто инструменты использую обычно другие (php). Собственно из-за того, что синтаксис для сложных задач (для меня данная достаточно сложная, хотя она возможно и тривиальна) не доконца понятет (как что делать алгоритмически понимаю, но на практике как написать - нет.
(3) не всебольше спасибо за ответ! :)
первая часть скрипта (поправляйте) :-)#/bin/sh
users_group = "hosting"
groupadd $1
useradd $1 -g $1
usermod -g {$users_group}#дальше нужно как-то указать, что будет домашней директорией и скопировать туда склетные
#каталоги, я так понимаю это где-то должно настраиваться в конфиге,
#но не знаю где и как сделать
Итак первая часть скрипта готова:
#/bin/shusers_group="hosting"
users_dir="/hosting/domains/"
skelet_dir="/hosting/hosting_skelet/*"
user=$1
if [ "$2" = "-d" ]; then
userdel $user
groupdel $user
rm -r $users_dir$user
echo "Домен {$user} удален"
else
if [ $1 ]; then
groupadd $user
useradd $user -g $user
usermod $user -A $users_groupmkdir $users_dir$user
cp -R $skelet_dir $users_dir$userchown -R $user:$users_group $users_dir$user
chown -R $user:$user $users_dir$user
chmod -R 501 $users_dir$user
chmod -R 751 $users_dir$user"/data"
chmod -R 755 $users_dir$user"/data/www"
echo "Домен {$user} добавлен"
fi
fi
теперь нужно сделать часть вторую (пока не знаю как через sh):1) прочитать содержимое файла de_file
2) заменить в нем {DOMAIN_NAME} на значение переменной
3) сохранить получившийся файл под новым названием
собственно скрипт готов, если кому-то будет интересно - выложу
>собственно скрипт готов, если кому-то будет интересно - выложуПоздравляю! Вот только насчёт скелета: в man useradd (а как без манов - читайте, Pahanivo тут прав, хоть и в своём амплуа) можно увидеть ключик -k, он же --skel, который вместе с -m сотворит чудо - по заданному скелету создаст домашний каталог пользователя. При этом разрешения нужно будет задать один раз - при создании этого скелета, и они будут скопированы один в один. Плюс к тому, в том же мане можно найти ещё несколько ключиков, которые, думается, сильно упростят ваш скрипт.