yum install -y db4-utils
即可安装
其它服务器上,则要到安装光盘上找,或者去网上下载
为vsftp建立虚拟用户
在RedHat AS里,是自带了vsftpd为系统提供了一个ftp服务,但在实际应用中根据自己的需要还是要做不少的配置。
我们知道,在建立vsftpd用户时,我们一般是在linux下建立用户useradd的方式来访问ftp,但有时我们只想提供ftp服务,而避免用户用ftp的帐号去登录linux,采用一般的方式只能是限制该用户的访问权限,但还是避免不了用户登录进linux系统,所以比较好的方法是用vsftpd的虚拟用户(virtual users)。
配置的步骤如下
1) Create the virtual users database.(建立虚拟用户数据库)
大家看一下logins.txt文件的格式,它的内容是:
tom
foo
fred
bar
意思是说用户tom的密码是foo,用户fred的密码是bar,这就是虚拟用户的信息,大家可以按
<用户名>
<密 码>
的格式来建立自己的虚拟用户群。
然后以root用户登录系统,建立用户数据库:
db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db
该命令会建立一个文件 /etc/vsftpd/vsftpd_login.db ,同时改变它的文件属性:
chmod 600 /etc/vsftpd/vsftpd_login.db
2) Create a PAM file which uses your new database.(建立PAM文件,告诉系统你要使用自己的数据库了)
vim /etc/pam.d/vsftpd.vu
添加以下两行,这里是64位系统,用的是lib64,如果32位用lib
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd_login
这是告诉系统,我将用新的用户授权库了。ok,把这个文件copy到/etc/pam.d/ftp:
3) Set up the location of the files for the virtual users(为虚拟用户建立文件夹)
useradd -d /ftpsite virtual
ls -ld /ftpsite
(会得到以下输出):
drwx------ 3 virtual virtual 4096 Jul 30 00:39 /ftpsite
4)修改vsftpd.conf文件
文件在/etc/vsftpd/vsftpd.conf,在后面加上:
anonymous_enable=NO
chroot_local_user=YES
user_config_dir=/etc/vsftpd/vsftpd_vu
pam_service_name=/etc/pam.d/vsftpd.vu
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=virtual
pasv_min_port=55500
pasv_max_port=55600
pasv_enable=YES
5)建立用户的权限
先mkdir /etc/vsftpd_vu
//开放tom和fred的读权限
echo "anon_world_readable_only=NO">/etc/vsftpd/vsftpd_vu/tom
echo "anon_world_readable_only=NO">/etc/vsftpd/vsftpd_vu/fred
这样就可以用读权限了,能看到目录和文件。
6)重启vsftpd
service vsftpd restart
ok,用tom用户登录ftp看看,是不是已经可以了
特别注意:
1。如果要删除掉一个虚拟用户,先在logins.txt中删除用户对应的用户名和密码,然后删除vsftpd_login.db,重新运行db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db
2。如果只是要修改用户的密码,只需重新运行db_load就可以
3。如果要改变用户的其它配置,只需修改用户的配置文件
主要配置文件:
yum install -y db4-utils-4.3.29-10.el5_5.2
生成数据库文件:
db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db
chmod 600 /etc/vsftpd/vsftpd_login.db
创建安全认证模块:
vim /etc/pam.d/vsftpd.vu
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
创建guest用户:
useradd -d /ftpsite virtual
chmod 700 /ftpsite
追加配置文件:
vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES
user_config_dir=/etc/vsftpd/vsftpd_vu
pam_service_name=/etc/pam.d/vsftpd.vu
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=virtual
pasv_min_port=55500
pasv_max_port=55600
pasv_enable=YES
ftp个人文件:
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/ftpsite/admin
anon_umask=022