Видео смотреть бесплатно

Смотреть сестра и брат видео

Официальный сайт toppromotion 24/7/365

Смотреть видео бесплатно

23.04.10 15:48 rakoth

Мой конфигApache Subdomains, users и ленивый админ.

Совсем не конфиг, зато к переименованой неделе ленивого админа подходит.
Преамбула: Наша фирма занимается разработкой/доработкой сайтов. Для крупный проектов заводим репу свинки, а мелкие(на которых по 1 человеку работает) каждый заливает на наш тестовый сервак по фтп.
Т.е. для каждого мелкого проекта создавать поддомен, БД, а ещё и правильно доступ пользователяю выдавать, и чтобы ещё и ничего лишнего сделать не мог.
Амбула:
1) содзать поддомен(каталог +запись в вирт.хостах апача)
2) в домашней директории создать каталог, примонтировать туда созданный каталог. Выдать права
3) Создать БД.
Всё. Легко алгоритмизируется, а руками - лень.
Плюс один раз перезагрузили сервак, все маунты слетели. Теперь ещё сохраняем заклинание монтирования в спец.файлик, чтобы всё потом починить (не хочу fstab захламлять)
Теперь создание поддомена
sudo addsub newsub coder
А с этим нащальнике справляется сам и меня не дёргает.
Но хотел не похвастать, а попросить совета:
Варианты как избавиться от sudo(разные-разные)
Красивости кода, вроде HEREDOC и оформления в целом.
Ну и так советы и камни

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73

#!/bin/sh
if [ -z $1 ]; then
        echo "Usage:\n$0 subdomain [user]"
        echo "subdomain -- subdomain, you want to add to a site"
        echo "user --user/uploader for this subdomain"
        echo -e "This script will create a subdomain record,\n
    add a folder name subdomain to /home/user/ and mount new subdomain there"

        exit
fi

site=default
APACHECONFSUB=/etc/apache2/sites-available/
subdomain=$1
WWWROOT=/var/www/
domain=SITENAME.com
MOUNTFILE=/home/rakoth/bin/mountsubs.sh
MYSQLROOTUSER=root
MYSQLROOTPASS=root
DBPOSTFIX=_db
DBPREFIX=
if [ -z $2 ] ; then
#Doesn't work now.
        user=`whoami`
        my=true
else
        my=false
        user=$2
fi
echo "Using user $user"
isuser=`ls /home|grep $user`
if [ -z $isuser ] ; then
        "No homefolder for user $user found! terminating"
        exit
fi
testsub=`cat $APACHECONFSUB$site |grep $subdomain|grep -i ServerName`
if [ -z $testsub ] ; then
        echo "Creating subdomain $subdomain"
        echo "<VirtualHost *>" >> $APACHECONFSUB$site
        echo "         ServerName $subdomain.rhinoda.com" >> $APACHECONFSUB$site
        echo "         DocumentRoot /var/www/$subdomain/" >> $APACHECONFSUB$site
        echo "</VirtualHost>" >> $APACHECONFSUB$site
else
        echo "Subdomain $subdomain seems to be exist!"
fi
if $my ; then
        mkdir ~/$subdomain
else
        sudo -u $user mkdir /home/$user/$subdomain
fi
sudo mkdir $WWWROOT$subdomain
sudo chmod a+rwX  $WWWROOT$subdomain
sudo mount $WWWROOT$subdomain /home/$user/$subdomain -o bind
echo "sudo mount $WWWROOT$subdomain /home/$user/$subdomain -o bind" > $MOUNTFILE
echo "Done. Put files to /home/$user/$subdomain/"

if ! [ -z $3 ] ; then
    echo "create database $DBPREFIX$subdomain$DBPOSTFIX"|mysql -u$MYSQLROOTUSER -p$MYSQLROOTPASS
    MAXCOUNT=4
    count=1
    RANGE=9
    number=
    while [ "$count" -le $MAXCOUNT ]
    do
        n=$RANDOM
        let "n %= $RANGE"    
        let "number=$number$n"
        let "count += 1"
    done
    echo "grant all on $DBPREFIX$subdomain$DBPOSTFIX.* to $subdomain@'localhost' identified by '$subdomain$number'"|mysql -u$MYSQLROOTUSER -p$MYSQLROOTPASS
    echo -e "DB: $DBPREFIX$subdomain$DBPOSTFI\nUSERNAME:$subdomain\nPW:$subdomain$number"
fi
 



Теги:

rakoth 23.04.10 15:49 # +0
Опа... Вроде, выбирал раздел Мой конфиг...
А теперь править не могу! Забавно.
rakoth 23.04.10 18:12 # +0
ЫЫЫ. Теперь комментарий зохаван кем-то!
Заново:
  • 1
    2
    3
    4
    5
    6
    7
    8
    if [ -z $2 ] ; then
    #Doesn't work now.
            user=`whoami`
            my=true
    else
            my=false
            user=$2
    fi

    sudo заменят имя пользователя на root, а планировалось, что пустой параметр означает себя. Как это можно обойти?
  • Что-нибудь простое, но более серьёзное для генерации пароля на БД мускула
  • Узнать домашнюю директорию пользоватедля по имени.
    Пока только такой вариант есть:
    1
    2
    3
     grep rakoth /etc/passwd | sed -e s"/^\(\w\+:\\)\{2\}\([0-9]\+:\)\{2\}\w\+,[0-9]\+,\w\+,://" | sed -e s"/:.*$//"
    /home/rakoth
     

    Но его я уже через пару месяце не смогу разогнуть. Есть вариант проще?
kstep 23.04.10 19:22 # +1
1
2
3
4

awk -F ':' "/^$USER:/ { print \$6 }" /etc/passwd
realpath ~$USER
 
kstep 23.04.10 19:23 # +0
Второй вариант на поверку только в zsh.
kstep 23.04.10 19:27 # +0
1
2
3
4
5
6
7
8
9
10
11
12

kstep@whitebook:pts/1~.^_^% sudo sh
sh-4.1# echo $USER
root
sh-4.1# echo $UID
0
sh-4.1# echo $SUDO_USER
kstep
sh-4.1# echo $SUDO_UID
1001
sh-4.1#
 
kstep 23.04.10 19:30 # +0
1
2
3
4
5

kstep@whitebook:pts/2~.^_^% sudo sh
sh-4.1# echo ${SUDO_USER:-$USER}
kstep
 
Brun 23.04.10 18:18 # +0
Я тоже ленивый. Структура раздачи виртальных хостов другая. Но на основании Вашего наверно настало време сделать подобное для себя.
Спасибо.
Сделаю свой поделюсь.
kstep 23.04.10 19:33 # +1
Heredoc:

1
2
3
4
5
6
7
8
9
10
11
sh-4.1# cat <<HERE > test.txt
> one
> two
> three
> HERE
sh-4.1# cat test.txt
one
two
three
sh-4.1#
 
kstep 23.04.10 19:36 # +2
Нет:

1
2
3
4

sudo  mkdir $WWWROOT$subdomain
sudo chmod a+rwX  $WWWROOT$subdomain
 


Да:

1
2
3

sudo mkdir -m a+rwX $WWWROOT$subdomain
 
kstep 23.04.10 19:40 # +2
Пароль на базу подбирается на раз-два-три.
Возможный вариант генерации пароля:

1
2
3

base64 < /dev/urandom | head -n 1 | cut -c5-16 | tr -c "[:alnum:]\n" "-"
 
kstep 23.04.10 19:48 # +0
И не надо ручками создавать виртуальный хост каждый раз.
rakoth 23.04.10 21:04 # +0
Вот примерно этого я и хотел! Много и по делу. Огромное человеческое спасибо, особенно за последнюю ссылку. Будем покопать.
rakoth 23.04.10 21:05 # +0
Это у меня только сегодня вилункс шутит? То сообщения теряются, то не туда пишутся...
exelens 24.04.10 13:10 # +0
Ты просто смотри внимательнее куда тыкаешь и куда пишешь коммент.
kstep 24.04.10 13:03 # +0
Только что заметил:
echo  "sudo mount $WWWROOT$subdomain  /home/$user/$subdomain -o bind" > $MOUNTFILE


Перезаписывает $MOUNTFILE, так что там всегда будет команда для монтирования только последнего созданного хоста. Надо > заменить на >>.

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 164)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 3382 из 238 городов)
            Топ пользователей Топ блогов
            welinux.ru

            В хорошем качестве hd видео

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн