写在前面:
最近,因为工作需要,搭建了一台FTP服务器供业务部门使用。实现不同的业务部门登录时,被限制在该业务部门对应的目录内,且能够在该目录内上传文件。
下面我将在这篇文章中,介绍Linux Suse 11.4版本操作系统,搭建FTP服务器的过程。
建设方法:
在Linux Suse 11.4的版本中,自带FTP server功能。我们可以在Yast—Network Services中看到。
点击FTP Server,提示需要安装VSFTP服务,如果是虚拟机的话,将ISO在虚拟光驱中挂载,操作系统会自动读取虚拟光驱中的安装文件安装VSFTP服务
VSFTP服务安装好后,进入下面这个页面
这里,需要对FTP进行设置,根据我的需求可以概括为:
-
只允许认证用户登录
-
允许认证用户上传
-
用户上传的文件用户本身可读可写,用户所在组和其他组均只可读。
-
不同的FTP用户,登录后的目录不同
根据以上需求,我需要进行如下设置
只允许认证用户登录,且允许上传
用户上传的文件用户本身可读可写,用户所在组和其他组均只可读。
这对应到umask 022.
umask 022 对应的是文件权限755,即文件所属用户本身可读可写,文件所属组和其他组均只可读。
设置用户登录后的FTP根目
经过这样的设置,我们实现的是用户登陆以后,所看到的目录为/srv/ftp_test.而要实现不同用户登陆后,进入不同的目录还需要进行如下设置:
配置完成后,点击finish,将配置保存并重启VSFTP服务。
之后,为了实现上面的需求,我们需要修改VSFTP配置文件
打开VSFTP配置文件
# vi /etc/vsftpd.conf
在配置文件中,添加
user_config_dir=/etc/userconfig
之后,我们在etc目录下,创建目录userconfig
在userconfig中,创建针对每个用户的文件,文件名与用户名相同,以风险部为例,风险部登录FTP服务器的用户为fengxian.创建fengxian文件
# vi fengxian
写入你希望该用户登陆后所在的目录
local_root=/srv/ftp_test/fengxian_file
配置完成后,需要重启vsftp服务
service vsftpd restart
至此,便完成了FTP服务器的搭建,实现我提到的几点需求。
尾巴:
在我的实际工作中,需要针对100多个用户创建不同的登录目录。同时需要根据需求,在每个用户的目录内,统一创建新需求所需的目录。结合python语法实现这些功能,将事半功倍。