yang0cs 2008-01-04
一个全套的LINUX虚拟主机业务应该包括DNS解析,FTP上传,APACHE虚拟主机设置,磁盘空间限定等等,本文的目的就在于如何让大家在短时间内学会如何配置虚拟主机服务。前提条件:假设我们有一台经过注册合法的DNS服务器,域名为ns.domain.com(aa.aa.aa.aa),一台用作邮件转发服务器(bb.bb.bb.bb)以及一台WEB服务器(cc.cc.cc.cc),客户在申请域名的时候将自己的DNS服务器指向设置为 ns.domain.com或其IP地址aa.aa.aa.aa。现在假设一家公司注册了test.com这个域名并由我们来负责做DNS指向和网站寄存业务,我们来看一看具体的步骤是怎样的1.添加用户帐号# groupadd guest(设置一个用户组,将所有的虚拟主机用户都放到这个组里)# adduser -g guest -s /usr/bin/passwd -d /opt/vhosts/www.test.com test;创建一个用户,该用户符合下列条件:1.他的登陆用户名是test2.用户组是guest3.他的shell是/usr/bin/passwd
这样用户将无法登陆我们的系统,而只能用ftp上传文件,当他试图用telnet或者ssh方式访问server时,他只能修改自己的明码。4.他的主页空间是在/opt/vhosts/www.test.com目录下。
我们还需要修改/etc/shells文件把/usr/bin/passwd追加到该文件的最后:
# echo /usr/bin/passwd >>/etc/shells
# cat /etc/shells(检查改动是否生效)
/bin/bash
/bin/sh
/bin/tcsh
/bin/csh
/bin/ash
/bin/bsh
/bin/bash2
/bin/ksh
/bin/zsh
/usr/bin/passwd <--我们所修改的部分
之所以这么做是因为出于安全的因素,如果用户的shell没有在/etc/shells文件中列出,那么该用户将被禁止使用ftp服务。2.设置FTP服务
设置ftp服务主要是设置访问控制,禁止FTP用户访问除其自己目录以外的其他目录以免其对我们的服务器构成威胁。修改你自己机器上的/etc/ftpaccess文件把该文件改为:
class all real,guest,anonymous *
email root@localhost
loginfails 5
readme README* login
readme README* cwd=*
message /welcome.msg login
message .message cwd=*
guestgroup guest
compress yes all
tar yes all
chmod yes guest
chmod no anonymous
delete yes guest
delete no anonymous
overwrite yes guest
overwrite no anonymous
rename yes guest
rename no anonymous
log transfers anonymous,real inbound,outbound
shutdown /etc/shutmsg
passwd-check rfc822 warn
注意这里的guest要和你上面添加用户之前定义的用户组一致,也就是说如果你添加的用户是其他组比如是ftpuser的话,那么你要把ftpaccess文件里的guest全部换成ftpuser。