URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8782
[ Назад ]

Исходное сообщение
"Автоматизация создания пользователей: права, папки"

Отправлено Anu , 24-Июн-10 05:55 
Если ли какие-то утилиты для того, чтобы автоматизировать следующий процесс:

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

буду признательна за помощь в поиске :)
т.к. руками создавать права  - это ад.


Содержание

Сообщения в этом обсуждении
"Автоматизация создания пользователей: права, папки"
Отправлено phpcoder , 24-Июн-10 07:37 
man adduser
man adduser.conf

Остальное тоже делается элементарно из скрипта на shell.



"Автоматизация создания пользователей: права, папки"
Отправлено Pahanivo , 24-Июн-10 09:54 
>man adduser
>man adduser.conf
>
>Остальное тоже делается элементарно из скрипта на shell.

man pw
+ скрипт если ftp пользователи виртуальные


"Автоматизация создания пользователей: права, папки"
Отправлено Anu , 24-Июн-10 10:18 
>man adduser
>man adduser.conf
>
>Остальное тоже делается элементарно из скрипта на shell.

No manual entry for useradd.conf


а каких-то готовых ну или похожих решений нет?


"Автоматизация создания пользователей: права, папки"
Отправлено phpcoder , 24-Июн-10 11:13 
>No manual entry for useradd.conf

Проверял на Ubuntu и здесь он есть. Вам нужно было указывать какой Unix вы используете.

>а каких-то готовых ну или похожих решений нет?

Какие ещё "решения"?! Скрипт пишется тривиально!


"Автоматизация создания пользователей: права, папки"
Отправлено Anu , 24-Июн-10 11:17 
>>No manual entry for useradd.conf
>
>Проверял на Ubuntu и здесь он есть. Вам нужно было указывать какой
>Unix вы используете.
>
>>а каких-то готовых ну или похожих решений нет?
>
>Какие ещё "решения"?! Скрипт пишется тривиально!

opensuse

вам не кажется, что если бы задача для меня была тривиальна - вопроса бы не было :)
никто не спорит, что возможно для вас это и есть тривиальная задача, но и вопрос задаете не вы


"Автоматизация создания пользователей: права, папки"
Отправлено Pahanivo , 24-Июн-10 11:39 
>вам не кажется, что если бы задача для меня была тривиальна -
>вопроса бы не было :)
>никто не спорит, что возможно для вас это и есть тривиальная задача,
>но и вопрос задаете не вы

1) научитесь задавать вопросы, не плодите тупой флуд
2) в каждом хенбуке каждой оси во первЫх строках описаны вопросы связанные с управлением пользователями - вопросы из манов тут не обсуждаются


"Автоматизация создания пользователей: права, папки"
Отправлено Anu , 24-Июн-10 19:10 
>>вам не кажется, что если бы задача для меня была тривиальна -
>>вопроса бы не было :)
>>никто не спорит, что возможно для вас это и есть тривиальная задача,
>>но и вопрос задаете не вы
>
>1) научитесь задавать вопросы, не плодите тупой флуд
>2) в каждом хенбуке каждой оси во первЫх строках описаны вопросы связанные
>с управлением пользователями - вопросы из манов тут не обсуждаются

я не считаю, что это флуд и подобная задача может встречаться у многих и ее решение может быть полезно многим.
а считать себя выше других не только не красиво, но и не дает никакой пользы окружающим, кроме удовлетворения вашего самолюбия, подумайте об этом.

если у вас нет ответов на поставленный вопрос - лучше промолчите, чем плодить, как вы сами же говорите "спам".


"Автоматизация создания пользователей: права, папки"
Отправлено Pahanivo , 24-Июн-10 19:13 
перечитайте еще раз 2)


"Автоматизация создания пользователей: права, папки"
Отправлено XAnder , 24-Июн-10 13:58 
Тут нужно выяснить несколько моментов, прежде чем помогать.
1. Представляете ли вы себе, что такое "скелет пользователя" в терминах Unix?
2. Вы знакомы с программированием на Shell?
3. Вы представляете себе команды, которые делают каждый пункт в отдельности?

Если на все вопросы ответы положительные, то, вероятно, помогать уже не надо :-) Если с чем-то из этого есть трудности, то давайте по пунктам, с чем именно.


"Автоматизация создания пользователей: права, папки"
Отправлено Anu , 24-Июн-10 19:13 
>Тут нужно выяснить несколько моментов, прежде чем помогать.
>1. Представляете ли вы себе, что такое "скелет пользователя" в терминах Unix?
>
>2. Вы знакомы с программированием на Shell?
>3. Вы представляете себе команды, которые делают каждый пункт в отдельности?
>
>Если на все вопросы ответы положительные, то, вероятно, помогать уже не надо
>:-) Если с чем-то из этого есть трудности, то давайте по
>пунктам, с чем именно.

(1) насколько я себе представляю - это список папок определенной структуры, который лежит в какой-то папке и который используется при создании очередного элемента, в нашем случае пользователя.
(2) немного, синтаксис конечно знаю не очень, но вообще с программированием знакома хорошо, просто инструменты использую обычно другие (php). Собственно из-за того, что синтаксис для сложных задач (для меня данная достаточно сложная, хотя она возможно и тривиальна) не доконца понятет (как что делать алгоритмически понимаю, но на практике как написать - нет.
(3) не все

больше спасибо за ответ! :)


"Автоматизация создания пользователей: права, папки"
Отправлено Anu , 24-Июн-10 19:16 
первая часть скрипта (поправляйте) :-)

#/bin/sh

users_group = "hosting"

groupadd $1
useradd $1 -g $1
usermod -g {$users_group}

#дальше нужно как-то указать, что будет  домашней директорией и скопировать туда склетные
#каталоги, я так понимаю это где-то должно настраиваться в конфиге,
#но не знаю где и как сделать


"Автоматизация создания пользователей: права, папки"
Отправлено Anu , 24-Июн-10 21:10 
Итак первая часть скрипта готова:


#/bin/sh

users_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_group

        mkdir $users_dir$user
        cp -R $skelet_dir $users_dir$user

        chown -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


"Автоматизация создания пользователей: права, папки"
Отправлено Anu , 24-Июн-10 21:19 
теперь нужно сделать часть вторую (пока не знаю как через sh):

1) прочитать содержимое файла de_file
2) заменить в нем {DOMAIN_NAME} на значение переменной
3) сохранить получившийся файл под новым названием



"Автоматизация создания пользователей: права, папки"
Отправлено Anu , 25-Июн-10 06:26 
собственно скрипт готов, если кому-то будет интересно - выложу

"Автоматизация создания пользователей: права, папки"
Отправлено XAnder , 25-Июн-10 08:44 
>собственно скрипт готов, если кому-то будет интересно - выложу

Поздравляю! Вот только насчёт скелета: в man useradd (а как без манов - читайте, Pahanivo тут прав, хоть и в своём амплуа) можно увидеть ключик -k, он же --skel, который вместе с -m сотворит чудо - по заданному скелету создаст домашний каталог пользователя. При этом разрешения нужно будет задать один раз - при создании этого скелета, и они будут скопированы один в один. Плюс к тому, в том же мане можно найти ещё несколько ключиков, которые, думается, сильно упростят ваш скрипт.