1.Vsftp配置
这部分之前已经配置过,但是实验室服务器升了次级,结果配置文件被重置了,导致ftp一直匿名可写状,甚是危险。
ftp的根目录为/home/ftp,我的思路是:建立一个管理账号,拥有完全的读写权限,当然这个只有我知道;一个普通权限,只能用于下载,不能上传;一个upload帐户,用于上传文件,存放在一个独立的upload文件夹下,因此该帐户的根目录就是这个文件夹,其不能向上级访问,该账户拥有读写权限,但是没有删除文件的权限(主要是防止一个用户把另一个用户的文件删除了)。
1.1 配置文件设置(/etc/vsftpd.conf)
1. 关闭匿名访问 anonymous_enable=NO
2. 允许本地用户访问,即服务器上的帐户 local_enable=YES
3. 将用户限制在根目录,不能向上访问。
chroot_local_user=NO
chroot_list_file=/etc/vsftpd.chroot_list
受限的帐户名将会写在指定的文件里。
4.逐用户权限设置
user_config_dir=/etc/vsftpd, 然后建立/etc/vsftpd文件夹,文件夹里面以账户名命令,用来标记每个用户的权限。
5.其他的部分应该都是默认的吧。
1.2 用户设置
新增三个用户,如上所述,将他们设置在一个组里面,并且ftp目录权限设置为750。
1.3 逐用户权限
为了满足要求,需要对每个用户都进行设置,设置代码如下:
1. 管理员权限
write_enable=YES
anonymous_enable=NO
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
download_enable=Yes
local_root=/ftpdata2.普通用户
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
local_umask=022
download_enable=yes
local_root=/ftpdata3. 上传权限(不能删除)
write_enable=YES
cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RNFR,RNTO,SIZE,STOR,TYPE,USER,REST,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,FEAT
file_open_mode=0444
local_root=/ftpdata
1.4 重启服务后就可以正常工作了。
1.5 编码问题。
编码问题其实一直都很头疼。windows用GBK,linux用utf8,想了很久最终还是决定使用utf8,这样可以在linux里面管理文件,否则是一篇乱码,至于windows上只能推荐使用支持utf8的ftp软件了,如FileZilla。
2.使用Quota配置磁盘限额
Quota的作用其实就充当了一个空间管理器的作用,限制某个帐户或者某个账户组只能使用一定大小的磁盘,从而避免需要另外分割一块磁盘的麻烦。
Quota配置其实很简单。
1.先用apt-get 安装。
2. 修改fstab, 将要修改的磁盘块条目中的defaults改为defaults,usrquota,grpquota
3. 重新挂在磁盘: umount /dev/sdax (x代表一个序号) mount -a
4.cd到需要配置的磁盘块,这里我的home文件夹单独一块700多G的硬盘。
5.quotacheck –uvg /home检查磁盘,并生成两个配置的文件。
6. 启动: quotaon –av
7.设定限额。 edquota –u [accout] , 设置soft和hard两项大小,单位是K,soft大小可以超过,但是有有效期,为了避免麻烦,我把两个设成一样。
8. 可以看一下结果。 quota –vu [account]
9. 对于用户组,使用edquota –g [group]来配置。
3.一些小问题
3.1 统计文件夹大小
du -sm 文件夹
返回该文件夹总M数
3.2 umask=022的意思
文件权限可以用9位二进制数表示。umask在英文中是屏蔽的意思,那么umask=022指屏蔽文件的022权限,到底屏蔽了什么?将这个八进制数用二进制表示000010010换算成字母是----w--w-指取消组的写权限、取消其它用户的写权限。
3.3 文件名编码转换
确保安装了conmv, convmv -f UTF-8 -t GBK -r yourfile --notest 将UTF8转换为GBK。
4. 参考资料
1.鸟哥的私房菜——quota: http://linux.vbird.org/linux_basic/0420quota/0420quota.php
2.鸟哥的私房菜——vsftp:http://linux.vbird.org/linux_server/0410vsftpd.php
3.文件名编码转换: http://blog.csdn.net/gavin_dinggengjia/article/details/7538441