今天一公司合作家伙说要传文件给我们这,就一文本文件非要求俺给他开个ftp,都没则了,只能给开个,从来没开过,在网络上搜索了下linux下开ftp可以用自带的vsftp也可以用软件建一个,而且听说vsftp也挺不错,就按网络教程一步步来了,这里主要是总结下自己的做法,毕竟不是每个人在要急用时候还去看一些文章的详解。
1.先用这几个命令看看是不是vsftpd安装正常
#service vsftpd start 启动
#service vsftpd stop 停止
#service vsftpd restart 重启
2.以上没有问题的话编辑vsftpd的配置文件
[root@localhost /]#
vi /etc/vsftpd/vsftpd.conf   //这个文件的具体内容解释可以看下面“参考文章”第一个链接
3.anonymous_enable=YES 改成NO #禁止匿名访问
4.在 vsftpd.conf 中找到 chroot_list_file=/etc/vsftpd.chroot_list把注释去掉然后建立
/etc/vsftpd.chroot_list文件,在文件中输入linux系统中的一个或多个用户名(一行一个)。

注:这个用户名是linux系统中root用户添加的。
[root@localhost /]# useradd -s /sbin/nologin             //这样限制用户不能使用ssh登录

5.更改ftp端口仍然在vsftpd.conf文件中:
tcp_wrappers=YES
listen_port=2121   //自定义端口号,记得不要与已有端口冲突
local_root=/server/apache/htdocs  //设定用户explorer连接ftp时候显示的目录
保存退出编辑。

6.
#service vsftpd restart 重启.然后一个利用系统已有用户名登录的ftp就开通了,
注:#service vsftpd start 命令只是在linux开启后手动开启vsftpd的命令,如果linux重启,还要使用该命令重新启动。
要想开机启动vsftp服务:执行chkconfig --level 35 vsftpd on  (网络查询的未实践过)

后记:
如果有时间研究就多看看建立虚拟用户那部分,虚拟用户相比系统用户也许会更安全些,也稍微复杂些。

引用建立虚拟用户:
=====================================================

[root@server root]# useradd vuser #新建一个虚拟登陆指定的号!
[root@server root]# vi users.txt  #虚拟号范本一行用户名下一行密码
[root@server root]# db_load -T -t hash -f users.txt /etc/vsftpd.login.db #把users.txt的内容加为虚拟用户的帐号和密码
[root@server root]# chmod 600 /etc/vsftpd.login.db #为了安全修改里面的内容
[root@server root]# vi /etc/pam.d/ftp  #修改里面的内容,使之与下面的相同
[root@server root]# more /etc/pam.d/ftp
#%PAM-1.0
#auth       required    /lib/security/pam_listfile.so item=user sense=allow file
=/etc/ftpusers onerr=succeed
#auth       required    /lib/security/pam_pwdb.so shadow nullok
#auth       required    /lib/security/pam_shells.so
#account    required    /lib/security/pam_pwdb.so
#session    required    /lib/security/pam_pwdb.so
auth        required    pam_userdb.so db=/etc/vsftpd.login
account     required    pam_userdb.so db=/etc/vsftpd.login
再次修改/etc/vsftpd.conf,使其内容与anonymous有关的全部禁用,还有刚才的chroot也被列为禁用,如果想用的话保证虚拟号能常的前提下再另行测试,并在最后加入二句话:

guest_enable=YES

guest_username=vuser  接下来就是重启vsftpd

[root@server root]# killall -HUP vsftpd  #!
[root@server root]# ftp localhost  #测试
Connected to server.redhat.org.cn.
220 Welcome to linfeng's ftp server.
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): tom   #虚拟号
331 Please specify the password.
Password:   #虚拟号tom的密码
230 Login successful.  #成功
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,136,56)
150 Here comes the directory listing.
226 Transfer done (but failed to open directory).   #怎么会禁止了呢?想一下上面的,,呵呵,这就是因为vuser用户的权限啊,只需"chmod o+r /home/vuser"那可浏览,但不可上传,因为没有"w"位

=====================================

网络参考文章:
http://www.bianceng.cn/OS/Linux/200706/3020.htm
http://www.shineblog.com/user2/24790/archives/2005/175940.shtml
这两篇都比较详细。

posted on 2007-11-26 18:10  林宁  阅读(1966)  评论(0编辑  收藏  举报