返回信息流首先感谢此版上的热心人,不详细指出了
配置环境redhat9+vsftpd-1.1.3-8
配置目的:实现用户teacher和student可以登录浏览下载。用户teacher的主目录为/var/www/,在此目录下可以上传、下载、删除和更改文件名;用户student的主目录为/var/www/ftp,此目录下有文件夹download(此目录下仅可下载)和文件夹upload(此目录下仅上传,上传文件不可下载)。
为更好地实现此目的,我们采用vsftpd的独立服务,同时支持本地用户和虚拟用户登录。配置步骤如下:
//生成虚拟用户student的口令库文件,先生成一个文本文件
# vi /etc/vsftp_logins.txt
//文本内容如下,2行。奇数行为用户名,偶数行为口令:
student
student
//用:wq保存退出。
//下面用db_load命令生成口令库文件
# db_load -T -t hash -f /etc/vsftp_logins.txt /etc/vsftpd/vsftpd_login.db
//修改口令库文件的权限
# chmod 600 /etc/vsftpd/vsftpd_logind.db
//新建一个vsftpd的PAM配置文件vsftpd.vu
# vim /etc/pam.d/vsftpd.vu
//vsftpd.vu内容如下:
#%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/vsftpd.ftpusers onerr=succeed
auth required pam_stack.so service=system-auth
auth required pam_shells.so
account required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
//用:wq保存退出
//下面建立用户,并建立相应的目录,修改相应的权限。
# groupadd vsftpuser
# useradd -d /var/www/ teacher
# passwd teacher
# *******
# chown teacher.root /var/www/html
# mkdir -m 755 /var/www/ftp
# useradd -g vsftpuser -d /var/www/ftp/ -s /sbin/nologin vsftpuser
# passwd vsftpuser
# *********
# mkdir -m 555 /var/www/ftp/download
# chown root.root /var/www/ftp/download
# mkdir -m 770 /var/www/ftp/upload
# chown root.vsftpuser /var/www/ftp/upload
//备份vsftpd的默认配置文件vsftpd.conf,并新建配置文件
# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup
# vim /etc/vsftpd/vsftpd.conf
//配置内容如下:
anonymous_enable=NO
local_enable=YES
userlist_enable=YES
chroot_local_user=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Welcome to MITC ftp servicer.
listen=YES
one_process_model=NO
tcp_wrappers=YES
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd_user_config
idle_session_timeout=600
max_clients=150
max_per_ip=1
anon_max_rate=2000000
//用:wq命令保存退出。
//创建单用户权限配置文件的存放目录
# mkdir /etc/vsftpd_user_config
//下面分别创建用户teacher和student的配置文件
# vim /etc/vsftpd_user_config/teacher
write_enable=YES
local_umask=022
//用:wq命令保存退出。
# vim /etc/vsftpd_user_config/student
guest_enable=YES
guest_username=vsftpuser
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
#anon_mkdir_write_enable=YES
anon_umask=0402
//用:wq命令保存退出。
//重新启动vsftpd
# service vsftpd restart
//登录ftp测试成功。
//希望下次系统启动时自动启动vsftpd,则做一下配置。
# ntsysv
//在弹出对话框内用上下键移动到vsftpd选项,用Space键选上,用Tab键保存退出。
附:配置过程中遇到的问题
1. 用户student在目录upload下的上传文件始终都能下载。
解决办法:虚拟用户和匿名用户的上传文件权限是由anon_umask来分配的,默认值为0666,在用户student的配置文件中加上anon_umask=0402一行,使得上传后的文件属主不再具有读权限,从而不能下载。
曾想配置是上传后的文件属主自动改为某一用户,结果失败,原因未明。
2. 原来配置单独使用采用虚拟用户,后想加入本地用户,将两者的pam口令库配置文件合并在一起,发现不能登录。
解决办法:为了让pam支持读取两者的口令库文件,将其中一个的用户配置行中的required改为sufficient,如上面所给的那样。
3. 上面问题解决后,发现虚拟用户登录正常,本地用户登录后进入的却是虚拟用户的目录,权限也如同虚拟用户。
解决办法:这样的原因是在全局配置文件vsftpd.conf中加入了虚拟用户的配置语句:guest_enable=YES和guest_username=vsftpuser。将此两句删除并添加到虚拟用户的配置文件student中。
4. 测试ftp时采用新建空文本文件无论怎么修改权限,上传后始终都能下载。
问题说明:只有文件名的空文件在权限限制时是不受约束的,因此用来测试的文件必须不能为空,不然起不到测试作用。
这是一条镜像帖。来源:北邮人论坛 / linux / #37541同步于 2008/3/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Linux机器人发帖
回报:贴一下我的vsftpd服务器配置过程和笔记,希望有用
yihang
2008/3/11镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
chroot_list_enable 如果启动这项功能,则所有的本机使用者登入均可进到根目录之外的数据夹,除了列在/etc/vsftpd.chroot_list 之中的使用者之外。默认值为NO。在vsftpd.chroot_list这个文件中,每个用户占一行。
user_config_dir定义个别使用者设定文件所在的目录,例如定义user_config_dir=/etc/vsftpd/userconf且主机上有使用者test1,test2,那我们可以在user_config_dir 的目录新增文件名为test1 以及test2。若是test1 登入,则会读取user_config_dir 下的test1 这个档案内的设定。默认值为无。
write_enable
用法:YES/NO
这个选项可以控制FTP 的指令是否允许更改file system,譬如STOR、DELE、
RNFR、RNTO、MKD、RMD、APPE 以及SITE。预设是关闭。
pam_service_name
这边定义PAM 所使用的名称,预设为vsftpd。
chown_uploads
用法:YES/NO
若是启动,所有匿名上传数据的拥有者将被更换为chown_username 当中所设定的使
用者。这样的选项对于安全及管理,是很有用的。默认值为NO。
chown_username这里可以定义当匿名登入者上传档案时,该档案的拥有者将被置换的使用者名称。预
设值为root。
listen_address
若是vsftpd 使用standalone 的模式,可使用这个参数定义使用哪个IP address 提供这
项服务,若是主机上只有定义一个IP address,则此选项不需使用,若是有多个IP
address,可定义在哪个IP address 上提供ftp 服务。若是不设定,则所有的IP address
均会提供此服务。默认值为无。
file_open_mode
上传档案的权限,与chmod 所使用的数值相同。默认值为0666。
local_umask
本机登入者新增档案时的umask 数值。默认值为077。
local_enable
用法:YES/NO
启动此功能则允许本机使用者登入。默认值为YES。
local_root
本机使用者登入时,将被更换到定义的目录下。默认值为无。
Anon_upload_enable=yes 开放上传权限
Anon_mkdir_write_enable=yes 可创建目录的同时可以在此目录中上传文件
Write_enable=yes 开放本地用户写的权限
Anon_other_write_enable=yes 匿名帐号可以有删除的权限
Anonymous_enable=yes 匿名登陆
Connect_form_port_20=yes 启用FTP数据端口的数据连接
Pam_service_name=vsftpd 验证方式
Listen=yes 独立的VSFTPD服务器
local_umask 改变本地用户上传文件的权限
anon_umask 改变虚拟用户上传文件的权限
要注意文件夹的属性,匿名帐户是其它(other)用户要开启它的读写执行的权限
(R)读-----下传 (W)写----上传 (X)执行----如果不开FTP的目录都进不去
如何实现虚拟路径?
可以通过如下的方法来实现。
#mount --bind [原有的目录] [新目录]
如我的ftp的默认目录是/var/ftp,我想把/mnt/LinG/WinSoft文件夹,映射到/var/ftp目录
中,我就如下操作
#mkdir /var/ftp/WinSoft
然后执行mount命令
#mount --bind /mnt/LinG/WinSoft /var/ftp/WinSoft
这样就OK了
mount -o ro --bind 是只能下载
###限制本地用户访问FTP
Userlist_enable=yes (用userlistlai 来限制用户访问)
Userlist_deny=no (名单中的人不允许访问)
Userlist_file=/指定文件存放的路径/ (文件放置的路径)
注:开启userlist_enable=yes匿名帐号不能登陆
4。##设置用户登录后所在的目录
local_root=/var/ftp 设置本地用户登录后所在的目录。默认配置文件中没有设置该项,此时用户登录FTP服务器后,所在的目录为该用户的主目录,对于root用户,则为/root目录。
5。控制用户是否允许切换到上级目录
#设置是否启用chroot_list_file配置项指定的用户列表文件。
chroot_list_enable=yes
#用于指定用户列表文件,该项文件用于控制哪些用户可以切换到FTP站点根目录的上级目录。
chroot_list_file=/etc/vsftpd.chroot_list
#用于指定用户列表文件的用户,是否允许切换到上级目录。
chroot_local_use=yes
#具体情况有以下几种:
#1。当chroot_list_enable=yes,chroot_local_user=yes时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到上级目录:未在文件中列出的用户,不能切换到站点根目录的上级目录。
#2。当chroot_list_enable=yes,chroot_local_user=no时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到上级目录:未在文件中列出的用户,可以能切换到站点根目录的上级目录。
#3.当chroot_list_enable=no,chroot_local_user=no时,所有用户均可以切换到上级目录。
6.设置访问控制
1。设置允许或不允许访问的主机
tcp_wrappers=yes 设置vsftpd服务器是否与tcp wrapper相结合,进行主机的访问控制,轩认设
置为yes.vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny中的设置,以决定请求连接的主机,是否允许连接向该FTP服务器。这两个文件可以起到简易的防火墙的功能。
比如,若要仅允许192.168.1.1`````192.168.1.254的用户,可以访问连接到vsftpd服务器,则
可在/etc/hosts.allow 文件中添加如下内容:
vsftpd :192.168.1. allow
all :all :deny
2.设置允许或不允许访问的用户
#对用户的访问控制由/etc目录下的vsftpd.user_list 和 vsftpd.ftpusers 文件来控制实现。相关配置命令如下:
#决定vsftpd.user_list 文件中的用户是否启用生效。yes则生,no则不生效。
userlist_enable=yes
#决定vsftpd.user_list 文件中的用户是允许访问还是不允许访问,若设为yes,则vsftpd.user_list 文件中的用户将不允许访问ftp服务器,若设置为no,则只有vsftpd.user_list 文件中的用户,才能访问
ftp服务器,
7。定义配置文件
#在vsftpd 服务器中,不现用户还可以使用不同的配置,这通过用户配置文件来实现
#用于设置用户配置文件所在的目录(设置了该项配置项后,当用户登录FTP服务器时,系统就会到/etc/vsftpd/userconf目录下,读取与当前用户名相同的文件,并根据文件中的配置命令对当前用户进行更进一步的配置,比如,利用用户配置文件夹,可实现对不同用户进行访问速度的控制,在各用户配置文件中,定义local_max_rate 配置,以决定该项用户允许的访问速度)
user_config_dir=/etc/vsftpd/userconf
7. 安全选项
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端口进行数据连接)
=========转帖=========
原文章地址http://www.uplinux.com/www/net/02/117.shtml
vsftpd.conf设置部分
引用:
5、VSFTPD的设置选项
VSFTPD的配置文件/etc/vsftpd/vsftpd.conf是个文本文件。以“#”字符开始的行是注释行。每个选项设置为一行,格式为“option=value”,注意“=”号两边不能留空白符。除了这个主配置文件外,还可以给特定用户设定个人配置文件,具体介绍见后。
VSFTPD包中所带的vsftpd.conf文件配置比较简单,而且非常偏执狂的(文档自称:-))。我们可以根据实际情况对其进行一些设置,以使得VSFTPD更加可用。
5.1、连接选项
本部分主要是一些与建立FTP链接相关的选项。
5.1.1、监听地址与控制端口
listen_address=ip address
此参数在VSFTPD使用单独(standalone)模式下有效。此参数定义了在主机的哪个IP地址上监听FTP请求,即在哪个IP地址上提供FTP服务。对于只有一个IP地址的主机,不需要使用此参数。对于多址主机,不设置此参数,则监听所有IP地址。默认值为无。
listen_port=port_value
指定FTP服务器监听的端口号(控制端口),默认值为21。此选项在standalone模式下生效。
5.1.2、FTP模式与数据端口
FTP 分为两类,PORT FTP和PASV FTP,PORT FTP是一般形式的FTP。这两种FTP在建立控制连接时操作是一样的,都是由客户端首先和FTP服务器的控制端口(默认值为21)建立控制链接,并通过此链接进行传输操作指令。它们的区别在于使用数据传输端口(ftp-data)的方式。PORT FTP由FTP服务器指定数据传输所使用的端口,默认值为20。PASV FTP由FTP客户端决定数据传输的端口。PASV FTP这种做法,主要是考虑到存在防火墙的环境下,由客户端与服务器进行沟通(客户端向服务器发出数据传输请求中包含了数据传输端口),决定两者之间的数据传输端口更为方便一些。
port_enable=YES|NO
如果你要在数据连接时取消PORT模式时,设此选项为NO。默认值为YES。
connetc_from_port_20=YES|NO
控制以PORT模式进行数据传输时是否使用20端口(ftp-data)。YES使用,NO不使用。默认值为NO,但RHL自带的vsftpd.conf文件中此参数设为YES。
ftp_data_port=port number
设定ftp数据传输端口(ftp-data)值。默认值为20。此参数用于PORT FTP模式。
port_promiscuous=YES|NO
默认值为NO。为YES时,取消PORT安全检查。该检查确保外出的数据只能连接到客户端上。小心打开此选项。
pasv_enable=YES|NO
YES,允许数据传输时使用PASV模式。NO,不允许使用PASV模式。默认值为YES。
pasv_min_port=port number
pasv_max_port=port number
设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意。默认值为0。把端口范围设在比较高的一段范围内,比如50000-60000,将有助于安全性的提高。
pasv_promiscuous=YES|NO
此选项激活时,将关闭PASV模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址。小心打开此选项。此选项唯一合理的用法是存在于由安全隧道方案构成的组织中。默认值为NO。
pasv_address=
此选项为一个数字IP地址,作为PASV命令的响应。默认值为none,即地址是从呼入的连接套接字(incoming connectd socket)中获取。
5.1.3 ASCII模式
默认情况下,VSFTPD是禁止使用ASCII传输模式。即使FTP客户端使用asc命令,指明要使用ASCII模式,但是,VSFTPD表面上接受了asc命令,而在实际传输文件时,还是使用二进制方式。下面选项控制VSFTPD是否使用ASCII传输模式。
ascii_upload_enable=YES|NO
控制是否允许使用ascii模式上传文件,YES允许,NO不允许,默认为NO。
ascii_download_enable=YES|NO
控制是否允许使用ascii模式下载文件,YES允许,NO不允许,默认为NO。
5.2、性能与负载控制
5.2.1、超时选项
idle_session_timeout=
空闲(发呆)用户会话的超时时间,若是超出这时间没有数据的传送或是指令的输入,则会强迫断线。单位为秒,默认值为300。
data_connection_timeout=
空闲的数据连接的超时时间。默认值为300 秒。
accept_timeout=numerical value
接受建立联机的超时设定,单位为秒。默认值为60。
connect_timeout=numerical value
响应PORT方式的数据联机的超时设定,单位为秒。默认值为60。以上两个选项针对客户端的,将使客户端空闲1分钟后自动中断连接,并在中断1分钟后自动激活连接。
5.2.2 负载控制
max_clients=numerical value
此参数在VSFTPD使用单独(standalone)模式下有效。此参数定义了FTP服务器最大的并发连接数,当超过此连接数时,服务器拒绝客户端连接。默认值为0,表示不限最大连接数。
max_per_ip=numerical value
此参数在VSFTPD使用单独(standalone)模式下有效。此参数定义每个IP地址最大的并发连接数目。超过这个数目将会拒绝连接。此选项的设置将影响到象网际快车这类的多进程下载软件。默认值为0,表示不限制。
anon_max_rate=value
设定匿名用户的最大数据传输速度value,以Bytes/s为单位。默认无。
local_max_rate=value
设定用户的最大数据传输速度value,以Bytes/s为单位。默认无。此选项对所有的用户都生效。此外,也可以在用户个人配置文件中使用此选项,以指定特定用户可获得的最大数据传输速率。
步骤如下:
①在vsftpd.conf中指定用户个人配置文件所在的目录,如:
user_config_dir=/etc/vsftpd/userconf
②生成/etc/vsftpd/userconf目录。
③用户个人配置文件是在该目录下,与特定用户同名的文件,如:
/etc/vsftpd/userconf/xiaowang
④在用户的个人配置文件中设置local_max_rate参数,如:
local_max_rate=80000
以上步骤设定FTP用户xiaowang的最大数据传输速度为80KBytes/s。
VSFTPD 对于速度控制的变化范围大概在80%到120%之间。比如我们限制最高速度为100KBytes/s, 但实际的速度可能在80KBytes/s 到120KBytes/s 之间。当然,若是线路带宽不足时,速率自然会低于此限制。
5.3 用户选项
VSFTPD的用户分为三类:匿名用户、本地用户(local user)以及虚拟用户(guest)。
5.3.1、匿名用户
anonymous_enable=YES|NO
控制是否允许匿名用户登录,YES允许,NO不允许,默认值为YES。
ftp_username=
匿名用户所使用的系统用户名。默认下,此参数在配置文件中不出现,值为ftp。
no_anon_password=YES|NO
控制匿名用户登入时是否需要密码,YES不需要,NO需要。默认值为NO。
deny_email_enable=YES|NO
此参数默认值为NO。当值为YES时,拒绝使用banned_email_file参数指定文件中所列出的e-mail地址进行登录的匿名用户。即,当匿名用户使用banned_email_file文件中所列出的e-mail进行登录时,被拒绝。显然,这对于阻击某些Dos攻击有效。当此参数生效时,需追加banned_email_file参数
banned_email_file=/etc/vsftpd.banned_emails
指定包含被拒绝的e-mail地址的文件,默认文件为/etc/vsftpd.banned_emails。
anon_root=
设定匿名用户的根目录,即匿名用户登入后,被定位到此目录下。主配置文件中默认无此项,默认值为/var/ftp/。
anon_world_readable_only=YES|NO
控制是否只允许匿名用户下载可阅读文档。YES,只允许匿名用户下载可阅读的文件。NO,允许匿名用户浏览整个服务器的文件系统。默认值为YES。
anon_upload_enable=YES|NO
控制是否允许匿名用户上传文件,YES允许,NO不允许,默认是不设值,即为NO。除了这个参数外,匿名用户要能上传文件,还需要两个条件:一,write_enable参数为YES;二,在文件系统上,FTP匿名用户对某个目录有写权限。
anon_mkdir_write_enable=YES|NO
控制是否允许匿名用户创建新目录,YES允许,NO不允许,默认是不设值,即为NO。当然在文件系统上,FTP匿名用户必需对新目录的上层目录拥有写权限。
anon_other_write_enable=YES|NO
控制匿名用户是否拥有除了上传和新建目录之外的其他权限,如删除、更名等。YES拥有,NO不拥有,默认值为NO。
chown_uploads=YES|NO
是否修改匿名用户所上传文件的所有权。YES,匿名用户所上传的文件的所有权将改为另外一个不同的用户所有,用户由chown_username参数指定。此选项默认值为NO。
chown_username=whoever
指定拥有匿名用户上传文件所有权的用户。此参数与chown_uploads联用。不推荐使用root用户。
5.3.2、本地用户
在使用FTP服务的用户中,除了匿名用户外,还有一类在FTP服务器所属主机上拥有账号的用户。VSFTPD中称此类用户为本地用户(local users),等同于其他FTP服务器中的real用户。
local_enable=YES|NO
控制vsftpd所在的系统的用户是否可以登录vsftpd。默认值为YES。
local_root=
定义所有本地用户的根目录。当本地用户登入时,将被更换到此目录下。默认值为无。
user_config_dir=
定义用户个人配置文件所在的目录。用户的个人配置文件为该目录下的同名文件。个人配置文件的格式与vsftpd.conf格式相同。例如定义user_config_dir=/etc/vsftpd/userconf,并且主机上有用户xiaowang,lisi,那我们可以在user_config_dir的目录新增名为xiaowang、lisi的两个文件。当用户lisi 登入时,VSFTPD则会读取user_config_dir下lisi这个文件中的设定值,应用于用户lisi。默认值为无。
5.3.3、虚拟用户
guest_enable=YES|NO
若是启动这项功能,所有的非匿名登入者都视为guest。默认值为关闭。
guest_username=
定义VSFTPD的guest用户在系统中的用户名。默认值为ftp。
5.4、安全措施
5.4.1、用户登录控制
pam_service_name=vsftpd
指出VSFTPD进行PAM认证时所使用的PAM配置文件名,默认值是vsftpd,默认PAM配置文件是/etc/pam.d/vsftpd。
/etc/vsftpd.ftpusers
VSFTPD禁止列在此文件中的用户登录FTP服务器。这个机制是在/etc/pam.d/vsftpd中默认设置的。
userlist_enable=YES|NO
此选项被激活后,VSFTPD将读取userlist_file参数所指定的文件中的用户列表。当列表中的用户登录FTP服务器时,该用户在提示输入密码之前就被禁止了。即该用户名输入后,VSFTPD查到该用户名在列表,VSFTPD就直接禁止掉该用户,不会再进行询问密码等后续步聚。默认值为NO。
userlist_file=/etc/vsftpd.user_list
指出userlist_enable选项生效后,被读取的包含用户列表的文件。默认值是/etc/vsftpd.user_list。
userlist_deny=YES|NO
决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。此选项在userlist_enable 选项启动后才生效。YES,默认值,禁止文件中的用户登录,同时也不向这些用户发出输入口令的提示。NO,只允许在文件中的用户登录FTP服务器。
tcp_wrappers=YES|NO
在VSFTPD中使用TCP_Wrappers远程访问控制机制,默认值为YES。
5.4.2、目录访问控制
chroot_list_enable=YES|NO
锁定某些用户在自家目录中。即当这些用户登录后,不可以转到系统的其他目录,只能在自家目录(及其子目录)下。具体的用户在chroot_list_file参数所指定的文件中列出。默认值为NO。
chroot_list_file=/etc/vsftpd/chroot_list
指出被锁定在自家目录中的用户的列表文件。文件格式为一行一用户。通常该文件是/etc/vsftpd/chroot_list。此选项默认不设置。
chroot_local_users=YES|NO
将本地用户锁定在自家目录中。当此项被激活时,chroot_list_enable和chroot_local_users参数的作用将发生变化,chroot_list_file所指定文件中的用户将不被锁定在自家目录。本参数被激活后,可能带来安全上的冲突,特别是当用户拥有上传、shell访问等权限时。因此,只有在确实了解的情况下,才可以打开此参数。默认值为NO。
passwd_chroot_enable
当此选项激活时,与chroot_local_user选项配合,chroot()容器的位置可以在每个用户的基础上指定。每个用户的容器来源于/etc/passwd中每个用户的自家目录字段。默认值为NO。
5.4.3、文件操作控制
hide_ids=YES|NO
是否隐藏文件的所有者和组信息。YES,当用户使用"ls -al"之类的指令时,在目录列表中所有文件的拥有者和组信息都显示为ftp。默认值为NO。
ls_recurse_enable=YES|NO
YES,允许使用"ls -R" 指令。这个选项有一个小的安全风险,因为在一个大型FTP站点的根目录下使用"ls -R"会消耗大量系统资源。默认值为NO。
write_enable=YES|NO
控制是否允许使用任何可以修改文件系统的FTP 的指令,比如STOR、DELE、RNFR、RNTO、MKD、RMD、APPE 以及SITE。默认值为NO,不过自带的简单配置文件中打开了该选项。
secure_chroot_dir=
这选项指向一个空目录,并且ftp用户对此目录无写权限。当vsftpd不需要访问文件系统时,这个目录将被作为一个安全的容器,用户将被限制在此目录中。默认目录为/usr/share/empty。
5.4.4、新增文件权限设定
anon_umask=
匿名用户新增文件的umask 数值。默认值为077。
file_open_mode=
上传档案的权限,与chmod 所使用的数值相同。如果希望上传的文件可以执行,设此值为0777。默认值为0666。
local_umask=
本地用户新增档案时的umask 数值。默认值为077。不过,其他大多数的FTP服务器都是使用022。如果您的用户希望的话,可以修改为022。在自带的配置文件中此项就设为了022。
5.5、提示信息
ftpd_banner=login banner string
此参数定义了login banner string(登录欢迎语字符串)。用户可以自行修改。预设值为无。当ftpd_banner设置后,将取代系统原来的欢迎词。
banner_file=/directory/vsftpd_banner_file
此项指定一个文本文件,当使用者登入时,会显示此该文件的内容,通常为欢迎话语或是说明。默认值为无。与ftpd_banner相比,banner_file是文本文件的形式,而ftpd_banner是字串格式。banner_file选项将取代ftpd_banner选项。
dirmessage_enable=YES|MO
控制是否启用目录提示信息功能。YES启用,NO不启用,默认值为YES。此功能启用后,当用户进入某一个目录时,会检查该目录下是否有message_file选项所指定的文档,若是有,则会出现此文档的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。
message_file=
此选项,仅在dirmessage_enable选项激活方生效。默认值为.message。
5.6、日志设置
xferlog_enable=YES|NO
控制是否启用一个日志文件,用于详细记录上传和下载。该日志文件由xferlog_file选项指定。默认值为NO,但简单配置文件中激活此选项。
xferlog_file=
这个选项设定记录传输日志的文件名。默认值为/var/log/vsftpd.log。
xferlog_std_format=YES|NO
控制日志文件是否使用xferlog的标准格式,如同wu-ftpd一样。使用xferlog格式,可以重新使用已经存在的传输统计生成器。然而,默认的日志格式更为可读性。默认值为NO,但自带的配置文件中激活了此选项。
log_ftp_protocol=YES|NO
当此选项激活后,所有的FTP请求和响应都被记录到日志中。提供此选项时,xferlog_std_format不能被激活。这个选项有助于调试。默认值为NO。
5.7、其他设置
setproctitle_enable=YES|NO
YES,VSFTPD将在系统进程列表中显示每个会话(session)的状态。也就是说,进程报告将显示每个vsftpd会话在做什么(挂起、下载等),如用ps -ef|grep ftp。出于安全的目的,可以考虑将此选项关闭。NO,进程报告只显示一个vsftpd进程在运行。默认值为NO。
text_userdb_names=YES|No
当使用者登入后使用ls -al 之类指令时,目录列表的用户和组信息域,默认是出现拥有者的UID,而不是该档案拥有者的名称。若是希望出现拥有者的名称,则将此功能开启。默认值为NO。
user_localtime=YES|NO
默认为NO。YES,VSFTPD显示目录列表时使用你本地时区的时间。默认是显示GMT时间。同样,由ftp命令“MDTM”返回的时间值也受此选项影响。
check_shell=YES|NO
此选项仅对不使用PAM方式的VSFTPD生效。当此选项关闭后,当本地用户登录时,VSFTPD不会检查/etc/shells文件以寻找一个有效的用户shell。默认为YES。
nopriv_user=
指定一个用户,当VSFTPD不想要什么权限时,使用此用户身份。这用户最好是一个专用的用户,而不是用户nobody。在大多数的机器上,nobody用户被用于大量重要的事情。默认值为nobody。
pam_service_name=
指明VSFTPD使用用PAM验证服务时的PAM配置文件名。默认值为ftp。
vsftpd可以对每个用户特别限制.
只要给那个用户建立一个设置文件,然后在文件里设置
在vsftpd.conf里加
user_config_dir=/etc/vsftpd/vsftpd_user_conf,这是文件夹.当然你可以自己选把用户文件放在哪
在此文件夹里新建一个文件,跟用户名相同.VSFTPD会比对用户名和用户设置文件.
在文件里加
local_root=PATH to directory就可以更改用户的home directory
local_max_rate=XXXX就可以限制此用户的带宽.
cmds_allowed=XXXXX, 此用户可以使用的指令
# 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
#
# less common commands:
# ACCT* - send account information
# APPE - append to a remote file
# CDUP - CWD to the parent of the current directory
# HELP - return help on using the server
# MODE - set transfer mode
# NOOP - do nothing
# REIN* - reinitialize the connection
# STAT - return server status
# STOU - store a file uniquely
# STRU - set file transfer structure
# SYST - return system type
deny_file={*.mp3,*.mov}此用户MP3和MOV文件被禁止
over,笔记未整理,当时纯是需要哪一步搜索哪一步,整完了也不想再整了。
磁盘配额这一块还没整理过,以后再说吧
服务器配置有些地方不好,不过暂时满足要求了