ubuntu server vsftpd 虚拟用户及目录

ubuntu server vsftpd 虚拟用户及目录

一:需求场景;

在ubuntu server上开设一个虚拟网站,在网站目录建立一个ftp目录,允许用户通过ftp上传网站文件到网站目录;

同时,该ftp用户,只能用于ftp操作,不能用于登陆ubuntu server

二:配置

1:先建立虚拟网站;

同样先创建apache2 网站配置文件,然后启用站点;

比如这里我的测试 网站 :www.cocoa.com 内网访问 站点;

网站目录在:/var/www/cocoa/web

在该目录下,建立 一个 index.html ;

修改:hosts文件,添加记录:指定ip 对应域名 www.cocoa.com

重新启动apache2服务;

浏览器 输入 www.cocoa.com 测试虚拟网站是否成功;

2: 配置ftp用户;

因为由于vsftpd的安全策略,指定ftp用户的根目录,就是该ftp用户的home目录,但是此home目录,作为根目录,不允许修改,上传成功操作;

所以基于上面的网站 cocoa/web 我的思路是:建立ftp用户指定home目录为 /var/www/cocoa 并,把其子目录,web作为web网页文件目录;这样子目录ftp用户就有了读写操作;当然,前提该文件的权限可写;

配置流程;

sudo useradd cocoa #添加名为cocoa的用户
sudo usermod -d /var/www/cocoa cocoa #指定cocoa用户的home目录cocoa
sudo vim /etc/shells  #打开登陆shells文件

#添加一条记录 
/usr/sbin/nologin

sudo usermod -s /usr/sbin/nologin cocoa #指定cocoa用户的登陆shells为nologin 就是只能用于ftp连接,不能用于登陆服务器;

sudo chown -R cocoa:cocoa /var/www/cocoa #修改cocoa目录的所有者和组为cocoa 

sudo chmod 555 /var/www/cocoa #个性cocoa目录的权限为可读可执行,不能设置可写,因为cocoa目录,作为ftp根目录,不允许有写的权限;

sudo chmod 755 /var/www/cocoa/web 修改其ftp子目录,并设置其为对自己可写可读可执行,这样用户就可以通过ftp上传网站文件到web目录里面了;
 

上面少了一步:就是设置用户的密码 passwd cocoa 设置密码;

然后;打开终端;

ftp 连接服务器,输入用户名和密码;即可;自行测试上传,下载,创建目录,删除目录,删除文件操作;

三:通过ftp上传一个写的网页文件,打开浏览器测试即可;

如果,想让用户ftp登陆之后,home作为根目录,就是别的目录访问不了;只需打开vsftpd配置文件里面的

chroot_local_user=YES

ubuntu server vsftpd 虚拟用户及目录

最后重新启动,vsftpd服务,测试即可

在ftp登陆成功之后

pwd 会出现;

ubuntu server vsftpd 虚拟用户及目录