centos中使用 vsftpd 服务,并且配置匿名用户上传和下载文件
首先我们需要再linux当中安装 vsftpd服务
yum install vsftpd
然后cd当vsftpd的安装配置文件夹 ,一般是 /etc/vsftpd 这个文件夹。
接下来配置一下vsftpd.conf文件,配置文件见下方,直接粘贴进您的配置中即可:
#允许匿名用户和本地用户登陆。
anonymous_enable=YES
local_enable=YES
#本地用户的登录名为本地用户名,口令为此本地用户的口令;本地用户可以在自 己家目录中进行读写操作;本地用户可以离开自家目录切换至有权限访问的其他目录,并在权限允许的情况下进行上传/下载
write_enable=YES
#若是启动这项功能,则使用匿名登入时,不会询问密码。默认值为NO
no_anon_password=YES
#定义匿名登入的使用者名称。默认值为ftp
ftp_username=ftp
#使用匿名登入时,所登入的目录。默认值为/var/ftp。注意ftp目录不能是777的权限属性,即匿名用户的家目录不能有777的权限
anon_root=/var/ftp
#如果设为YES,则允许匿名登入者有上传文件(非目录)的权限,只有在write_enable=YES时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为NO
anon_upload_enable=YES
#如果设为YES,则允许匿名登入者下载可阅读的档案(可以下载到本机阅读,不能直接在FTP服务器中打开阅读)。默认值为YES
anon_world_readable_only=YES
#如果设为YES,则允许匿名登入者有新增目录的权限,只有在write_enable=YES时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为NO
anon_mkdir_write_enable=YES
#如果设为YES,则允许匿名登入者更多于上传或者建立目录之外的权限,譬如删除或者重命名。(如果anon_upload_enable=NO,则匿名用户不能上传文件,但可以删除或者重命名已经存在的文件;如果anon_mkdir_write_enable=NO,则匿名用户不能上传或者新建文件夹,但可以删除或者重命名已经存在的文件夹。)默认值为NO
anon_other_write_enable=YES
#设置是否改变匿名用户上传文件(非目录)的属主。默认值为NO
chown_uploads=NO
#设置匿名用户上传文件(非目录)的属主名。建议不要设置为root
chown_username=username
#设置匿名登入者新增或上传档案时的umask 值。默认值为077,则新建档案的对应权限为700
anon_umask=077
#standalone (must config)
#设置vsftpd服务器是否以standalone模式运行。以standalone模式运行是一种较好的方式,此时listen必须设置为YES,此为默认值。建议不要更改,有很多与服务器运行相关的配置命令,需要在此模式下才有效。若设置为NO,则vsftpd不是以独立的服务运行,要受到xinetd服务的管控,功能上会受到限制
listen=YES
#设置vsftpd允许的最大连接数,默认值为0,表示不受限制。若设置为100时,则同时允许有100个连接,超出的将被拒绝。只有在standalone模式运行才有效。
max_clients=0
#设置每个IP允许与FTP服务器同时建立连接的数目。默认值为0,表示不受限制。只有在standalone模式运行才有效
max_per_ip=0
#设置FTP服务器在指定的IP地址上侦听用户的FTP请求。若不设置,则对服务器绑定的所有IP地址进行侦听。只有在standalone模式运行才有效
#listen_address=IP地址
注意上面的配置中设置的 用户登录之后的根路径是 /var/ftp/,还有需要注意的是,一定不要把 /var/ftp 这个目录的权限配置成了 777 的权限。
我们需要再这个文件夹下再新建一个 名字为 upload的文件夹,用这个来上传和下载文件
接下来我们使用 winscp这款 windows的客户端登录匿名账户:
点击login即可登录其中,并且可以来到里面的upload目录里面进行上传和下载文件的操作了。
需要注意的问题是:
如果这个匿名账户无法进行上传和下载文件的操作,这个时候需要检查一下是不是下面的这些问题:
配置要注意三部分,请一一仔细对照:
1、vsftpd.conf文件的配置(vi /etc/vsftpd/vsftpd.conf)
#允许匿名用户登录FTP
anonymous_enable=YES
#设置匿名用户的登录目录(如需要,需自己添加并修改)
anon_root=/var/ftp/pub
#打开匿名用户的上传权限
anon_upload_enable=YES
anon_world_readable_only=no
#打开匿名用户创建目录的权限
anon_mkdir_write_enable=YES
#打开匿名用户删除和重命名的权限(如需要,需自己添加)
anon_other_write_enable=YES
#匿名用户的掩码(如需要,需自己添加,含义:如umask是022,这时创建一个权限为666的文件,文件的实际权限为666-022=644)
anon_umask=022
2、ftp目录的权限设置
默认情况下,ftp的根目录为/var/ftp,为了安全,这个目录默认不允许设置为777权限,否则ftp将无法访问。但是我们要匿名上传文件,需要“other”用户的写权限,正确的做法:
在/var/ftp中建立一个upload(名子自己起吧)文件夹,将个文件夹权限设置为777(视具体需要自己设),在upload这个文件夹中,匿名用户可以上传文件、创建文件夹、删除文件等。
3、selinux的配置
SELinux(Security-Enhanced Linux) 是美国国家安全局(NAS)对于强制访问控制的实现,是 Linux上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。
最简单的办法,关闭selinux
方法1:修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。
方法2:用命令setenforce 0,无需重启。(setenforce的格式:setenforce [ Enforcing | Permissive | 1 | 0 ])
方法3:在lilo或者grub的启动参数中增加:selinux=0,也可以关闭selinux。