Ubuntu Server 10.4 使用经历(四)之 FTP

之前一直用SSH最为访问远程文件的方式,没有考虑FTP,最近有朋友小范围内需要共享资料,为了安全和使用方便开始使用FTP,原先以为FTP很简单,所以没有重视,此次安装还是出现了一些问题。

系统环境:

Ubuntu Server 10.04

PuTTY 远程访问

 

1. 安装vsftp FTP Server

sudo apt-get install vsftpd

现在vsftp已经做到了很多默认,安装后,它会自动建立ftp一个用户 创建ftp用户组 创建/srv/ftp目录 如下所示

drwxr-xr-x 3 root ftp  4096 2010-09-19 13:08 ftp

2.重启服务

sudo /etc/init.d/vsftpd restart

你会发现,系统提示你service vsftpd restart方法,如果你采用此方法,你需要安装dbus,否则系统会在命令执行时提示你找不到dbus的一个文件。仅用上面命令不需要安装。

3.修改配置文件

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_bak
sudo vi /etc/vsftpd.conf

vsftpd 默认关闭匿名访问,我的主要配置内容如下:

listen=YES
#
# Allow anonymous FTP? (Disabled by default)
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# You may fully customise the login banner string:
ftpd_banner=Welcome to XXX FTP service.
#
# chroot_list_enable below.
chroot_local_user=YES
#
max_clients=5
max_login_fails=3
max_per_ip=2
local_max_rate=256000

 都配置完后,发现ftp用户并不能正常访问服务器,查找原因开始。

4.ftp 用户创建及修改

自己建立一个ftp2用户,并修改密码

sudo useradd -g ftp -d /srv/ftp ftpa
sudo passwd ftpa

用户可以访问ftp server,正常连接,但如果禁止其不能terminal登录的话

sudo useradd -g ftp -d /srv/ftp -s /sbin/nologin ftpa

用户不能登陆,通过网上寻找发现

vsftp 会查找  /etc/shells文件,以判断其用户是否包含,默认情况下Ubuntu(openbsd)中的shells 没有/sbin/nologin,所以要通过手动添加来实现

 sudo vi /etc/shells

添加/sbin/nologin

此时就可以实现ftp用户登录,terminal不能登陆的效果。至于默认的ftp用户 我们可以不用,查看/etc/passwd文件可知,ftp 属于 /bin/false,也不再shells中所以不能登录。

至此ftp基本搭建完成。

 

posted @ 2010-09-19 14:29  Ginoz  阅读(1133)  评论(0编辑  收藏  举报