有事没事领个红包

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 上传下载文件、获取文件列表等操作包含中文的需要对字符编码进行设置

 

posted @ 2016-10-28 13:30  crazyCodeLove  阅读(1568)  评论(0编辑  收藏  举报