之后配置文件加入了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.