常用参数:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
listen_address=192.168.0.236(指定监听IP)
ftpd_banner=this is a virtual ftp test(服务器信息欢迎信息)
anonymous_enable=yes (允许匿名登陆)
dirmessage_enable=yes (切换目录时,显示目录下.message的内容)
local_umask=022 (ftp上本地的文件权限,默认是077)
connect_form_port_20=yes (启用ftp数据端口的数据连接)
xferlog_enable=yes (激活上传和下传的日志)
xferlog_std_format=yes (使用标准的日志格式)
pam_service_name=vsftpd (验证方式)
listen=yes (独立的vsftpd服务器)
anon_upload_enable=yes (开放上传权限)
anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件)
write_enable=yes (开放本地用户写的权限)
anon_other_write_enable=yes (匿名帐号可以有删除的权限)
anon_world_readable_only=no (放开匿名用户浏览权限)
ascii_upload_enable=yes (启用上传的ascii传输方式)
ascii_download_enable=yes (启用下载的ascii传输方式)
banner_file=/var/vsftpd_banner_file (用户连接后欢迎信息使用的是此文件中的相关信息)
idle_session_timeout=600(秒) (用户会话空闲后10分钟)
data_connection_timeout=120(秒) (将数据连接空闲2分钟断)
accept_timeout=60(秒) (将客户端空闲1分钟后断)
connect_timeout=60(秒) (中断1分钟后又重新连接)
local_max_rate=50000(bite) (本地用户传输率50k)
anon_max_rate=30000(bite) (匿名用户传输率30k)
pasv_min_port=50000 (将客户端的数据连接端口改在
pasv_max_port=60000 50000-60000之间)
max_clients=200 (ftp的最大连接数)
max_per_ip=4 (每ip的最大连接数)
listen_port=5555 (从5555端口进行数据连接)
local_enble=yes (本地帐户能够登陆)
write_enable=no (本地帐户登陆后无权删除和修改文件)
listen_address=N.N.N.N(监听ip)
vsftp 的虚拟用户配置不同主目录
针对不同的使用者使用不同主目录,test1用户使用/home/test1,test2用户使用
/home/test2
Step1. 修改/etc/vsftpd/vsftpd.conf
Step1. 修改/etc/vsftpd/vsftpd.conf
新增底下一行
user_config_dir=/etc/vsftpd/userconf
user_sub_token=$USER
Step2. 新增一个目录:/etc/vsftpd/userconf
mkdir /etc/vsftpd/userconf
Step3. 在/etc/vsftpd/userconf 之下新增一个名为test1 的档案
内容增加一行:
local_root=/home/test1
Step4. 在/etc/vsftpd/userconf 之下新增一个名为test2 的档案
Step4. 在/etc/vsftpd/userconf 之下新增一个名为test2 的档案
内容增加一行:
local_root=/home/test2
禁止下载
方法一 可以对用户操作ftp的命令进行控制。
附上相关说明:
vsftpd.conf文件:
connect_from_port_20=YES
anonymous_enable=NO
write_enable=YES
local_umask=002
listen_port=21
listen=YES
pasv_enable=YES
use_localtime=YES
connect_timeout=60
accept_timeout=60
data_connection_timeout=600
local_enable=YES
cmds_allowed=ABOR,CMD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,SIZE,STOR,TYPE,USER
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot.list
pam_service_name=vsftpd
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
anonymous_enable=NO
write_enable=YES
local_umask=002
listen_port=21
listen=YES
pasv_enable=YES
use_localtime=YES
connect_timeout=60
accept_timeout=60
data_connection_timeout=600
local_enable=YES
cmds_allowed=ABOR,CMD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,SIZE,STOR,TYPE,USER
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot.list
pam_service_name=vsftpd
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
注意cmds_allowe这段
以下是这段相关命令的说明:
(要注意的是,这行里面不能换行,不能有空格)
# ABOR - abort a file transfer 取消文件传输
# CWD - change working directory 更改目录
# DELE - delete a remote file 删除文件
# LIST - list remote files 列目录
# MDTM - return the modification time of a file 返回文件的更新时间
# MKD - make a remote directory 新建文件夹
# NLST - name list of remote directory
# PASS - send password
# PASV - enter passive mode
# PORT - open a data port 打开一个传输端口
# PWD - print working directory 显示当前工作目录
# QUIT - terminate the connection 退出
# RETR - retrieve a remote file 下载文件
# RMD - remove a remote directory
# RNFR - rename from
# RNTO - rename to
# SITE - site-specific commands
# SIZE - return the size of a file 返回文件大小
# STOR - store a file on the remote host 上传文件
# TYPE - set transfer type
# USER - send username
根据自己需要选择吧,vsftpd的确很强大,ftp我只用vsftpd,哈哈!
# ABOR - abort a file transfer 取消文件传输
# CWD - change working directory 更改目录
# DELE - delete a remote file 删除文件
# LIST - list remote files 列目录
# MDTM - return the modification time of a file 返回文件的更新时间
# MKD - make a remote directory 新建文件夹
# NLST - name list of remote directory
# PASS - send password
# PASV - enter passive mode
# PORT - open a data port 打开一个传输端口
# PWD - print working directory 显示当前工作目录
# QUIT - terminate the connection 退出
# RETR - retrieve a remote file 下载文件
# RMD - remove a remote directory
# RNFR - rename from
# RNTO - rename to
# SITE - site-specific commands
# SIZE - return the size of a file 返回文件大小
# STOR - store a file on the remote host 上传文件
# TYPE - set transfer type
# USER - send username
根据自己需要选择吧,vsftpd的确很强大,ftp我只用vsftpd,哈哈!
方法二、
vsftpd.conf中加入
user_config_dir=/etc/vsftpd_user_conf
然后建立/etc/vsftpd_user_conf目录,在这个目录里创建一个名为upload(与ftp用户名相同)的文件
vi /etc/vsftpd_user_conf/upload
加入
download_enable=NO
这样,upload用户可以上传,下载就会报permission denied。
虚拟用户也是一样的。
虚拟用户也是一样的。
本地用户和虚拟用户共存
前面虚拟用户的登陆,利用的认证方式由vsftpd.mysql指定。对于本地用户的认证,由/etc/pam.d/vsftpd指定。新建/etc/pam.d/vsftpd.all,内容如下:
#%PAM-1.0
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth required pam_unix2.so
auth required pam_shells.so
account required pam_unix2.so
password required pam_unix2.so
session required pam_unix2.so [l1]
文件的意思是:首先选择虚拟用户认证,如果认证成功,则停止(
sufficient
参数表示认证成功即退出,可参考
pam
的配置),如果认证不成功,则利用本地用户的认证方式进行认证
auth required pam_unix2.so
auth required pam_shells.so
account required pam_unix2.so
password required pam_unix2.so
session required pam_unix2.so [l1]
[l1]
这部分是原来本地用户的认证文件类容
转载于:https://blog.51cto.com/xujiejun/216188