您的位置:首页 > 运维架构 > Linux

在linux环境下创建用户网站

2007-06-06 17:26 316 查看
原理:
在多用户系统中,用UserDir指令可以允许每个用户在其宿主目录中拥有一个网络站点。使用URL http://example.com/~username/ 的访问者可以获得用户"username"的宿主目录中的内容或者用UserDir指定的子目录中的内容。

1,首先必须加载一个模块,如果有的话,可直接到第二步
sudo cp mods-available/userdir.load mods-enabled/
2,打开你的 apache2的配置文件,加几句如下:
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options Indexes SymLinksIfOwnerMatch IncludesNoExec
</Directory>
这样可以保证在用户没有默认文档下,也有个目录列表
3.下载一个工具,是产生随机密码的
sudo apt-get install makepasswd
4,写一个脚本文件 就叫 Myscript.txt
然后编辑它,把下面的COPY进去
#/bin/bash
#-------------------------------
#first create 200 users
cd
touch user200.txt
for((i=1;i<=200;i++));
do
echo "stud$i

:`expr $i + 500`:`expr $i + 500`::/home/stud$i:/bin/bash">>user200.txt;
done
sudo newusers user200.txt

#second create the rand password
touch user.txt
for((i=1;i<=200;i++));
do
echo "stud$i">>user.txt;
done

#avoid the following files existing
if [ -f pwd1.txt ]
then
rm pwd1.txt
fi
touch pwd1.txt
for((i=1;i<=200;i++));
do
makepasswd>>pwd1.txt;
done

touch pwd200.txt
paste -d: user.txt pwd1.txt>>pwd200.txt
sudo chpasswd<pwd200.txt
#now,the users have already created successfully.
#---------------------------------

#thrid,mkdir one direcroty for everyone ,is called public_html
for((i=1;i<=200;i++));
do
sudo mkdir /home/stud$i/public_html;
done
#now ,start to make homepage for my school or my company
for((i=1;i<=200;i++));
do
echo "<li><a href="http://localhost/~stud$i">stud$i</a>">>index.html;
done
sudo cp index.html /var/www/
sudo /etc/init.d/apache2 restart

#<Directory /home/*/public_html>
# AllowOverride FileInfo AuthConfig Limit
# Options Indexes SymLinksIfOwnerMatch IncludesNoExec
#</Directory>

5,敲一个命令即可
bash Myscript.txt
6.end
这样不用每次敲一大片命令,有点像SQL中的存储过程,这样可省去很多麻烦,现在感觉批处理优点还是挺多的.

测试目录是否存在
if [ -d test ]
then
rm -r test
fi
然后加到脚本里面去,应该运行是很爽的.呵呵.

------------THE END------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: