ubuntu启动配置ftp服务端

版权声明:本文为博主原创文章,转载请注明来源。开发合作联系[email protected] https://blog.csdn.net/luanpeng825485697/article/details/82746566

ubuntu16.04安装启动ftp

sudo apt-get install vsftpd

ftp的配置文件在

/etc/vsftpd.conf

可以使用下列命令来打开,关闭,重启ftp服务

sudo /etc/init.d/vsftpd start
sudo /etc/init.d/vsftpd stop
sudo /etc/init.d/vsftpd restart

使用下列命令,可以看到系统中多了ftp用户组和ftp用户

cat /etc/group
cat /etc/passwd

ftp服务器的目录位置在 /srv/ftp, 这也是匿名用户访问时的根目录。

在浏览器中输入ftp://192.168.2.238

会弹出如下界面,输入本机的账号密码,可以登录,不过这种方式登录的根目录为该用户的根目录,也就是home/luanpeng/目录

在这里插入图片描述

这个表明已经开启了ftp服务,但是未开启匿名登录。

修改配置文件

编辑/etc/vsftpd.conf文件:

// 允许匿名用户登录
anonymous_enable=YES

// 允许本地用户登录
local_enable=YES

// 开启全局上传
write_enable=YES

// 允许匿名用户上传文件
anon_upload_enable=YES  

// 充许匿名用户新建文件夹
anon_mkdir_write_enable=YES

//修改vsftpd的默认根目录  
local_root=/media/ftp/pub  
chroot_local_user=YES  
anon_root=/var/www/html/  

local_root 表示本地用户登录后的根目录,也就是非匿名,而是输入用户名和密码登录进入的,这里顺便说一下ftp登录的格式
ftp://username:passwd@localhost

anon_root anonymous用户,即匿名用户访问的主目录

但是这时候可能会出现以下报错:

[root@localhost pub]# lftp localhost
lftp localhost:~> ls
ls: Login failed: 500 OOPS: vsftpd: refusing to run with writable anonymous root
原因还是权限设置问题:
是ftp默认主目录权限设置不对,我这里报这个错误是因为/media/ftp设置权限为777,/media/ftp/pub设置权限也为777。正确的权限设置是将/media/ftp权限设置为755,chmod 755 /media/ftp后重启ftp服务就ok了。

另:
如果你是默认的ftp目录出现此问题,那一定是这个/home/ftp的权限不对所致,这个目录的权限是不能打开所有权限的;是您运行了chmod 777 /home/ftp所致;如果没有ftp用户这个家目录,当然您要自己建一个;

如下FTP用户的家目录是不能针对所有用户、用户组、其它用户组完全开放;
[root@localhost ~]# ls -ld /home/ftp
drwxrwxrwx 3 root root 4096 2005-03-23 /home/ftp

修正这个错误,应该用下面的办法;
[root@localhost ~]# chown root:root /home/ftp
[root@localhost ~]# chmod 755 /home/ftp

有的弟兄可能会说,那匿名用户的可读、可下载、可上传怎么办呢?这也简单,在/home/ftp下再建一个目录,权限是777的就行了,再改一改vsftpd.conf就OK了;没有什么难的;

vsFTPd出于安全考虑,是不准让ftp用户的家目录的权限是完全没有限制的,您可以去读一下vsFTPd的文档就明白的了;否则也不能称为最安全的FTP服务器了,对不对?

猜你喜欢

转载自blog.csdn.net/luanpeng825485697/article/details/82746566