vsftpd基于数据库文件实现虚拟用户管理站点目录
2018-01-14 14:29
776 查看
vsftpd基于数据库文件来实现虚拟用户管理站点目录:
ftp授权单个系统用户管理(此用户要禁止登陆服务器),虚拟出多个虚拟用户来管理不同的站点目录
一环境:
(1)关闭selinux,centos6.8 x_86_64开启防火墙,放开ftp的端口
(2).存放虚拟用户的密码文件
[root@cacti vsftpd]# cat /etc/vsftpd/vsftpd_login
drxiaowu ##账户
ZkJxu55rt9 ##密码
yanyonG
Zk&aO=+w09
xiaowu
Zk&xi+wu96
(3)生成帐户的文件数据库
db_load -T -t hash -f vsftpd_login /etc/vsftpd/vsftpd_login.db
(4)修改文件数据库访问权限
chmod 600 /etc/vsftpd/vsftpd_login.db
(5)手工建立虚拟用户所需的PAM配置文件
[root@cacti extra]# cat /etc/pam.d/vsftpd.virtual
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
(6)添加一个虚拟用户的入口帐户
useradd -d /var/www/html -s /sbin/nologin apache
二.生产环境配置演示:
2.1 完整生产配置文件如下:
[root@cacti test001]# cat /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
listen=YES
listen_port=1029 ###默认ftp端口是21,现在修改ftp端口为1029
###listen_data_port=1011
pam_service_name=vsftpd.virtual
userlist_enable=YES
tcp_wrappers=YES
check_shell=YES
chroot_local_user=YES
guest_enable=YES
guest_username=apache
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/extra
2.2 多个不同的虚拟用户共享管理同一个站点目录的配置文件:
[root@cacti extra]# cat /etc/vsftpd/extra/drxiaowu
local_root=/var/www/html/cacti
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
idle_session_timeout=600
data_connection_timeout=120
max_clients=3
max_per_ip=3
local_max_rate=50000
[root@cacti extra]# cat /etc/vsftpd/extra/yanyonG
local_root=/var/www/html/cacti
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
max_clients=3
max_per_ip=2
local_max_rate=50000
2.2 多个不同的虚拟用户管理不同站点目录的配置文件:
[root@cacti extra]# cat xiaowu
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/var/www/html/itop
max_clients=1
max_per_ip=2
local_max_rate=50000
[root@cacti extra]# cat drxiaowu
local_root=/var/www/html/cacti
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
idle_session_timeout=600
data_connection_timeout=120
max_clients=3
max_per_ip=3
local_max_rate=50000
测试:
登陆xiaowu ftp账户测试:
[root@cacti itop]# lftp -p 1029 xiaowu@192.168.1.102
lftp xiaowu@192.168.1.102:/> mkdir test0000000001
mkdir ok, `test0000000001' created
lftp xiaowu@192.168.1.102:/> cd test0000000001/
lftp xiaowu@192.168.1.102:/test0000000001> put /root/10.13.23.24.sql
265146 bytes transferred in 5 seconds (48.7K/s)
lftp xiaowu@192.168.1.102:/test0000000001> ls
-rw-r--r-- 1 48 48 265146 Jan 14 05:47 10.13.23.24.sql
lftp xiaowu@192.168.1.102:/test0000000001> pwd[url=mailto:br/>ftp://xiaowu@192.168.1.102:1029/test0000000001 ftp://xiaowu@192.168.1.102:1029/test0000000001 [root@cacti itop]# ll test0000000001/
total 260
-rw-r--r--. 1 apache apache 265146 Jan 14 13:47 10.13.23.24.sql
登陆drxiaowu ftp账户测试:
[root@cacti itop]# lftp -p 1029 drxiaowu@192.168.1.102
Password:
lftp drxiaowu@192.168.1.102:~> ls
lftp drxiaowu@192.168.1.102:/> mkdir txt0000001
mkdir ok, `txt0000001' created
lftp drxiaowu@192.168.1.102:/> cd txt0000001/
lftp drxiaowu@192.168.1.102:/txt0000001> put /root/MegaSAS.log
187351 bytes transferred
lftp drxiaowu@192.168.1.102:/txt0000001> ls
-rw-r--r-- 1 48 48 187351 Jan 14 05:53 MegaSAS.log
lftp drxiaowu@192.168.1.102:/txt0000001>
[root@cacti itop]# cd /var/www/html/cacti/
[root@cacti cacti]# ls txt0000001/
MegaSAS.log
[root@cacti cacti]# ll txt0000001/
total 184
-rw-r--r--. 1 apache apache 187351 Jan 14 13:53 MegaSAS.log
2.3 多个不同的虚拟用户管理不同站点目录的配置文件:
当前的站点目录不都是在/var/www/html 下了,而是在如下目录,例如:/data/www/testweb /var/www/html /opt/www 类似这样的多个目录:
配合文件如下:
[root@cacti /]# cat /etc/vsftpd/extra/xiaowu
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/data/www/testweb
max_clients=1
max_per_ip=2
local_max_rate=50000
测试:
[root@cacti itop]# lftp -p 1029 xiaowu@192.168.1.102
Password:
lftp xiaowu@192.168.1.102:~> ls
lftp xiaowu@192.168.1.102:/> ls
lftp xiaowu@192.168.1.102:/> pwd ftp://xiaowu@192.168.1.102:1029/
lftp xiaowu@192.168.1.102:/> put /root/10.13.23.24.sql
put: Access failed: 553 Could not create file. (10.13.23.24.sql)
上传文件失败,原因是:虚拟用用户是apache,而指定的ftp的上传的站点目录/data/www/testweb却是root权限,所以没有权限上传。
授权testweb为apache权限
cd /data/www/
chown -R apache.apache testweb
重新上传:
[root@cacti www]# lftp -p 1029 xiaowu@192.168.1.102
Password:
lftp xiaowu@192.168.1.102:~> ls
lftp xiaowu@192.168.1.102:/> pwd[url=mailto:br/>ftp://xiaowu@192.168.1.102:1029/ ftp://xiaowu@192.168.1.102:1029/ 265146 bytes transferred in 5 seconds (48.8K/s)
lftp xiaowu@192.168.1.102:/> ls
-rw-r--r-- 1 48 48 265146 Jan 14 06:09 10.13.23.24.sql
[root@cacti www]# ll /data/www/testweb/
total 260
-rw-r--r--. 1 apache apache 265146 Jan 14 14:09 10.13.23.24.sql
上传成功。
提示:此时其他的ftp用户drxiaowu yanyong 任然可以上传文件到/var/www/html/cacti /var/www/html/itop 目录下。
ftp授权单个系统用户管理(此用户要禁止登陆服务器),虚拟出多个虚拟用户来管理不同的站点目录
一环境:
(1)关闭selinux,centos6.8 x_86_64开启防火墙,放开ftp的端口
(2).存放虚拟用户的密码文件
[root@cacti vsftpd]# cat /etc/vsftpd/vsftpd_login
drxiaowu ##账户
ZkJxu55rt9 ##密码
yanyonG
Zk&aO=+w09
xiaowu
Zk&xi+wu96
(3)生成帐户的文件数据库
db_load -T -t hash -f vsftpd_login /etc/vsftpd/vsftpd_login.db
(4)修改文件数据库访问权限
chmod 600 /etc/vsftpd/vsftpd_login.db
(5)手工建立虚拟用户所需的PAM配置文件
[root@cacti extra]# cat /etc/pam.d/vsftpd.virtual
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
(6)添加一个虚拟用户的入口帐户
useradd -d /var/www/html -s /sbin/nologin apache
二.生产环境配置演示:
2.1 完整生产配置文件如下:
[root@cacti test001]# cat /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
listen=YES
listen_port=1029 ###默认ftp端口是21,现在修改ftp端口为1029
###listen_data_port=1011
pam_service_name=vsftpd.virtual
userlist_enable=YES
tcp_wrappers=YES
check_shell=YES
chroot_local_user=YES
guest_enable=YES
guest_username=apache
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/extra
2.2 多个不同的虚拟用户共享管理同一个站点目录的配置文件:
[root@cacti extra]# cat /etc/vsftpd/extra/drxiaowu
local_root=/var/www/html/cacti
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
idle_session_timeout=600
data_connection_timeout=120
max_clients=3
max_per_ip=3
local_max_rate=50000
[root@cacti extra]# cat /etc/vsftpd/extra/yanyonG
local_root=/var/www/html/cacti
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
max_clients=3
max_per_ip=2
local_max_rate=50000
2.2 多个不同的虚拟用户管理不同站点目录的配置文件:
[root@cacti extra]# cat xiaowu
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/var/www/html/itop
max_clients=1
max_per_ip=2
local_max_rate=50000
[root@cacti extra]# cat drxiaowu
local_root=/var/www/html/cacti
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
idle_session_timeout=600
data_connection_timeout=120
max_clients=3
max_per_ip=3
local_max_rate=50000
测试:
登陆xiaowu ftp账户测试:
[root@cacti itop]# lftp -p 1029 xiaowu@192.168.1.102
lftp xiaowu@192.168.1.102:/> mkdir test0000000001
mkdir ok, `test0000000001' created
lftp xiaowu@192.168.1.102:/> cd test0000000001/
lftp xiaowu@192.168.1.102:/test0000000001> put /root/10.13.23.24.sql
265146 bytes transferred in 5 seconds (48.7K/s)
lftp xiaowu@192.168.1.102:/test0000000001> ls
-rw-r--r-- 1 48 48 265146 Jan 14 05:47 10.13.23.24.sql
lftp xiaowu@192.168.1.102:/test0000000001> pwd[url=mailto:br/>ftp://xiaowu@192.168.1.102:1029/test0000000001 ftp://xiaowu@192.168.1.102:1029/test0000000001 [root@cacti itop]# ll test0000000001/
total 260
-rw-r--r--. 1 apache apache 265146 Jan 14 13:47 10.13.23.24.sql
登陆drxiaowu ftp账户测试:
[root@cacti itop]# lftp -p 1029 drxiaowu@192.168.1.102
Password:
lftp drxiaowu@192.168.1.102:~> ls
lftp drxiaowu@192.168.1.102:/> mkdir txt0000001
mkdir ok, `txt0000001' created
lftp drxiaowu@192.168.1.102:/> cd txt0000001/
lftp drxiaowu@192.168.1.102:/txt0000001> put /root/MegaSAS.log
187351 bytes transferred
lftp drxiaowu@192.168.1.102:/txt0000001> ls
-rw-r--r-- 1 48 48 187351 Jan 14 05:53 MegaSAS.log
lftp drxiaowu@192.168.1.102:/txt0000001>
[root@cacti itop]# cd /var/www/html/cacti/
[root@cacti cacti]# ls txt0000001/
MegaSAS.log
[root@cacti cacti]# ll txt0000001/
total 184
-rw-r--r--. 1 apache apache 187351 Jan 14 13:53 MegaSAS.log
2.3 多个不同的虚拟用户管理不同站点目录的配置文件:
当前的站点目录不都是在/var/www/html 下了,而是在如下目录,例如:/data/www/testweb /var/www/html /opt/www 类似这样的多个目录:
配合文件如下:
[root@cacti /]# cat /etc/vsftpd/extra/xiaowu
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/data/www/testweb
max_clients=1
max_per_ip=2
local_max_rate=50000
测试:
[root@cacti itop]# lftp -p 1029 xiaowu@192.168.1.102
Password:
lftp xiaowu@192.168.1.102:~> ls
lftp xiaowu@192.168.1.102:/> ls
lftp xiaowu@192.168.1.102:/> pwd ftp://xiaowu@192.168.1.102:1029/
lftp xiaowu@192.168.1.102:/> put /root/10.13.23.24.sql
put: Access failed: 553 Could not create file. (10.13.23.24.sql)
上传文件失败,原因是:虚拟用用户是apache,而指定的ftp的上传的站点目录/data/www/testweb却是root权限,所以没有权限上传。
授权testweb为apache权限
cd /data/www/
chown -R apache.apache testweb
重新上传:
[root@cacti www]# lftp -p 1029 xiaowu@192.168.1.102
Password:
lftp xiaowu@192.168.1.102:~> ls
lftp xiaowu@192.168.1.102:/> pwd[url=mailto:br/>ftp://xiaowu@192.168.1.102:1029/ ftp://xiaowu@192.168.1.102:1029/ 265146 bytes transferred in 5 seconds (48.8K/s)
lftp xiaowu@192.168.1.102:/> ls
-rw-r--r-- 1 48 48 265146 Jan 14 06:09 10.13.23.24.sql
[root@cacti www]# ll /data/www/testweb/
total 260
-rw-r--r--. 1 apache apache 265146 Jan 14 14:09 10.13.23.24.sql
上传成功。
提示:此时其他的ftp用户drxiaowu yanyong 任然可以上传文件到/var/www/html/cacti /var/www/html/itop 目录下。
相关文章推荐
- vsftpd+mysql+apache实现给虚拟用户分配不同目录及权限并实现远程管理
- 实现基于文件验证的vsftpd 虚拟用户
- 实验-----实现基于文件验证的vsftpd虚拟用户
- 实现基于文件验证的vsftpd虚拟用户和基于MYSQL验证的vsftpd虚拟用户
- 实现让vsftpd支持虚拟用户和用mysql对用户进行管理
- CentOS6.3+vsftpd+mysql+pam_mysql实现虚拟用户管理的ftp服务器
- Vsftpd 虚拟用户实现公司各部门文件的上传下载
- 基于vsftpd+pam+mysql架设ftp并实现虚拟用户登录
- centos6.5下vsftpd服务的安装及配置并通过pam认证实现虚拟用户文件共享
- 基于ssl/tls实现vsftpd的安全通信并通过PAM实现对vsftpd的虚拟用户认证
- BOS项目练习(权限/角色/用户管理(CRUD),基于数据库实现动态授权,ehcache缓存权限,shiro标签,菜单权限展示)
- vsftpd的基于pam_mysql的虚拟用户机制实现数据传输
- ubuntu下vsftpd的配置(虚拟用户基于文件验证)
- 实现基于MYSQL验证的vsftpd虚拟用户
- Oracle 10g数据库中,当在数据库中创建用户时,基于应用性能和管理方面的考虑,最好为不同的用户创建独立的表空间。 那么创建表空间的步骤是怎样实现的呢?本文我们主要就介绍了这一部分内容,接下来就让
- 实现基于mysql验证的vsftpd虚拟用户
- CentOS6.3下vsftpd通过pam认证实现虚拟用户文件共享 推荐
- 框架 day54 BOS项目练习(权限/角色/用户管理(CRUD),基于数据库实现动态授权,ehcache缓存权限,shiro标签,菜单权限展示)
- VSFTPD实现基于虚拟用户的认证
- 实现基于mysql验证的vsftpd虚拟用户 (centos6)