Ubuntu安装ftp和配置多用户/多用户访问各自目录/多用户访问同一目录/禁止用户访问上级目录

1.安装vsftpd

apt-get install vsftpd

2.配置用户

以多用户为例,单用户操作方法一样

创建用户ming1,ming2和对应密码,-m创建该用户文件夹,-d指定该用户文件夹

useradd -m -d /home/ming1 -s /bin/bash ming1
passwd ming1
useradd -m -d /home/ming2 -s /bin/bash ming2
passwd ming2

3.配置vsftpd

vim /etc/vsftpd.conf

修改配置:

#禁止匿名访问
anonymous_enable=NO
#接受本地用户
local_enable=YES
#允许上传
write_enable=YES
#允许utf8识别
utf8_filesystem=YES

添加配置:

#防止报500错
seccomp_sandbox=NO

其他配置:

1)若配置全部用户只访问同一目录,比如用户ming1和用户ming2都默认访问/home/ming的目录,则需要添加配置

local_root=/home/ming/

并建立对应的目录给予权限

mkdir /home/ming
chmod -R 777 /home/ming

以上也适用单个用户的配置

2)若每个用户默认只访问自己对应的目录,比如用户ming1只访问/home/ming1目录,用户ming2只访问/home/ming2的目录,则需要删除local_root或在前面加#注释掉即可

4.禁止用户访问上级目录

默认任何用户是可以访问上级目录的,若禁止可以做如下配置

还是编辑vsftpd配置文件

扫描二维码关注公众号,回复: 2258770 查看本文章
vim /etc/vsftpd.conf

修改配置:

#禁止返回上一级
chroot_local_user=YES
chroot_list_enable=YES
#允许返回上级目录的用户放在/etc/vsftpd.chroot_list中,一行一个用户名,若没有/etc/vsftpd.chroot_list,则需要新建一个,否则登录会报错
chroot_list_file=/etc/vsftpd.chroot_list

将允许访问上级目录的用户名放在/etc/vsftpd.chroot_list中,一行一个用户名,不在该文件中的用户将无法访问上级目录,若没有该文件则需要新建一个,否则登录会报错

5.重启ftp服务器

service vsftpd restart

6.打开浏览器

远程服务器使用ftp:IP地址

本地使用ftp:1270.0.1

输入用户名和密码进入

7.一些报错处理

报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()

从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。需要在vsftpd的配置文件vsftpd.conf中增加下列:

allow_writeable_chroot=YES

报错:500 OOPS: cannot change directory

创建用户的时候漏掉-m参数,导致当前登录的用户没有对应目录的权限,在/home/目录下,使用ll命令可以查看文件夹是否在对应用户权限。若报此错误,需要使用“userdel -r 用户名”命令删除用户,重新按照步骤2创建用户

猜你喜欢

转载自blog.csdn.net/weixin_36185028/article/details/80969672