vsftp软链接ln遇到550错误

centos 6.3上新建了vsftp ,用于文件下载使用 。/var/ftp/pub可以匿名登陆下载 。如果想要上传则需要使用密码验证 。

登陆使用的账号是ftpclient ,路径在/home/ftpclient 。在/var/ftp/pub下新建一个软链接:

cd /var/ftp/pub
ln -s /home/ftpclient client

但用ftp客户端匿名连上去后,进入client目录报550错误,无权限访问。

ftp> cd pub
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
lrwxrwxrwx    1 0        0              15 Sep 08 03:30 client -> /home/ftpclient
226 Directory send OK.
ftp> cd client
550 Failed to change directory.

无论怎么修改/home/ftpclient的权限都是一样。后面在网上找到,可以用mount –bind的方式规避权限问题。操作步骤如下:

cd /var/ftp/pub
mkdir client
mount --bind /home/ftpclient client

此时550问题完美解决 。

注:在开启有selinux 防火墙时,vsftp也会报500错误 。如果是selinux的问题时,可以通过getsebool ftpd_disable_trans命令查看,输出状态是否为on 。如果不是on ,可以通过如下命令解决:

setsebool ftpd_disable_trans 1

同理,smb在selinux下也会有类似问题,同样可以按该方法解决:

setsebool -P samba_enable_home_dirs=1

不过使用该命令设置的配置在重启后会失效 。

REF:

http://blog.csdn.net/lian_zhihui1984/article/details/6623434

http://insanelabs.com/linux/linux-vsftpd-and-symbolic-links/

posted @ 2015-07-05 10:27  emanlee  阅读(1712)  评论(0编辑  收藏  举报