vsftp为不同用户设置不同的ftp的根目录

需求

要求ftp登录后的根目录是/var/test/,但是又不能影响其他用户的登录路径,因为有些程序是直接在根目录进行操作的,而没有目录切换的过程。

操作过程

方法1

新建用户

1
2
3
4
useradd test1
useradd test2
passwd test1
passwd test2

vsftpd配置

1
2
3
4
5
6
7
8
9
10
# 用户登录路径,local_root 针对系统用户
local_root=/var/ftp/
# 锁定用户到各自目录为其根目录
chroot_local_user=YES
# anon_root 针对匿名用户
anon_root=/var/www/html

allow_writeable_chroot=YES
# 用户配置目录
user_config_dir=/etc/vsftpd/userconfig
配置各自用户访问根目录
1
2
3
cd /etc/vsftpd/
mkdir userconfig
cd userconfig/

在userconfig目录下为不同用户配置不同的根目录:
vim test1

1
local_root=/var/ftp/test1/

vim test2

1
local_root=/var/ftp/test2/

重启服务
1
service vsftpd restart

验证

新建/var/ftp/test1//var/ftp/test2/目录,并在目录下新增一些测试文件。

1
2
3
4
5
6
7
8
9
10
11
12
cd /var/pub/
mkdir test1
mkdir test2
cd test1
touch a
touch aa
cd ../test2/
touch b
touch bb
cd ..
chown -R test1:test1 test1
chown -R test2:test2 test2

结果

修改结果

方法2

默认情况下,ftp登录后是以用户的home目录作为根目录的,因此只要修改用户的主目录即可。

vi /etc/passwd

找到要修改的用户那几行,修改掉即可。此法很暴力,建议慎用。

/etc/passwd文件格式
登录名:加密口令:数字用户ID:数字组ID:注释字段:起始目录:sh程序

参考:
http://blog.sina.com.cn/s/blog_a97c78020101o8fv.html
http://xiaomaimai.blog.51cto.com/1182965/274002

hoxis wechat
一个脱离了高级趣味的程序员,关注回复1024有惊喜~
赞赏一杯咖啡
0%