【Linux】Vsftp配置ftp服务以及Quota配置磁盘限额

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=/ftpdata

 

2.普通用户

 

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=/ftpdata

 

3. 上传权限(不能删除)

 

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

转载于:https://www.cnblogs.com/xweiwei/archive/2012/10/28/2743921.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值