Red Hat Enterprise Linux 4.7中vsftp的设置

  装好了linux,先来把ftp开一下。Red Hat Enterprise Linux 4.7中默认的有一个GSftp,但是一搜网上,讨论的太少了,基本没什么资料。还是用vsftp吧。也是默认就装上的,在服务里面启动就可以了(我是在gnome里面打开的)。查看装没装:rpm -q vsftpd   会显示版本号。

  vsftp有三种模式,匿名登陆,本地用户登陆,虚拟用户。匿名用户我不用,按说虚拟用户最好,也安全。但是一看资料,太麻烦了,还要用别的工具或数据库存储用户信息,反正我也不做专业的ftp,只是自己传个东西,还是用本地用户吧。

  一、首先建立ftp的目录和用户

  建目录简单:mkdir /tmp/ftp

  建组和用户在图形界面下很简单,和windows一样,但是既然用LiInux,还是学点命令的好。

  建组:groupadd ftpuser (这一步我没加,反正建个用户自己用,也不想建什么组。其实用下面的useradd的时候,如果不指定组,系统会自动建一个名称相同的组。)

  创建用户

  useradd -G test –d /tmp/test –M -s /sbin/nologin ftpuser

  注:我建的用户叫ftpuser。其他参数:G:用户所在的组(这个我没指定); d:表示创建用户的自己目录的位置给予指定;M:不建立默认的自家目录,也就是说在/home下没有自己的目录;s:用户登陆的shell,这里/sbin/nologin是没有shell,因为ftp用户不需要让他在系统登陆。

  建好用户给用户设密码:

  passwd ftpuser 再输入两次密码就可以了。另外,删除用户的命令是:userdel -r ftpuser

  至此,如果vsftpd服务开着的话,就能够访问了,不过只能看,不能传。因为在其目录没有权限。

  二、目录权限的设定

  两种办法:把目录的属主定为ftp用户: chown ftpuser /tmp/ftp

  还有把目录权限设定为777(自己用,ftp下面都是临时传的一些文件,全有权限算了)

  chmod 777 /tmp/ftp  ----7表示wrx 5表示rx 0表示什么权限都没有

  这样似乎就行了,怎么发现ftp登陆的以后,可以到处转呀,系统所有的目录都能尽收眼底,这样不行,应该把用户限定在ftp目录下面。

  三、限定目录

  这就改修改/etc/vsftpd.conf了,里面的内容可真多,咱也不用仔细研究了。

  资料说要确定local_enable=yes、write_enable=yes、chroot_local_usr=yes这三个选项。我看前两项默认的已经是yes了,就是后面的chroot_local_usr需要改成YES。改完之后发现登陆时提示could not open chroot() list file:/etc/vsftpd.chroot_list,原来系统本来没有vsftpd.chroot_list这个文件。

  touch /etc/vsftpd.chroot_list,建立这个文件,在里面写上userftp的名字。OK,重启后再也不能到处乱跑了。

  vsftpd的重启命令:service vsftpd restart(start stop)

  我还忘了一项,应该把anonymous_enable=YES改成NO,把匿名登陆关了。