Monthly Archive for December, 2005

Page 2 of 3

vsftpd同时使用系统用户和虚拟用户验证

记得有朋友曾经问过vsftpd可不可以同时使用系统用户和虚拟用户,我当时回答不可以。
对PAM了解不够,所以这个答案是错误的。

今天想起这个问题,决定做个试验来看看,事实证明是可以的。

我先了解了一PAM,看了这个文档,

www.linuxmine.com/5214.html

知道了PAM的验证模块是可以串在一起的,通过控制标志(control-flag)来控制。
文档里也给出了类似的一个例子。
为了打开匿名FTP,需要使用以下的配置命令代替默认的配置(OTHER):

# ftpd; add  ftp-specifics. These lines enable anonymous ftp over
# standard UNIX  access (the listfile entry blocks access to
# users listed in  /etc/ftpusers)
#
ftpd auth sufficient /usr/lib/security/pam_ftp.so
ftpd auth required /usr/lib/security/pam_unix_auth.so use_first_pass
ftpd auth required /usr/lib/security/pam_listfile.so
onerr=succeed  item=user sense=deny file=/etc/ftpusers

由于需要忽略默认的配置入口,所以第二行是必须要有的。这还是一个层叠模块的例子。使用sufficient控制标志,表示如果这个模块验证通过,就 不必使用后面的层叠模块进行验证了;use_first_pass表示使用为前面的模块(pam_ftp)输入的密码。

我的试验环境:
RedHat AS 4
vsftpd-2.0.1-5
pam-0.77-65.1

vsftpd使用的pam文件

auth sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login

auth  required pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers  onerr=succeed
auth required pam_stack.so service=system-auth
auth  required pam_shells.so
account required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth

可以看出前面两行是对虚拟用户的验证,后面是对系统用户的验证。
对虚拟用户的验证使用了sufficient这个控制标志。
这个标志的含义是如果这个模块验证通过,就不必使用后面的层叠模块进行验证了;但如果失败了,
就继续后面的认证,也就是使用系统真实用户的验证。

vsftpd.conf的内容(部分)

pam_service_name=vsftpd.mixed
listen=YES
tcp_wrappers=YES
local_enable=YES
guest_enable=YES
guest_username=ftp
listen_port=2121

如果加上anonymous_enable=YES,匿名用户也是可以登录的。
这样的话,就可以同时支持匿名用户,系统真实用户和虚拟用户了。

Related posts

JDBC无法连接Oracle数据库

连接数据库,有时会报如下的错误信息:

java.sql.SQLException: Io exception: The Network Adapter could not establish connection 一个解决方法:改用如下的连接串:

jdbc:oracle:thin:@(DESCRIPTION=(
ADDRESS_LIST=(
ADDRESS=(PROTOCOL=TCP)(HOST=yourhost)(PORT=1521)
)
)
(CONNECT_DATA=(SERVICE_NAME=yoursid)(SERVER=DEDICATED)))

(ref: http://www.websina.com/bugzero/kb/oracle-connection.html)

Related posts

修改Oracle XMLDB的监听端口

Oracle XMLDB 占用了8080端口。

(Ref: http://www.red-database-security.com/…_default_ports.html)

解决办法:

  1. 修改XMLDB的端口设置
  2. 禁止XMLDB监听端口

(Ref: http://herosys.net/x/modules/wfsection/article.php?articleid=84)

修改方法:

$ sqlplus "/ as sysdba"

SQL> call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),
2 '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()', 8083));

Call completed.

SQL> call dbms_xdb.cfg_update(updateXML( dbms_xdb.cfg_get(),
2 '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()' , 2111));

Call completed.

SQL> exec dbms_xdb.cfg_refresh;

PL/SQL procedure successfully completed.

(Ref: http://www.red-database-security.com/…-xmldb_port.html)

Related posts

运行Ant报Out of Memory错误

执行ant时报Out of Memory错误。

解决办法:

设置环境变量ANT_OPTS指定JVM使用的内存。

Bash:

% export ANT_OPTS=”-Xms128m -Xmx256m”

Windows cmd:

C:> set ANT_OPTS=”-Xms128m -Xmx256m”

Related posts

Ant使用第三方的task时jar文件的位置

第三方的jar文件可以放在三个地方(按照Ant查找的顺序):

  1. 通过-lib选项指定
  2. ${user.home}/.ant/lib
  3. $ANT_HOME/lib

注意jar文件的权限,一定要可以被执行ant的用户可读。

Related posts




This work by wolfg is licensed under a Attribution-Noncommercial-Share Alike 2.5 China Mainland.