nixp.ru v3.0

23 января 2017,
понедельник,
03:41:59 MSK

DevOps с компанией «Флант»
Longobard написал 7 января 2005 года в 15:42 (874 просмотра) Ведет себя как мужчина; открыл 291 тему в форуме, оставил 2499 комментариев на сайте.

как задать юзеру пасс из bash скрипта? А то не нашел опции такой для passwd чтобы он брал пасс из аргумента командной строки.

DimitriuS
LONGOBARD
как задать юзеру пасс из bash скрипта? А то не нашел опции такой для passwd чтобы он брал пасс из аргумента командной строки.


эт ж явное нарушение =/

Genie
эт ж явное нарушение =/


агась, но что делать ;)

как задать юзеру пасс из bash скрипта?

можно как-то через STDIN, но у меня что-то не выходит.. ;(

Longobard

бля.

А через useradd -p ак сделать? В мане написано надо бы его сразу закодить в хэш, а уже хэш сувать в качестве арга. какой командой хыш то сделать?

DimitriuS
LONGOBARD
бля.

А через useradd -p ак сделать? В мане написано надо бы его сразу закодить в хэш, а уже хэш сувать в качестве арга. какой командой хыш то сделать?

хех интересная проблема

http://aa11.cjb.net/sun_managers/1998/11/msg00430.html

Longobard

Короче вот мой скрыптик:

#!/bin/bash
## скрипт для добавления пользователя на хостинг
## 1) создаем хоумдиру и $home/cgi-bin и $home/htdocs
## 2) открываем ему либо шелл либо виртуальный фтп-доступ
## 3) создаем базу и юзера
## 4) копируем в $home/htdocs диру phpmyadmin.
## 5) закрываем ее .haccess-ом и прописываем пассы и люгин
## 6) дописываем vhost в конфиг апача
## арги: имя, пасс, имя базы, имя хоста
http_home="/home/http/"
if [ $# != "6" ]
then
      echo "Usage: add-host-user.sh      "
      exit 1
fi
username="$1"
userpass="$2"
dbname="$3"
hostname="$4"
shellstat="$5"
charset="$6"
user_rootdir="$http_home/$hostname"
rootsqlpass="*****"
phpmyadmindir="/home/http/tmp/phpmyadmin"
apache_vhost_conf_path="/etc/apache2/conf/vhosts/vhosts.conf"
## 1) создаем хоумдиру и $home/cgi-bin и $home/htdocs
echo "Creating user homedir in $user_rootdir"
mkdir $user_rootdir
mkdir $user_rootdir/cgi-bin
mkdir $user_rootdir/htdocs
chown -R apache $user_rootdir
chmod -R 777 $user_rootdir
## 2) открываем ему либо шелл либо виртуальный фтп-доступ
if [ $shellstat = "shellon" ]
then
      echo "Creating shell for user $username"
      useradd $username -d $user_rootdir
      hash=`/sbin/my_crypt $userpass AA`
      echo "hash = $hash"
      query="s/$username"':!'"/$username:$hash/"
      echo "query=  $query"
      sed -e $query /etc/shadow > /tmp/shadow_t
      cat /tmp/shadow_t > /etc/shadow
      rm /tmp/shadow_t
else
      echo "Creating only virtual ftp account for user $username"
      echo -e "$userpass\n$userpass" | pure-pw useradd $username -u $RANDOM -g $RANDOM -d $user_rootdir
      pure-pw mkdb /etc/pureftpd.pdb
fi
## 3) создаем базу и юзера
if [ $dbname != "null" ]
then
      echo "Creating db $dbname"
      mysqladmin --password=$rootsqlpass create $dbname
      echo "Creating db user $username"
      query_string="GRANT ALL PRIVILEGES ON $dbname.* TO $username@localhost IDENTIFIED BY '$userpass' WITH GRANT OPTION;"
      echo $query_string | mysql --password=$rootsqlpass
fi
## 4) копируем в $home/htdocs диру phpmyadmin и прописываем там пасс и логин
echo "Installing phpmyadmin to $user_rootdir/htdocs"
cp -R $phpmyadmindir $user_rootdir/htdocs
cd $user_rootdir/htdocs/phpmyadmin
sed -e "s/here_user/$username/" -e "s/here_password/$userpass/" config.inc.php > /tmp/add.tmp
cat /tmp/add.tmp > config.inc.php
rm -f /tmp/add.tmp
## 5) закрываем ее .haccess-ом и прописываем пассы и люгин
echo 'Securing phpmyadmin dir by .htaccess'
htpasswd2 -bc $user_rootdir/.htpasswd $username $userpass
echo -e "AuthType Basic\nAuthName "X-Files"\nAuthUserFile $user_rootdir/.htpasswd\nRequire user $username" > $user_rootdir/htdocs/phpmyadmin/.htaccess
## 6) дописываем vhost в конфиг апача
echo "Editing $apache_vhost_conf_path"
echo -e " \n ServerName $hostname.local \n ServerPath $user_rootdir \n ScriptAlias /cgi-bin / \n DocumentRoot $user_rootdir/htdocs \n AddDefaultCharset $charset\n </VirtualHost>" >> $apache_vhost_conf_path
chown -R apache $user_rootdir
chmod -R 777 $user_rootdir

А то я заипался это все руками делать :) На хостинге уже 7 сайтов.

Longobard
DimitriuS
хех интересная проблема

http://aa11.cjb.net/sun_managers/1998/11/msg00430.html

грустно нах :(

есть 2 варианта:

1) патчить passwd и делать как хочу

2) генерить отдельной прогой хэш

DimitriuS
LONGOBARD
грустно нах :(

есть 2 варианта:

1) патчить passwd и делать как хочу

2) генерить отдельной прогой хэш

Я думаю лучше 2 вариант

Longobard

ыххх пля, тупо…. Ладно, буду делать… Секурити, итить ее налево :(

Longobard

Дмитриус, спасибо за линк!!!

decvar

По поводу хеша. По-умолчанию его делает crypt, который есть ссылка на то, что используется в системе на самом деле.

anonymous

echo password > passwd user

и всё, в сигвине пашет

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.