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基本搭建完成。