VSFtp虚拟账号配置与维护
安装vsftp时没有db_load这个命令
该命令需要 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_login.db
该命令会建立一个文件 /etc/vsftpd_login.db ,同时改变它的文件属性:
chmod 600 /etc/vsftpd_login.db
2) Create a PAM file which uses your new database.(建立PAM文件,告诉系统你要使用自己的数据库了)
看看另一个文件vsftpd.pam,它有两行内容:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
这是告诉系统,我将用新的用户授权库了。ok,把这个文件copy到/etc/pam.d/ftp:
cp vsftpd.pam /etc/pam.d/ftp
3) Set up the location of the files for the virtual users(为虚拟用户建立文件夹)
useradd -d /home/ftpsite virtual
ls -ld /home/ftpsite
(会得到以下输出):
drwx—— 3 virtual virtual 4096 Jul 30 00:39 /home/ftpsite
然后:
cp /etc/hosts /home/ftpsite
chown virtual.virtual /home/ftpsite/hosts
4)修改vsftpd.conf文件
文件在/etc/vsftpd/vsftpd.conf,在后面加上:
anonymous_enable=NO
local_enable=YES
write_enable=NO (注:这里可按需求设置)
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd_user_conf
5)建立用户的权限
先mkdir /etc/vsftpd_user_conf
//开放tom和fred的读权限
#echo "anon_world_readable_only=NO">/etc/vsftpd_user_conf/tom
#echo "anon_world_readable_only=NO">/etc/vsftpd_user_conf/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_login.db
2。如果只是要修改用户的密码,只需重新运行db_load就可以
3。如果要改变用户的其它配置,只需修改用户的配置文件
原文:http://tristan1.javaeye.com/blog/372377
会有3个包
db4-utils-4.3.29-9.fc6
db4-4.3.29-9.fc6
如果缺少,则安装相应的包,rpm安装即可
centos上可以通过