您的位置:首页 > 编程语言 > PHP开发

文章标题

2015-12-04 11:16 495 查看

ftp服务器的搭建

服务器环境信息

Ubuntu

安装vsftpd: apt-get install vsftpd

当前使用的版本是3.0.2

目录结构

/etc/vsftpd.conf

vsftpd的配置文件。使用『参数=设定值』的形式来设置配置信息,如:anonymous_enable=YES,注意等号两边不要有空格。可以使用man 5 vsftpd.conf 查看所有可以设定的参数选项。

/etc/pam.d/vsftpd

这个是 vsftpd 使用 PAM 模块时的相关配置文件。



/etc/ftpusers

如上图所示,这是/etc/pam.d/vsftpd文件里指定的文件,这个文件的作用是禁止文件内指定的linux用户登录和使用ftp服务器。如图:


凡是上图出现过的用户,如用户daemon,都无法登陆和使用ftp服务器。

/usr/sbin/vsftpd

这是vsftpd的执行文件。

/srv/ftp

这个是 vsftpd 的预设匿名者登入的根目录喔!其实与 ftp 这个账号的家目录有关!

关键配置选项说明

listen=YES (NO)

若设定为 YES 表示 vsftpd 是以 standalone 的方式来启动的!

write_enable=YES (NO)

如果你允许用户上传数据时,需要设定为YES。

local_enable=YES (NO)

这个设定值必须要为 YES 时,在 /etc/passwd 内的账号才能以实体用户的方式登入我们的 vsftpd 服务器喔!

chroot_local_user=YES (NO)

是否要将使用者限制在自己的家目录之内(chroot)?如果是 YES 代表用户默认就会被 chroot,如果是 NO, 则预设是没有 chroot。不过,实际还是需要底下的两个参数互相参考才行。为了安全性,这里应该要设定成 YES 才好。

chroot_list_enable=YES (NO)

是否启用 chroot 写入列表的功能?与底下的 chroot_list_flie 有关!这个项目得要开启,否则底下的列表档案会无效。

chroot_list_file=/etc/vsftpd.chroot_list

如果 chroot_list_enable=YES 那么就可以设定这个项目了。这个文件需要在安装好vsftpd后手动创建。在chroot_local_user=YES,chroot_list_enable=YES的情况下,出现在这个文件内的用户,登录ftp服务器后不会被定为到根目录。 vsftpd 配置:chroot_local_user与chroot_list_enable详解

实体用户无法登陆

1.500 OOPS: vsftpd: refusing to run with writable root inside chroot()

解决办法

2.将用户的shell修改为/sbin/nologin,后无法登陆

vsftpd.conf中有个参数,check_shell=YES|NO

vsftpd会检测用户的shell是否登记于/etc/shells文件中

查看了文件发现确实没有/sbin/nologin,手动添加后问题解决了

参考资料:鸟哥的linux私房菜
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ftp服务器