最近在银河麒麟操作系统下部署vsftp,遇到一些波折,记录一下。
1.匿名登录注意点
- vsftp在linux中最重要的一点是注意权限及文件的归属问题。vsftp服务器默认的ftp上传下载的文件放置的文件夹为
/var/ftp/pub
,这个文件夹的归属无需修改,网上很多教程告诉你需要修改ftp或者pub文件夹的归属,这是不正确的,这两个文件夹的归属无需修改,上述两个文件夹中,通过ll命令查看,可以获悉,都归属于root用户,无需特意去命令行修改文件归属者,默认上传的文件归属者就是ftp:ftp,当然也可以通过修改/etc/vsftpd/vsftpd.conf
中的值,设置上传文件时,自动将归属者修改为指定用户,即修改chown_uploads=YES,切记同时记得指定chown_username的属性,比如设置为chown_username=ftp,切记不要设置了YES,又没有设置归属者,这样默认会将上传的文件归属者修改为root,这样的文件的权限就是600,此时该文件是不能被别人下载的; - pub文件夹的权限需要修改,需要将pub文件夹的权限修改为777,网上有人说ftp文件夹的权限不能为777,这么说没问题,但是并非是不能将ftp文件夹的权限设置为777,因为其匿名用户的权限,并非该文件夹的权限,而是文件夹权限与anon_umask值的差值,通常会将anon_umask设置为022,则匿名用户的权限为777-022=755,自然匿名用户的权限就是755了。
- 另外,关于上传文件的归属者的问题,切记在pub文件夹中不能有root归属的文件存在,这样会导致上传的文件的归属者还是root,具体原因不详,只是遇见过相应的问题。在归属者相关设置无误,发现上传的文件归属者还是root,后来将pub文件中原有的root归属文件删除,上传的文件就是ftp了。
大致注意点如上,放一个亲测有效的匿名登录的,vsftp.conf配置内容。
anonymous_enable=YES 允许匿名用户访问
anon_upload_enable=YES 允许匿名用户上传文件
anon_umask=022 匿名用户上传文件的umask值
anon_mkdir_write_enable=YES 允许匿名用户创建目录
anon_other_write_enable=YES 开放匿名用户的其他写入权限(包括重命名、删除等操作权限)
local_enable=NO 不允许本地用户登录FTP
1.本地用户登录注意点
本地用户登录,即在登录时,使用架设vsftp服务器的操作系统的用户名密码进行ftp登录的操作。要实现本地用户,只需要使local_enable=YES
,同时设置匿名登录为NO。并设置本地登录的权限,即掩码的值,计算方法同匿名用户。
local_enable=YES 允许本地用户登录FTP
anonymous_enable=NO 允许匿名用户访问
write_enable=YES # 允许写入
local_umask=022 # 掩码为022,表示755的权限