vsftpd搭建ftp服务器
0
今天使用vsftpd搭建ftp服务器发现在内网测试机没问题,但是外网测试的时候却不能访问。
使用Windows的ftp访问的时候直接提示500 OOPS
,然后就没有了其他错误了。
最后使用Linux ftp localhost时提示:
500 OOPS: cannot change directory:/home/ftp
Login failed.
网上都说是SELinux的问题,但是发现状态为disable
。
仔细看了后面参考文章,发现我的home
的目录的权限是700
,然后修改为755
然后问题就解决了。
vsftpd搭建教程:http://www.cnblogs.com/kluan/p/4821537.html
添加新用户步骤:
- 添加Linux用户:
useradd -d /home/ftp/ -g ftp -s /sbin/nologin ftpuser
- 设置密码:
passwd ftpuser
- 修改vsftpd配置:
# /etc/vsftpd/chroot_list 修改根目录
ftpuser
# 重启服务
service vsftpd restart
注意一定要修改
chroot_list
,否者根目录就会是系统根目录。
如果使用的是sftp需要修改/etc/ssh/sshd_config
,添加如下配置:
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
Match User ftpuser
ChrootDirectory %h
ForceCommand internal-sftp
这里有几个问题需要注意:
- 如果使用了sftp的话,那么最上层也就是sftp用户根目录的用户必须是root,最大权限只能是755(其他用户不能写),否者登陆不了,提示:
Current connection closed.
- 如果同时需要设置sftp和ftp,根目录的属主为root,权限为755,不然ftp就没有权限浏览,提示:
500 OOPS: ERROR:> Authentication failed.
cannot change directory:/home/ftpuser/
500 OOPS: child died
ERROR:> Authentication failed.
然后写权限,需要另外在里面建一个文件夹,设置属主为ftpuser才可以。看一下权限:
#ftpuser的根目录/home/ftpuser
drwxr-xr-x 4 root root 4096 7月 17 14:26 ftpuser
#里面的读目录和写目录
drwxr-xr-x 2 root root 4096 7月 17 03:00 read
drwxr-xr-x 2 ftpuser root 4096 6月 8 2017 write