[乐意黎原创]Centos ftp连接时抛vftpuser.db: file size not a multiple of the pagesize 530 Login incorrect.的解决办法

1. 如题, FTP上传时抛vftpuser.db: file size not a multiple of the pagesize 530 Login incorrect.

STATUS:>  	[2020-09-02 20:51:47] Connected. Authenticating...
COMMAND:>	[2020-09-02 20:51:47] USER root
		    [2020-09-02 20:51:47] 331 Please specify the password.
COMMAND:>	[2020-09-02 20:51:47] PASS *****
		    [2020-09-02 20:51:48] BDB3037 /*/*/vftpuser.db: file size not a multiple of the pagesize
		530 Login incorrect.
ERROR:>   	[2020-09-02 20:51:48] WARNING! Invalid FTP reply received: 3 digit number expected at the beginning of the server reply.
ERROR:>   	[2020-09-02 20:51:48] Not logged in.
ERROR:>   	[2020-09-02 20:51:48] Can't login. Disconnecting...

研究了好久,发现是 vftpuser.db文件有错。
解决办法:

1. 定位到vftpuser.db所在的父目录(如 cd /etc/aerchi/vftpuser.db),  使用 rm  vftpuser.db  删除 vftpuser.db

[root@aerchivsftpd]# rm vftpuser.db
rm: remove regular file ‘vftpuser.db’? y

2. 使用 load_data 重新生成vftpuser.db

[root@aerchi vsftpd]# db_load -T -t hash -f /etc/aerchi/vftpuser.txt /etc/aerchi/vftpuser.db
[root@aerchi vsftpd]# ll
total 60
...
-rw-r--r-- 1 root root 12288 Sep  2 21:07 vftpuser.db
...

3. 重启ftp

service vsftpd restart

4. 再次连接, 正常。


COMMAND:>	[2020-09-02 21:21:49] CWD /*/aerchi
		    [2020-09-02 21:21:49] 250 Directory successfully changed.
STATUS:>  	[2020-09-02 21:21:49] PWD skipped. Current folder: "/*/aerchi".
COMMAND:>	[2020-09-02 21:21:49] PORT 192,168,2,101,221,209
		    [2020-09-02 21:21:49] 200 PORT command successful. Consider using PASV.
COMMAND:>	[2020-09-02 21:21:49] LIST -a
		    [2020-09-02 21:21:49] 150 Here comes the directory listing.
		    [2020-09-02 21:21:49] 226 Directory send OK.
STATUS:>  	[2020-09-02 21:21:49] Directory listing completed

2. FTP登录时显示: vsftpd 530 login incorrect 

查看 /etc/vsftpd/vsftpd.conf文件中的相关配置,

pam_service_name=vsftpd, 表明启用了pam.

配置:  进入  vim/etc/pam.d/vsftpd , 修改如下

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/f    tpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include     password-auth
#account    include     password-auth
auth       required     /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account    required     /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
session    required     pam_loginuid.so
session    include      password-auth
~

保存后, 再次重启 vsftpd. 
用 cmd 测试:

OK, 成功了


3.另, 关于 Cute FTP登录后, 远程工作区目录看不到目录列表的解决方法.

解决办法:  站点管理器右击 属性  -> 站点属性窗口, 操作选项卡, -> 筛选器 (筛选器属性)-> 取消勾选 启用筛选


乐意黎原创
2020-09-02

最近在做ldap服务器的认证,要求支持三种(none,simple,strong)连接方式, 但是现在只支持两种none和simple两种方式,对于strong方式的DIGEST-MD5,NTLM, CRAM-MD等方式都不支持。ldapConnect链接代码如下 ``` public LdapContext getLdapConnection(String userName, String passwd) { LdapContext ldapContext = null; // 用户名称,cn,ou,dc 分别:用户,组,域 env.put(Context.SECURITY_PRINCIPAL, userName); // 用户密码 cn 的密码 env.put(Context.SECURITY_CREDENTIALS, passwd); // url 格式:协议://ip:端口/组,域 ,直接连接到域或者组上面 env.put(Context.PROVIDER_URL, "ldap://192.168.7.245:389/dc=thundersoft,dc=com"); // LDAP 工厂 env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); // 验证的类型 "none", "simple", "strong" env.put(Context.SECURITY_AUTHENTICATION, "DIGEST-MD5"); try { ldapContext = new InitialLdapContext(env, null); System.out.println("---connection is ready----"); } catch (NamingException e) { // e.printStackTrace(); System.out.println("--- get connection failure ----"); } return ldapContext; } ``` Context.SECURITY_AUTHENTICATION 这个属性的值为none和simple都能链接成功 但当其值为 DIGEST-MD报下面这个错 javax.naming.AuthenticationException: [LDAP: error code 49 - SASL(-13): user not found: no secret in database] 当然这个sasl用户在服务起中是没有添加的,但是现在问题在于 : 1)我不确定我安装的ldap服务器是否支持sasl认证 2)我不知道如何想ldap服务器中添加SASL用户;网上的资料一般都是 运行 saslpasswd2 -c test(用户名),之后输入密码和确认密码来完成的,但是当我运行这个命令的候也会报错 saslpasswd2: generic failure ,以root来运行又会出现 BDB3037 /etc/sasldb2: file size not a multiple of the pagesize saslpasswd2: generic failure 这个错误。 有没有对ldap比较了解的希望能帮忙解答一下
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页