FTP权限配置

FTP作为文件传输的服务,方便文件的上传、下载以及服务端的存储,非常适合企业内部的局域网使用。

FTP服务的安装非常方便,在linux环境下安装vsftpd服务即可。FTP的权限管理却相对比较复杂,本文进行简单的说明。

权限类型

FTP安装后,配置文件是/etc/vsftpd/vsftpd.conf,权限相关的内容也是在相中进行配置。FTP支持的认证方式有匿名anon,访客guest以及local,还有与其它集成认证结合的方式,如openLDAP等。

匿名anon:默认以ftp系统用户进行文件操作

访客guest:虚拟帐户登录,指定实际的系统用户进行文件操作;

本地local:系统用户直接登录并操作文件

FTP权限 文件

上述几种方式可以联合使用,以满足不同场景下的应用需求。

配置

当时的应用场景是,企业内部使用,权限管理较为宽松。

首先,允许匿名用户直接登录,下载各目录下所有文件,但仅可在一个特定的temp目录下上传文件(仅上传,不可删除)

其次,管理员帐号登录,可读可写可删除所有目录下文件,包括temp目录下的。

最后,管理员不可直接删除/下的目录.

vsftpd.conf文件的配置内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
write_enable=YES

local_enable=YES
local_umask=022
chroot_local_user=NO

anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=NO


xferlog_file=/var/log/vsftpd.log
xferlog_enable=YES

connect_from_port_20=YES
listen=YES
pam_service_name=vsftpd

anon_root=/ftp_root
anon_umask=022
guest_enable=YES
guest_username=ftpsystemuser

user_config_dir=/etc/vsftpd/conf

reverse_lookup_enable=NO

匿名访问

首先,因为有匿名访问的需求,因此需要将匿名的相关配置项打开,权限设置为YES。一般为anon开头的配置项,其中为了避免误删除,将anon_other_write_enable设为了NO,即匿名用户只可以上传,不能删除即使传错了也无法删除。

虚拟用户

如果不想直接将系统用户名与密码公布,可以使用虚拟用户。先确保安装pam服务,在/etc/pam.d/vsftpd文件中,设置vsftpd的服务使用的认证方式为虚拟方式

1
2
3
4
5
6
#%PAM-1.0

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_user_list

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_user_list

认证所需的用户列表在virtual_user_list文件中

virtual_user_list.txt文件中保存虚拟用户的用户名以及密码,在vsftpd.conf文件中确保打开了guest_enable,并通过guest_username指定了该虚拟用户实际指向的系统用户。

配置完成后,以该虚拟用户登录后的操作,在文件系统中均以guest_username指定的系统文件进行操作。

作者

ovasty

发布于

2021-02-19

更新于

2021-02-21

许可协议

评论

You forgot to set the shortname for Disqus. Please set it in _config.yml.