热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

vsftpd服务器中本地用户登录的问题

问一个vsftpd本地用户登录的问题在RHEL52上配置vsftpd,开启本地用户登录功能。然后创建一个用户,名字是ftp,设置密码,shell是nologin。之后发现用这个用户无法登陆,530Loginincorrect.但是root可以之后配置文件加入了userlist_deny等配置,明确哪些本
问一个vsftpd本地用户登录的问题在RHEL52上配置vsftpd,开启本地用户登录功能。然后创建一个用户,名字是ftp,设置密码,shell是nologin。之后发现用这个用户无法登陆,530 Login incorrect. 但是root可以

之后配置文件加入了userlist_deny等配置,明确哪些本地用户不允许登录,这样用这个“ftp”用户就可以了。

请问默认情况下,vsftpd不允许本地普通用户登录么?

附上配置文件内容:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
nopriv_user=nobody
async_abor_enable=YES
listen=YES
connect_from_port_20=YES
xferlog_std_format=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
tcp_wrappers=YES
ftp_username=ftp
local_root=/DataRepository/
chroot_local_user=YES
anon_other_write_enable=YES
anon_umask=022

另外我设置了nopriv_user=nobody。但是ps的结果,vsftpd的进程依然是root。

请各位指点一下,多谢!我理解这是不是vsftpd的一个安全特性。

在没有明确userlist之前,不允许除root之外的任何用户登录ftp。以此来强制大家在使用本地用户验证的时候启用userlist功能。有了解vsftp的安全特性的大侠,给确认一下?
另外我设置了nopriv_user=nobody。但是ps的结果,vsftpd的进程依然是root。

请各位指点一下,多谢!

这是进程和子进程的问题。

主进程虽然是以root用户在运行,但是当客户端访问该服务时,并不是该进程直接对客户端提供服务,而是会以一个nopriv_user来负责与用户建立网络连接,这一点可以通过ps aux 和 netstat -antp 仔细观察得到,你可以先从客户端连接到该 ftp 服务器,然后在服务器上使用上述命令观察建立连接的进程,必然是nobody。

放心吧。

在RHEL52上配置vsftpd,开启本地用户登录功能。然后创建一个用户,名字是ftp,设置密码,shell是nologin。之后发现用这个用户无法登陆,530 Login incorrect. 但是root可以

之后配置文件加入了userlist_deny等配置,明确哪些本地用户不允许登录,这样用这个“ftp”用户就可以了。

请问默认情况下,vsftpd不允许本地普通用户登录么?

对于你的环境我不完全了解,在没有开启selinux,同时vsftpd 是系统安装好以后的默认配置的话,我测试了centos 5.2和rhel 5.1,没有发现你说的问题。

建议你仔细检查系统中的其他环境与设置。比如 passwd 与 shadow文件之类的。

在RHEL52上配置vsftpd,开启本地用户登录功能。然后创建一个用户,名字是ftp,设置密码,shell是nologin。之后发现用这个用户无法登陆,530 Login

请各地银行朋友谈一下公用事业代缴费的情况

incorrect. 但是root可以

之后配置文件加入了userlist_deny ...

这个也是出于安全才这么设计,具体你得参考APUE(Unix系统高级编程有关进程编程章节),守护进程是root身份,而fork出来子进程的身份是nobody,这种设计模式apache也在使用。
使用pstree可以观察到:

vsftpd(27210)───vsftpd(5700)───vsftpd(5702)

这是一次连接的进程截图。
vsftpd(27210)守护进程root
vsftpd(5700) 子进程nobody(接受客户发过来http://www.server110.com的ftp指令)
vsftpd(5702) 上一个子进程的子进程,匿名用户登录时它的身份ftp,本地帐户登录它的身份是本地帐户名。给客户发送数据。

nopriv_user
用于指定一个用户,revlon露华浓 当 vsftpd 要切换到无权限状态时, 使用此用户. 注意这最好是一个专用用户, 而不是用户 nobody. 在大多数机器上, 用户 nobody 被用于大量重要的事情.vsftpd默认是nobody.


推荐阅读
author-avatar
qianyu2602915863
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有