FTP

服务器:

光盘(挂载) - 装vsftpd-2.0.5-16.e15_4.1.i386.rpm


# mount /dev/cdrom  /media/cdrom
# cd /media/cdrom/Server
# rpm -ivh vsftpd + Tab 键
# rpm -qc vsftpd
# cd /etc/vsftpd
# ls
# cp vsftpd.conf vsftpd.conf.bak
# grep - v "^#" /etc/vsftpd/vsftpd.conf.bak | grep - v "^;" | grep - v "^$" >

/etc/vsftpd/vsftpd.conf
# vi /etc/vsftpd/vsftpd.conf

1、匿名访问

anonymous_enable=yes
anon_umask=022
anon_upload_enable=yes
anon_mkdir_write_enable=yes

 

2、用户访问

anonymous_enable=no
local_enable=yes
local_umask=022
chroot_local_user=yes
max_clients=20
max_per_ip=2
local_max_rate=102400
pasv_enable=yes
pasv_min_port=24500
pasv_max_port=24600
userlist_enable=yes
userlist_deny=no
local_root=/var/ftp                   (用户登录后的根目录禁锢为/var/ftproot)
chroot_list_enable=yes
chroot_local_user=yes
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

# chmod a+w /var/ftp
# cd /etc/vsftpd
# touch vsftpd.chroot_list
# vi /etc/vsftpd/vsftpd.chroot_list

root
bb

:wq

# cd /etc/vsftpd
# mkdir vsftpd_user_config
# useradd ming
# passwd 123
# touch ming
# vi ming

local_root=/usr/local/apache/htdocs/benetcom
local_umask=022
local_max_rate=50000
write_enable=yes

:wq

# chown ming:ming /usr/local/apache/htdocs/benetcom
# service vsftpd start/restart
# service iptables stop

 


客户端:

1、匿名访问:ftp 192.168.1.2 - 用户名:ftp  密码:ftp

2、用户访问:ftp 192.168.1.2 - 用户名  密码

 


注:阻止用户切换目录(只能在其指定目录下)


chroot_list_enable=yes
chroot_local_user=yes
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list


给指定用户切换目录的权限(该文件外的用户无此权限)

# vi /etc/vsftpd/vsftpd.chroot_list

root
bb

 

anon_upload_enable=yes/no           //是否允许匿名用户上传

anon_mkdir_write_enable=yes/no      //是否允许匿名用户建立文件夹

anon_other_write_enable=yes/no      //是否允许匿名用户可以使用除了建立文件夹和上传文件以外其他的

ftp写操作命令.例如:delete、rename等等

anon_world_readable_only=yes/no     //匿名用户是否允许下载所有用户都可以访问的文件

 

用户上传时不仅要给用户可以上传的权限,还要设置其上传到的目录所有用户有写的权限


# chmod a+w 上传的目录

 


write_enable=yes/no             //是否允许全局可写

download_enable=yes/no          //是否允许所有用户可以下载

dirlist_enable=yes/no           //是否允许所有用户可以浏览(列出文件列表)

 


ftpd_banner=欢迎语字符串

banner_file=文件

dirmessage_enable=yes/no

message_file=文件

参数ftpd_banner设置的欢迎语字符串将在登录时看到,如果想做出多行欢迎语,就要把内容单独存为

banner_file参数指定的文件,应用中这两个参数二选一即可.dirmessage_enable和message_file参数是进入某

个目录后显示的欢迎信息,用法与前两个参数一样.

 


chmod_enable=yes/no            //是否允许本地用户改变ftp服务器上档案的权限

 

user_config_dir=/etc/vsftpd/vsftpd_user_config     //用户单独配置文件所在目录

 

新建一个普通用户huabo,再新建一个目录/etc/vsftpd/vsftpd_user_config,其下建一个文件huabo,里面加入下

面几行:
                local_root=/var/www/html
                local_umask=022
                local_max_rate=50000
                write_enable=yes
        把/var/www/html的所有者改为huabo:
                chown huabo:huabo /var/www/html

 

 


userlist_enable=yes
userlist_deny=yes
userlist_file=/etc/vsftpd/vsftpd.userlist
然后再新建一个文件/etc/vsftpd/vsftpd.userlist,在里面加入用户名

 

 

 

基于IP的虚拟ftp站点
        这一小节我们来讨论在同一服务器上建立多个ftp站点,每个站点相互独立,拥有独立的配置文件.当然

服务器必须有两个以上的IP地址.在standalone模式下,我们可以考虑启动多个ftp服务进程;在xinetd模式下,可

以让守护进程来管理.下面我们分别讨论这两种情况.为简单起见,我们在服务器上建立两个匿名虚拟站点.下面

是这两个站点的信息:
                站点1:
                        ip地址:192.168.100.100
                        主配置文件:/etc/vsftpd/vsftpd.conf 
                        匿名用户映射的本地用户名:ftp
                        匿名用户主目录:/var/ftp/  
                站点2:              
                        ip地址:192.168.200.1
                        主配置文件:/etc/vsftpd/vsftpd2.conf 
                        匿名用户映射的本地用户名:ftp2
                        匿名用户主目录:/var/ftp2/

 


# vi /etc/hosts.allow
                        vsftpd:192.168.1.0/255.255.255.0        //允许192.168.1.0/24网段可以访问

ftp
                # vi /etc/hosts.deny
                        vsftpd:ALL                              //拒绝其它所有主机访问ftp

 

anon_root=/var/pub         设置匿名用户的登录目录


no_anon_password=YES|NO    控制匿名用户登入时是否需要密码

 

anon_world_readable_only=YES|NO    控制是否只允许匿名用户下载可阅读文档。


anon_upload_enable=YES|NO    控制是否允许匿名用户上传文件


anon_mkdir_write_enable=YES|NO    控制是否允许匿名用户创建新目录


chown_uploads=YES|NO    是否修改匿名用户所上传文件的所有权。YES,匿名用户所上传的文件的所有权将

改为另外一个不同的用户所有,用户由chown_username参数指定

 


xferlog_enable=YES           是否记录ftp传输过程


xferlog_file=/var/log/vsftpd.log   传输日志的路径和名字默认是/var/log/vsftpd.log

 

listen_address=IP      当有服务器有多块网卡时,可选择侦听哪个