vsftpd 要如何配置,才能让 windows 下用户登录后打开指定的目录而不是家目录?

2014-10-16 15:35:50 +08:00
 capbone
linux是ubuntu14.04,假设linux登陆用户名为myname,现在在别的windows上输入ftp://linux IP并用myname登陆后,自动打开/home/myname这个目录,然后“文档”、“视频”、“公用的”等等文件夹都显示在那里。
有没有办法登陆后直接跳转至/home/myname/ftp这个目录?

另外,如果希望在windows上以一个新的用户名登陆而不是myname,需要怎么设置?

刚接触linux不久,问的问题可能有点蠢,见谅。
7017 次点击
所在节点    Linux
6 条回复
hzqim
2014-10-16 15:50:21 +08:00
开启chroot!
capbone
2014-10-16 15:55:11 +08:00
@hzqim 能具体说下么?是chroot_local_user=YES吗?
hzqim
2014-10-16 15:58:39 +08:00
chroot_local_user=YES也行,不过有“存在风险”一说。所以不推荐。还是NO吧,采用下面的方法:

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

在/etc/vsftpd.chroot_list这个文件里写入希望被chroot的用户,改用户就不能跨出FTP的根目录了。
smilezino
2014-10-16 15:59:17 +08:00
1. 新建用户
useradd -d /home/myname/ftp -s /sbin/nologin othername
passwd othername //设置登陆密码

2. 配置vsftpd (版本version 3.0.2)
/etc/vsftpd.conf 如下:

listen=YES
listen_port=2121 #端口号,自己定
pasv_min_port=9981
pasv_max_port=9990
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=ftp
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
allow_writeable_chroot=YES

3.在/etc目录下新建vsftpd.chroot_list 文件, 里面填写用户名,一行一个

里面的用户是除了自己的home,还能访问到其他目录.不在这个文件里的用户登陆ftp只能看到自己的目录
capbone
2014-10-16 16:14:01 +08:00
@hzqim 不能跨出FTP的根目录,是指该用户只能访问/home/myname及下层目录吗?
但是我希望的是连/home/myname这个目录都不能访问,而只能访问/home/myname/ftp及下层目录。
hzqim
2014-10-16 16:43:09 +08:00
@capbone 只能访问当前及以下的目录。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/139306

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX