RedHat 5下vsftp的配置与公共目录的设置

3 篇文章 0 订阅
1 篇文章 0 订阅

忙忙碌碌,整个2月份似乎都是保持在路上的状态,本来想尽早把搭建ftp服务器的过程跟大家分享,结果一直拖到现在。

需求描述:虽然是内部使用的FTP服务器,但是还是描述一下要求。

每人一个ftp账户,然后大家都可以访问一个公共的目录,并可以在此公共目录下上传、下载、删除文件,每个账户都可以创建自己的个人目录及文件。服务器使用的是联想的M系列,操作系统Redhat免费版。

既然使用Redhat,自然FTP使用vsftp,据说是very secret FTP的意思。redhat5下vsftp默认的安装目录为:/etc/vsftpd,相关的配置文件为:/etc/vsftpd/vsftpd.conf,直接把配置文件的内容贴出来:

#被动模式启动,仅占用一个端口
pasv_enable=YES

#YES代表vsftpd以standalone启动
listen=YES

#修改端口号为1111
listen_port=1111

#active模式下FTP服务端使用的端口为20
connect_from_port_20=YES

#是否使用本地时间,据说不启用的话会晚8小时
use_localtime=YES

#不允许匿名登录
anonymous_enable=NO

#不允许匿名用户上传
anon_upload_enable=NO

#不允许匿名用户建立目录
anon_mkdir_write_enable=NO

#/etc/passwd内的帐号可以登录,必须为YES,否则本地用户无法登录了
local_enable=YES

#用户限制在自己的目录内,不允许查看系统目录
chroot_list_enable=YES

#指定只允许访问自己目录的用户列表文件
chroot_list_file=/etc/vsftpd/chroot_list

#ftpusers文件中的用户禁止登录FTP服务器
userlist_enable=YES

#userlist_enable为yes时生效,userlist_file中指定的用户无法登录
userlist_deny=YES

#不允许登录的用户列表文件
userlist_file=/etc/vsftpd/user_list

#允许用户上传数据
write_enable=YES

#据说实际的权限要用7777减去这个值得到
local_umask=0022

#上传下载记录日志
xferlog_enable=YES

#日志记录文件
xferlog_file=/var/log/xferlog

#日志文件格式化
xferlog_std_format=YES

#pam模块的名称,/etc/pam.d/vsftpd
pam_service_name=vsftpd

#允许修改上传文件的属主的配置
#chown_uploads=YES
#chown_username=whoever

#启用TCP Wrapper,据说是一种网络防火墙软件
tcp_wrappers=YES

#用户进入某个目录时,默认显示.message
dirmessage_enable=NO

#登入FTP后的欢迎信息
ftpd_banner=Welcome to FTP Server!
对于每个属性都是做什么用的都有简单介绍,这些东西,都是可以在网上找到的。只是将其中几个做一下简单介绍:

listen=YES
意味着vsftpd以独立线程的模式启动,启动时不依赖于其他的线程,个人认为一般情况下就这么启动就挺好。另外的模式,没有使用过,但是跟其他的有依赖,个人感觉可能会比较容易出现问题。

listen_port=1111
指定vsftp的端口号为1111,这个值默认不设的话,vsftp自然是21端口。

上述配置中,完全限制了匿名用户的登录及查看,并且将操作系统的root等用户也完全限制不允许登录了。vsftpd的用户使用的是实体的linux操作系统用户,用户是完全不允许登录操作系统的,一定程度上保证了安全性。并且将每个用户限定在自己的目录下,不允许查看别人的目录,也提高了ftp的安全性。

local_umask=0022
这个参数比较折腾,最开始是777,发现创建目录之后看不到,最终修改为0022,原来实际的值是用7777减去设置的值得到。比如上述配置,实际的值是:7755(7777-0022),如果设置不当,经常会出现一些奇怪的现象。这个具体的值,还是应该根据实际的需要进行配置,只是配置的值,需要注意。

这是vsftpd配置文件中,需要注意的地方。

另外,由于要求每个用户都可以访问一个公共的目录,这里使用了一种不是非常好的方式,但是,实在不知道还有没有其他方式了。

使用mount,将某个用户的工作目录绑定到每个用户的根目录下,例如:mount --bind /home/ftpadmin /home/someuser/publicDir,把/home/ftpadmin目录绑定到/home/someuser/下的publicDir目录,绑定后的目录名为publicDir,每个用户都需要执行这样的操作,每个用户都会看到一个名为publicDir的目录,都是同样指向同一个/home/ftpadmin目录。

但是使用mount会有一个问题,就是服务一旦重启,mount的效果便会消失,因为mount是在缓存中的,于是,就修改了/etc/rc.d/rc.local文件的内容,相当于windows下的“开始”--“启动”吧,每次系统重启都会执行一次mount操作,虽然很笨,但是效果确实不错。

另外,为方便添加用户,写了一个简单的shell供管理员使用。

#!/bin/sh

echo -n "Please input user name need to add:"

read username

echo "your input is $username"



useradd -g ftpgengral -d /home/$username -s /sbin/nologin $username

passwd $username



mkdir /home/$username/apusic



mount --bind /home/ftpadmin /home/$username/apusic



echo "OK!"



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值