FTP权限配置
FTP作为文件传输的服务,方便文件的上传、下载以及服务端的存储,非常适合企业内部的局域网使用。
FTP服务的安装非常方便,在linux环境下安装vsftpd服务即可。FTP的权限管理却相对比较复杂,本文进行简单的说明。
权限类型
FTP安装后,配置文件是/etc/vsftpd/vsftpd.conf,权限相关的内容也是在相中进行配置。FTP支持的认证方式有匿名anon,访客guest以及local,还有与其它集成认证结合的方式,如openLDAP等。
匿名anon:默认以ftp系统用户进行文件操作
访客guest:虚拟帐户登录,指定实际的系统用户进行文件操作;
本地local:系统用户直接登录并操作文件

上述几种方式可以联合使用,以满足不同场景下的应用需求。
配置
当时的应用场景是,企业内部使用,权限管理较为宽松。
首先,允许匿名用户直接登录,下载各目录下所有文件,但仅可在一个特定的temp目录下上传文件(仅上传,不可删除)
其次,管理员帐号登录,可读可写可删除所有目录下文件,包括temp目录下的。
最后,管理员不可直接删除/下的目录.
vsftpd.conf文件的配置内容如下:
1 | write_enable=YES |
匿名访问
首先,因为有匿名访问的需求,因此需要将匿名的相关配置项打开,权限设置为YES。一般为anon开头的配置项,其中为了避免误删除,将anon_other_write_enable设为了NO,即匿名用户只可以上传,不能删除即使传错了也无法删除。
虚拟用户
如果不想直接将系统用户名与密码公布,可以使用虚拟用户。先确保安装pam服务,在/etc/pam.d/vsftpd文件中,设置vsftpd的服务使用的认证方式为虚拟方式
1 | #%PAM-1.0 |
认证所需的用户列表在virtual_user_list文件中
virtual_user_list.txt文件中保存虚拟用户的用户名以及密码,在vsftpd.conf文件中确保打开了guest_enable,并通过guest_username指定了该虚拟用户实际指向的系统用户。
配置完成后,以该虚拟用户登录后的操作,在文件系统中均以guest_username指定的系统文件进行操作。