Vsftpd的安装:
aptitude update //更新数据源列表
aptitude install vsftpd //安装vsftpd
Vsftpd的文件结构:
/usr/sbin/vsftpd —- VSFTPD的主程序
/etc/init.d/vsftpd —- 启动脚本
/etc/vsftpd.conf —- 主配置文件
/etc/pam.d/vsftpd —- PAM认证文件
/etc/ftpusers —-记录不允许访问FTP服务器的用户名单
/home/ftp —-Vsftpd的根目录
此外VSFTPD的日志文件为/var/log/vsftpd.log。
Vsftpd的管理控制。
/etc/init.d/vsftpd start //启动vsftpd
/etc/init.d/vsftpd stop //停止vsftpd
/etc/init.d/vsftpd restart //重新启动vsftpd
/etc/init.d/vsftpd reload //重新导入vsftpd
Vsftpd的配置文件。
Vsftp的配置文件默认情况下就已经比较安全,一般不需要修改,下面对常用的几个配置选项进行说明:
Listen=yes 是否以独立进程启动
anonymous_enable=YES 是否允许匿名ftp,如否则选择NO
local_enable=YES 是否允许本地用户登录
anon _enable=YES 是否允许匿名ftp用户访问
anon_upload_enable=YES 是否允许匿名上传文件
anon_mkdir_write_enable=YES 是否允许匿名用户有创建目录的权利
dirmessage_enable=YES 是否显示目录说明文件,默认是YES但需要收工创建.message文件
xferlog_enable=YES 是否记录ftp传输过程
xferlog_file=/var/log/vsftpd.log 设置日志文件的路径
connect_from_port_20=YES 是否确信端口传输来自20(ftp-data)
idle_session_timeout=600 设置默认的断开不活跃session的时间
data_connection_timeout=120 设置数据传输超时时间
max_clients=Number 如果以standalone模式起动,那么只有$Number个用户可以连接,其他的用户将得到错误信息,默认是0不限止
anon_max_rate 匿名最大传输速度,0为无限制
local_max_rate 本地用户最大传输速度,0为无限制
max_clients 最多客户端连接,0为无限制
max_per_ip 一个ip的最大连接数,0为无限制
更多的配置内容请访问vsftpd的官方网站查看:
http://vsftpd.beasts.org/vsftpd_conf.html
配置本地组访问FTP
首先创建用户组clin003和FTP的目录
groupadd clin003-com (组名是随便取的,只是便于管理以后可以随时cat /etc/group |grep clin003-com)
mkdir /tmp/clin003 (我直接给用户分配管理/var/www文件,用来管理apache的web目录)
然后创建用户
useradd -G clin003-com -d /tmp/clin003 -M user1
注:G:用户所在的组 d:指定创建用户的自己目录 M:不建立默认的自家目录,就是在/home下没有自己的目录
我只是为了给自己的web server做文件传输服务,所以做了一个帐户.
useradd -G ftp -d /var/www -M clin003-admin
接着改变文件夹属于的组和用户
chown clin003-admin.clin003-com /var/www 把/var/www改变属主为clin003-admin
chmod 711 /var/www
我这设置的读取权限是711.也就是文件夹所有者完全权限,同组也就是上面的FTP组和所有人都是可执行权限.
Vsftpd添加FTP账号
A. 登录Linux主机后,运行命令:”useradd ftp-clin003 -s /sbin/nologin “。该账户路径默认指向/home/ftp-clin003目录;如果需要将用户指向其他目录,请运行命令:useradd ftp-clin003 -s /sbin/nologin –d /www(其他目录)
B. 设置ftp-clin003用户密码,运行命令:”passwd ftp-clin003” ; 输入两次密码,匹配成功后,就设置好了ftp-clin003用户的密码了。
C.测试连接,您可以在“我的电脑”地址栏中输入 ftp://IP 来连接FTP服务器,根据提示输入账户密码。
umask=022
umask=022中”022″是八进制的写法,如果换成二进制是000010010
在unix中文件权限是三类用户,三种权限。三类用户分别是文件所有者user(u),文件所有者所在主群组group(g)、其它用户others(o),三种权限分别是起读read(r)、写write(w)、执行execute(x)。
如果一个文件的权限如下:所有者有读写的权限,群组有读和执行权限、其它用户有读权限,可以写成:
rw-r-xr–
其中前三位指明了所有者的权限、中间三位指明了组权限、最后三位指明了其它用户的权限。我们用ls -l可以看到文件权限详情,列出来的是10位,最前一位如果是d表示是子目录。
说回来,如果把这上面9位字母换成二进制数则是:
110101100
如果换成八进制是多少?
因此文件权限可以用9位二进制数表示。umask在英文中是屏蔽的意思,那么
umask=022
指屏蔽文件的022权限,到底屏蔽了什么?将这个八进制数用二进制表示
000010010
换算成字母是
—-w–w-
指取消组的写权限、取消其它用户的写权限。
屏蔽这些权限后,剩下什么权限呢?用字母表示是:
rwxr-xr-x
用二进制数表示是:
111101101
你可以对比一下
000010010
可以知道屏蔽前后的换算关系。
在vsftpd的配置文件中,umask=022表示了上权后的文件被屏蔽的权限,另一句话说,就是上传的文件所具有的权限。
本文转自这里。