ubuntu14.4开启ftp服务
1 更新源列表
打开"终端窗口",输入"sudo apt-get update"-->回车-->"输入当前登录用户的管理员密码"-->回车,就可以了。
2 安装vsftpd
打开"终端窗口",输入"sudo apt-get install vsftpd"-->回车-->安装完成。
3 新建"/home/uftp"目录作为用户主目录
打开"终端窗口",输入"sudo mkdir /home/uftp"-->回车-->输入"sudo ls /home"-->回车-->有一个uftp目录,目录新建成功。
4 新建用户uftp并设置密码
打开"终端窗口",输入"sudo useradd -d /home/uftp -s /bin/bash uftp"-->回车-->用户新建成功-->输入"sudo passwd uftp"设置uftp用户的密码-->回车-->输入两次密码-->回车-->密码设置成功。
sudo adduser xxx 这样的命令会在home目录下添加一个帐号
sudo useradd xxx 仅仅是添加用户, 不会在home目录添加帐号
彻底删除用户方法
在root用户下:userdel -r newuser
在普通用户下:sudo userdel -r newuser
加上-r的选项,在删除用户的同时一起把这个用户的宿主目录和邮件目录删除。
5 使用gedit修改配置文件/etc/vsftpd.conf
打开"终端窗口",输入"sudo gedit /etc/vsftpd.conf"-->回车-->打开了vsftpd.conf文件,向文件中添加
"userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users"和
"seccomp_sandbox=NO"-->使文件中的
"local_enable=YES" //允许本地用户登录
-->保存。
#指定登录转向目录
local_root=/home/ftp/ftp
#同时允许4客户端连入,每个IP最多5个进程
max_clients=200
max_per_ip=4
6 使用gedit新建/etc/allowed_users文件
打开"终端窗口",输入"sudo gedit /etc/allowed_users"-->回车-->输入uftp-->保存, 文件创建成功。
7使用gedit查看/etc/ftpusers文件中的内容
打开"终端窗口",输入"sudo gedit /etc/ftpusers"-->回车-->打开这个文件后,看一看有没有uftp这个用户名,如果没有,就直接退出。如果有就删除uftp,因为这个文件中记录的是不能访问FTP服务器的用户清单。
8 如果想要用户登陆后限制他们只能在自己的home目录,可以在vsftpd.conf配置文件中添加下面3行
chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
另一种方案
chroot_local_user=YES chroot_list_enable=YES(这行可以没有, 也可以有) chroot_list_file=/etc/vsftpd/chroot_list
凡是加在文件vsftpd.chroot_list中的用户都是不受限止的用户,即, 可以浏览其主目录的上级目录.
操作完之后,登录报 500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
解决办法
可以用命令chmod a-w /home/user去除用户根目录的写权限,注意把目录替换成你自己的。
或者你可以在vsftpd的配置文件中增加下列两项中的一项:
allow_writeable_chroot=YES
9 可以使用下列命令来打开,关闭,重启ftp服务
sudo /etc/init.d/vsftpd start sudo /etc/init.d/vsftpd stop sudo /etc/init.d/vsftpd restart
问题:
1 修改过vsftp配置文件后vsftpd不能启动,解决办法,先卸载,再重新装。
sudo apt-get purge vsftpd sudo apt-get install vsftpd ps -ef |grep vsftpd
2 最近在ubuntu14.4中进行配置,上面无论如何不行。经过多次尝试可以使用下面配置
write_enable=YES seccomp_sandbox=NO userlist_file=/etc/allowed_users background=NO
含义和上面一样。
3 对于中文乱码问题
由于系统编码的不同常常会出现中文乱码问题。涉及的部分有:linux 系统默认编码 UTF-8、windows 系统默认编码 GBK、ftp 服务器和客户端编码
在最近项目中需要使用 ftp 服务,在 ubuntu 上搭建了 vsftp 服务,使用 commons-net 的 FTPClient 进行传输文件,发现中文会出现乱码。上网查资料发现编码不一致,需要设置为统一的编码。要么都设置为 GBK, 要么设置为 UTF-8。
我采用 UTF-8,
1)首先 ubuntu 系统设置为 utf-8
sudo apt-get update # 先安装一下中文支持 sudo apt-get install language-pack-zh-hans # 更新对应的locale文件 dpkg-reconfigure locales -> 一路确认 #查看编码设置 locale LANG=zh_CN.utf8 LANGUAGE= LC_CTYPE="zh_CN.utf8" LC_NUMERIC="zh_CN.utf8" LC_TIME="zh_CN.utf8" LC_COLLATE="zh_CN.utf8" LC_MONETARY="zh_CN.utf8" LC_MESSAGES="zh_CN.utf8" LC_PAPER="zh_CN.utf8" LC_NAME="zh_CN.utf8" LC_ADDRESS="zh_CN.utf8" LC_TELEPHONE="zh_CN.utf8" LC_MEASUREMENT="zh_CN.utf8" LC_IDENTIFICATION="zh_CN.utf8" LC_ALL=zh_CN.utf8 #重启系统更新配置 reboot
2) vsftp 配置文件设置 utf-8
vi /etc/vsftpd.conf
# 在文件末尾添加
utf8_filesystem=YES
重启 vsftp 服务
3)对于使用 commons-net 的 FTPClient 上传下载文件、获取文件列表等操作包含中文的需要对字符编码进行设置
如果觉得有用,想赞助一下请移步赞助页面:赞助一下