您的位置:首页 > 编程语言 > PHP开发

vsftpd之虚拟用户相关

2015-06-05 03:20 513 查看
虚拟用户:
所有虚拟用户都是系统用户的映射。
0.创建系统用户:
#useradd vusers -s /sbin/nologin -d /var/ftproot
#password vusers

#chown vusers:vusers /var/ftproot

使用账号文件:
1.创建虚拟用户名单:
#vim /etc/vsftpd/vusers
USERNAME
PASSWORD

#db_load -T -t hash -f /etc/vsftpd/vusers /etc/vsftpd/vusers.db 使用db_load命令转换为二进制文件,此命令由db4-utils包提供。

#chmod 600 /etc/vsftpd/vusers.db 更改权限,保证安全。

2.编辑pam配置文件:
#vim /etc/pam.d/vsftpd.vusers
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers

3.编辑配置文件:
#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES

guest_enable=YES 启用虚拟账户
guest_username=vuser 虚拟账户对应的系统账户
#virtual_user_local_privs=NO 虚拟账户权限是否和系统账户权限一致,YSE表示一致,NO表示和匿名账户权限一致。默认为NO。

pam_service_name=vsftpd.vusers pam验证服务

user_config_dir=/etc/vsftpd/vusers_dir 虚拟用户权限文件夹

4.创建虚拟用户配置文件夹:
#mkdir /etc/vsftpd/vsftpd_user_conf
#cd /etc/vsftpd/vsftpd_user_conf
#vim USERNAME1
#write_enable=YES 用户是否有写权限。默认是YES
anon_world_readable_only=YES 匿名用户是否可以下载,默认为YES。
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

使用mysql:
1.安装pam_mysql
#tar xf pam_mysql-xxx.tar.gz
#cd pam_mysql-xxx
#./configure --with-mysql=/usr -with-pam-mods-dir=/lib/security --with-openssl
#make && make install

2.编辑pam认证文件:
#vim /etc/pam.d/vsftpd.mysql
auth required /lib/security/pam_mysql.so user=vsftpd passwd=test host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /lib/security/pam_mysql.so user=vsftpd passwd=test host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

crypt=NUM
0 明文
1 使用加密功能
2 使用mysql,但是mysql的password()和pam的password()功能不同。使用mysql加密的字符串pam解密时可能失败。如果失败则使用明文crypt=0。
3 使用md5
4 sha1

3.编译mysql,添加数据库:
#mysql -uroot -p
mysql> create database vsftpd;

mysql> grant select on vsftpd.* to vsftpd@localhost identified by 'test';
mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by 'test';
mysql> flush privileges;

mysql> use vsftpd;
mysql> create table users (
-> id int AUTO_INCREMENT NOT NULL,
-> name char(20) binary NOT NULL,
-> password char(48) binary NOT NULL,
-> primary key(id)
-> );

mysql> insert into users(name,password) values('USERNAME1',password('PASSWORD'));
mysql> insert into users(name,password) values('USERNAME2',password('PASSWORD'));

4.编辑配置文件:
#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES

guest_enable=YES 启用虚拟账户
guest_username=vuser 虚拟账户对应的系统账户
#virtual_user_local_privs=NO 虚拟账户权限是否和系统账户权限一致,YSE表示一致,NO表示和匿名账户权限一致。默认为NO。

pam_service_name=vsftpd.mysql pam验证服务

user_config_dir=/etc/vsftpd/vusers_dir 虚拟用户权限文件夹

5.创建虚拟用户配置文件夹:
#mkdir /etc/vsftpd/vsftpd_user_conf
#cd /etc/vsftpd/vsftpd_user_conf
#vim USERNAME2
#write_enable=YES 用户是否有写权限。默认是YES
anon_world_readable_only=YES 匿名用户是否可以下载,默认为YES。
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

本文出自 “小私的blog” 博客,请务必保留此出处http://ggvylf.blog.51cto.com/784661/1658703
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: