安装:

安装:

创设基于虚拟用户的vsftpd服务器,创设vsftpd服务器

安装:
[[email protected]
~]# yum install -y vsftpd
[[email protected]
~]# rpm -ql vsftpd /etc/logrotate.d/vsftpd /etc/pam.d/vsftpd
/etc/rc.d/init.d/vsftpd /etc/vsftpd /etc/vsftpd/ftpusers
/etc/vsftpd/user_list /etc/vsftpd/vsftpd.conf
/etc/vsftpd/vsftpd_conf_migrate.sh /usr/sbin/vsftpd  …….
[[email protected]
~]# /etc/init.d/vsftpd start Starting vsftpd for vsftpd:             
                  [  OK  ]
[[email protected]
~]# netstat -lntup|grep 21 tcp        0      0 0.0.0.0:21             
    0.0.0.0:*                   LISTEN      3419/vsftpd
[[email protected]
~]# cd /var/ftp/pub
[[email protected]
pub]# ll total 0
[[email protected]
pub]# cp /etc/fstab . 到浏览器测试:
澳门金沙国际 1
澳门金沙国际 2  
####################################################################################################
1.确立虚拟FTP用户的帐号数据库文件
2.开立FTP根目录及虚拟用户映射的系统用户 3.建立援助虚拟用户的PAM认证文件
4.在vsftpd.conf文件中增进帮助配置 5.为独家虚拟用户建立单独的布置文件
6.重新加载vsftpd配置 7.用到虚拟FTP账户访问测试   进度实例:
1.确立虚拟FTP用户的帐号数据库文件  
建立虚拟用户的账户名、密码列表(通过本三步跳件的办法)
[[email protected]~]#
vi /etc/vsftpd/vusers.list

fedora

123

gentoo

456

[[email protected]~]#
cd /etc/vsftpd/

[[email protected]]#
db_load -T -t hash -f vusers.list   vusers.db

[[email protected]]#
file vusers.db

vusers.db: Berkeley DB (Hash, version 8, native byte-order)
[[email protected]]#
chmod 600/etc/vsftpd/vusers.* 2.开立FTP根目录及虚拟用户映射的系统用户
[[email protected]~]#
mkdir/var/ftproot
[[email protected]~]#
useradd -d /var/ftproot -s /sbin/nologin virtual
[[email protected]~]#
chmod 755 /var/ftproot/ 3.起家帮忙虚拟用户的PAM认证文件
[[email protected]~]#
vi /etc/pam.d/vsftpd.vu #%PAM-1.0 auth       required    
pam_userdb.so db=/etc/vsftpd/vusers account    required    
pam_userdb.so db=/etc/vsftpd/vusers 4.在vsftpd.conf文件中加上支持配置
[[email protected]~]#
vi  /etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES
write_enable=YES anon_umask=022 guest_enable=YES
guest_username=virtual pam_service_name=vsftpd.vu
anon_upload_enable=YES   #同意匿名账号有上传成效
anon_mkdir_write_enable=YES   #允许匿名账号创制文件成效
anon_other_write_enable=YES  #允许匿名账号具有删除.更名权限
dirmessage_enable=YES …… 5.为各自虚拟用户建立独立的配置文件
在vsftpd.conf文件中加上用户配置目录协理user_config_dir=/etc/vsftpd/vusers_dir
为用户fedora、gentoo建立单独的配备目录及文件 配置文件名与用户名同名
[[email protected]~]#
mkdir/etc/vsftpd/vusers_dir/
[[email protected]~]#
cd /etc/vsftpd/vusers_dir/
[[email protected]_dir]#
touch fedora
[[email protected]_dir]#
vi gentoo anon_upload_enable=YES anon_mkdir_write_enable=YES
6.重新加载vsftpd配置 service vsftpd reload 7.使用虚拟FTP账户访问测试
分别用fedora、gentoo用户登录FTP服务器进行下载、上传测试
fedora用户可以登录,并得以浏览、下载文件,但不只怕上传
gentoo用户能够登录,并得以浏览、下载文件,也能够上传
匿名用户或其余系统用户将不能够登录     •在使用
db_load命令时,“-f”选项用于钦定用户名/密码列表文件,“-T”选项允许非BerkeleyDB的应用程序使用从文本格式转换的DB数据文件,“-t
hash”选项钦命读取数据文件的为主办法。关于db_load命令的详尽表明可参阅/usr/share/doc/db4-utils-4.3.29/utility/db_load.html文件
•将帐号文件的权杖设置为600,能够使得进步安全性
•vsftpd虚拟用户须要有1个相应的系统用户帐号(该帐号无需安装密码及登录Shell),该用户帐号的宿主目录作为有着虚拟用户登录后的协同FTP根目录
•PAM配置文件(名称能够自动定义)首要用来为顺序提供用户认证控制,vsftpd服务使用的私下认可PAM配置文件为/etc/pam.d/vsftpd,能够参见该文件的格式建立新的PAM配置文件,用于虚拟用户认证控制
•在vsftpd.conf配置文件中添加guest_enable、guest_username配置项,将访问FTP服务的拥有虚拟用户对应到同一系统用户帐号virtual。并修改pam_service_name配置项,指向上一步建立的PAM配置文件/etc/pam.d/vsftpd.vu
•在vsftpd服务中,虚拟用户帐户暗许作为匿名用户处理以减低权限,由此相应的权限设置平常接纳以anon_伊始的配置项。例如,在安装虚拟用户所上传文件的私下认可权限掩码时应选取配备项anon_umask而不是local_umask
•此步骤实际上是可选的,假若不须要为各自用户安装独立的选项,则无需此步骤
•即使不须求为fedora用户添加额外权限设置,不过也要赤手空拳3个空配置文件
•假若必要禁止使用只怕仅同意一部分虚构用户帐号,同样能够选用/etc/vsftpd/user_list列表文件,具体方法请参考2.2.3小节中的例2.13。要求留意的是,在/etc/vsftpd/ftpusers文件中进入虚拟用户名,并不可能禁用对应的连串帐号
   
###########################出手实例##############################
[[email protected]
pub]# cd /etc/vsftpd/
[[email protected]
vsftpd]# vim vusers.list mike 123 john 456
[[email protected]
vsftpd]# db_load -T -t hash -f vusers.list vusers.db
[[email protected]
vsftpd]# file vusers.db vusers.db: Berkeley DB (Hash, version 9,
native byte-order)
[[email protected]
vsftpd]# chmod 600 ./vusers.*
[[email protected]
vsftpd]# useradd -d /var/ftproot -s /sbin/nologin virtual            
#-d 内定用户的家目录
[[email protected]
vsftpd]# chmod 755 /var/ftproot/
[[email protected]
vsftpd]# vi /etc/pam.d/vsftpd.vu auth required pam_userdb.so
db=/etc/vsftpd/vusers account required pam_userdb.so
db=/etc/vsftpd/vusers
[[email protected]er
vsftpd]# vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO
local_enable=YES write_enable=YES anon_umask=022 guest_enable=YES
guest_username=virtual pam_service_name=vsftpd.vu 测试:
[[email protected]
src]# yum install -y lftp

[[email protected]
src]# lftp
[email protected] 
     
Password: lftp
[email protected]:~>
mkdir test
mkdir ok, `test’ created lftp
[email protected]:/>
quit

[[email protected]
src]# cd /var/ftproot/

[[email protected]
ftproot]# ll
total 4 drwx—— 2 virtual virtual 4096 May 16
17:56 test     #test目录属于虚拟用户virtual 
 
####为不一致虚拟用户设置差别的权能#############
[[email protected]
ftproot]# cd /etc/vsftpd/

[[email protected]
vsftpd]# mkdir vusers_home

[[email protected]
vsftpd]# cd vusers_home/

[[email protected]centos上面设置vsftp,营造基于虚拟用户的vsftpd服务器。
vusers_home]# vi mike
anon_mkdir_write_enable=YES
anon_upload_enable=YES 测试:
[[email protected]
vusers_home]# /etc/init.d/vsftpd restart
Shutting down vsftpd:   
                                  [  OK  ]
Starting vsftpd for
vsftpd:                                [  OK  ]

[[email protected]
vusers_home]# lftp
[email protected] 
     
Password: lftp
[email protected]:~>
mkdir test1
mkdir ok, `test1′ created            lftp
[email protected]:/>
quit

[[email protected]
vusers_home]# ll
total 4 -rw-r–r– 1 root root 51 May 16
18:24 mike

[[email protected]
vusers_home]# ll /var/ftproot/
.bash_logout   .bash_profile 
.bashrc        test/          test1/

[[email protected]
vusers_home]# ll /var/ftproot/
total 8 drwx—— 2 virtual
virtual 4096 May 16 17:56 test
drwx—— 2 virtual virtual 4096 May
16 18:24 test1

[[email protected]
vusers_home]# lftp
[email protected] 
     
Password: lftp
[email protected]:~>
ls         
ls: Login failed: 530 Login incorrect.          lftp
[email protected]:~>
mkdir test3
mkdir: Login failed: 530 Login incorrect.           
lftp
[email protected]:~>
quit

[[email protected]
vusers_home]# cp /etc/vsftpd/
ftpusers               
vsftpd_conf_migrate.sh  vusers.list
user_list             
 vusers.db               
vsftpd.conf             vusers_home/     
     

[[email protected]
vusers_home]# cp /etc/vsftpd/vusers_home/mike
/etc/vsftpd/vusers_home/john

[[email protected]
vusers_home]# /etc/init.d/vsftpd restart
Shutting down vsftpd:   
                                  [  OK  ]
Starting vsftpd for
vsftpd:                                [  OK  ]

[[email protected]
vusers_home]# lftp
[email protected]

Password: lftp
[email protected]127.0.0.1:~>
mkdir test4
mkdir ok, `test4′ created lftp
[email protected]:/>
quit

[[email protected]
vusers_home]# ll /var/ftproot/
total 12 drwx—— 2 virtual
virtual 4096 May 16 17:56 test
drwx—— 2 virtual virtual 4096 May
16 18:24 test1
drwx—— 2 virtual virtual 4096 May 16 18:29
test4
  继承测试:
[[email protected]
vusers_home]# vi /etc/vsftpd/vusers_home/john

anon_mkdir_write_enable=YES anon_upload_enable=YES
write_enable=YES virtual_use_local_privs=YES      
当有write_enable=YES;virtual_use_local_privs=YES
时,虚拟用户拥有写权限(上传,下载,删除,重命名)

[[email protected]
vusers_home]# /etc/init.d/vsftpd restart
Shutting down vsftpd:   
                                  [  OK  ]
Starting vsftpd for
vsftpd:                                [  OK  ]

[[email protected]
vusers_home]# !l
lftp
[email protected]

Password: lftp
[email protected]:~>
ls         
drwx——    2 501      501          4096 May 16 09:56
test
drwx——    2 501      501          4096 May 16 10:24 test1
drwx——    2 501      501          4096 May 16 10:29 test4
drwx——    2 501      501          4096 May 16 10:34 test5 lftp
[email protected]:~>
rmdir test5        #删除
rmdir ok, `test5′ removed lftp
[email protected]:~>
ls
drwx——    2 501      501          4096 May 16 09:56 test
drwx——    2 501      501          4096 May 16 10:24 test1
drwx——    2 501      501          4096 May 16 10:29 test4 lftp
[email protected]:~>
cd test
test/  test1/  test4/ lftp
[email protected]:~>
cd test4
lftp
[email protected]:~/test4>
put /etc/fstab    #上传
855 bytes transferred    lftp
[email protected]:~/test4>
ls
-rw-r–r–    1 501      501           855 May 16 10:43 fstab
lftp
[email protected]:~/test4>
get fstab -o /tmp/    #下载
855 bytes transferred lftp
[email protected]:~/test4>
mv fstab fftab     #重命名
rename successful lftp
[email protected]:~/test4>
ls
-rw-r–r–    1 501      501           855 May 16 10:46 fftab 
     
############澳门金沙国际 ,备注######################
备注:virtual_use_local_privs参数
当virtual_use_local_privs=YES时,虚拟用户和本地用户有同一的权杖;
当virtual_use_local_privs=NO时,虚拟用户和匿名用户有平等的权位,暗中认可是NO。

当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户拥有写权限(上传、下载、删除、重命名)。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES时,虚拟用户无法浏览目录,只可以上传文件,无别的权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO时,虚拟用户只好下载文件,无别的权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES时,虚拟用户只可以上传和下载文件,无任何权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES时,虚拟用户只可以下载文件和创制文件夹,无别的权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_other_write_enable=YES时,虚拟用户只可以下载、删除和重命名文件,无其余权限。
       
 #######################################用mysql+pam+vsftpd###############################
  ① 、安装所须求程序   1、安装mysql和pam_mysql  
# yum -y install  mysql-server mysql-devel pam_mysql
注意:pam_mysql由epel源提供。(yum  install -y epel-release)
② 、创造虚拟用户账号   1.准备数据库及相关表  
先是请确认保障mysql服务一度平常运行。而后,按供给树立存款和储蓄虚拟用户的数据库即可,那里将其创立为vsftpd数据库。
  mysql> create database vsftpd;   mysql> grant
select on vsftpd.* to
[email protected]
identified by ‘redhat’;
mysql> grant select on vsftpd.* to
[email protected]
identified by ‘redhat’;
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)  );
  二 、添加测试的杜撰用户  
根据须要添加所需求的用户,必要验证的是,那里将其密码为了安全起见应该使用PASSWO奥迪Q3D函数加密后存款和储蓄。
  mysql> insert into users(name,password)
values(‘fush1’,password(‘asdfg’));
mysql> insert into
users(name,password) values(‘fush2’,password(‘asdfg’));

三、配置vsftpd   1.建立pam认证所需文件   #vi
/etc/pam.d/vsftpd.mysql
累加如下两行 auth required
/lib64/security/pam_mysql.so user=vsftpd passwd=redhat host=localhost
db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

account required /lib64/security/pam_mysql.so user=vsftpd
passwd=redhat host=localhost db=vsftpd table=users usercolumn=name
passwdcolumn=password crypt=2
  ##请检查
ll 
/lib64/security/pam_mysql.so  
该公文是还是不是留存,不设有查看pam_mysql 是还是不是安装成功!**    小心:由于mysql的设置格局分化,pam_mysql.so基于unix
sock连接mysql服务器时只怕会出标题,此时,提议授权二个可长途连接的mysql并走访vsftpd数据库的用户。  2.改动vsftpd的配置文件,使其适应mysql认证  树立虚拟用户映射的种类用户及相应的目录 # useradd -s /sbin/nologin
-d /var/ftproot virtual      #virtual 为虚拟用户映射的种类用户 #
chmod go+rx /var/ftproot请确认保证/etc/vsftpd.conf中已经启用了以下选项[[email protected]
vusers_home]# vi /etc/vsftpd/vsftpd.conf anonymous_enable=NOlocal_enable=YES write_enable=YES anon_upload_enable=NOanon_mkdir_write_enable=NO chroot_local_user=YES后来添加 guest_enable=YES guest_username=virtual     #virtual 为虚构用户映射的类别用户,useradd -s /sbin/nologin -d
/var/ftproot virtual  中所创制的并确保pam_service_name选项的值如下所示pam_service_name=vsftpd.mysql 四、启动vsftpd服务   #
service vsftpd start # chkconfig vsftpd on  翻看端口开启状态   # netstat -tnlp |grep :21 tcp       
0      0 0.0.0.0:21              0.0.0.0:*               LISTEN     
23286/vsftpd 测试: [email protected]
~]# lftp
[email protected]Password: lftp
[email protected]:~>
ls      drwx——    2 501      501          4096 May 16 10:47
test drwx——    2 501      501          4096 May 16 10:24 test1drwx——    2 501      501          4096 May 16 10:46 test4 lftp
[email protected]:/>
mkdir test3 mkdir: Access failed: 550 Permission denied. (test3)  
 #因为全局的anon_mkdir_write_enable=YES权限注释掉了,所以并未权力lftp
[email protected]:/>
quit  五 、配置虚拟用户拥有不一致的拜会权限 # vim vsftpd.conf增进如下选项 user_config_dir=/etc/vsftpd/vusers_home  [[email protected]
vusers_home]#touch fush1[[email protected]
vusers_home]#vim fush1 write_enable=YESvirtual_use_local_privs=YES          
 此时fush1将装有富有权限(下载,上传,重命名,创设,删除)  测试如下:[[email protected]
vusers_home]# /etc/init.d/vsftpd restart Shutting down vsftpd:   
                                  [  OK  ] Starting vsftpd for
vsftpd:                                [  OK  ][[email protected]
vusers_home]# lftp
[email protected]Password: lftp
[email protected]:~>
ls      drwx——    2 501      501          4096 May 16 10:47
test drwx——    2 501      501          4096 May 16 10:24 test1drwx——    2 501      501          4096 May 16 10:46 test5 lftp
[email protected]:~>
mkdir test4 mkdir ok, `test4′ created lftp
[email protected]:~>
cd test4 lftp
[email protected]:~/test4>
put /etc/fstab 855 bytes transferred                             lftp
[email protected]:~/test4>
ls -rw-r–r–    1 501      501           855 May 18 06:29 fstablftp
[email protected]:~/test4>
get /etc/fstab -o /usr/local/src/ 855 bytes transferred lftp
[email protected]:~/test4>
cd .. lftp
[email protected]:~>
ls drwx——    2 501      501          4096 May 16 10:47 testdrwx——    2 501      501          4096 May 16 10:24 test1drwxr-xr-x    2 501      501          4096 May 18 06:29 test4drwx——    2 501      501          4096 May 16 10:46 test5 lftp
[email protected]:~>
mv test5 test2 rename successful lftp
[email protected]:~>
ls drwx——    2 501      501          4096 May 16 10:47 testdrwx——    2 501      501          4096 May 16 10:24 test1drwx——    2 501      501          4096 May 16 10:46 test2drwxr-xr-x    2 501      501          4096 May 18 06:29 test4 lftp
[email protected]:~>
rm -rf test2 rm ok, 2 files removed lftp
[email protected]:~>
ls drwx——    2 501      501          4096 May 16 10:47 testdrwx——    2 501      501          4096 May 16 10:24 test1drwxr-xr-x    2 501      501          4096 May 18 06:29 test4  
 
 **

安装:[[email protected]
~]# yum install -y
vsftpd[[email protected]
~]# rpm -ql vsftpd/etc/logrotate.d/vsftpd/etc/pam.d/v…

centos上面设置vsftp

[root@server ~]# yum install -y vsftpd

[root@server ~]# yum install -y vsftpd

 

[root@server ~]# rpm -ql vsftpd

[root@server ~]# rpm -ql vsftpd

1:安装 vsftp

/etc/logrotate.d/vsftpd

/etc/logrotate.d/vsftpd

应用chkconfig –list来查看是不是具有vsftpd服务; 

/etc/pam.d/vsftpd

/etc/pam.d/vsftpd

使用yum命令直接设置:yum -y install vsftpd 

/etc/rc.d/init.d/vsftpd

/etc/rc.d/init.d/vsftpd

下一场为它创设日志文件:touch /var/log/vsftpd.log

/etc/vsftpd

/etc/vsftpd

2: 运营与布置自运转 

/etc/vsftpd/ftpusers

/etc/vsftpd/ftpusers

动用chkconfig –list来查阅vsftpd服务运维项情状; 

/etc/vsftpd/user_list

/etc/vsftpd/user_list

只要看到的是之类呈现的结果: 

/etc/vsftpd/vsftpd.conf

/etc/vsftpd/vsftpd.conf

vsftpd          0:off   1:off   2:off   3:off   4:off   5:off   6:off 

/etc/vsftpd/vsftpd_conf_migrate.sh

/etc/vsftpd/vsftpd_conf_migrate.sh

劳务全体都以off的,注意那里的off表示的是服务器运转的时候是或不是会自运维服务,大家应用如下命令来安插其自运行: 

/usr/sbin/vsftpd 

/usr/sbin/vsftpd 

chkconfig –level 2345 vsftpd on #2345一见照旧的是地方对应的0-6项 

…….

…….

 

[root@server ~]# /etc/init.d/vsftpd start

[root@server ~]# /etc/init.d/vsftpd start

翻开与管理ftp服务: 

Starting vsftpd for vsftpd:                                [  OK  ]

Starting vsftpd for vsftpd:                                [  OK  ]

启动ftp服务:service vsftpd start 

[root@server ~]# netstat -lntup|grep 21

[root@server ~]# netstat -lntup|grep 21

查阅ftp服务意况:service vsftpd status 

tcp        0      0 0.0.0.0:21                  0.0.0.0:*             
     LISTEN      3419/vsftpd

tcp        0      0 0.0.0.0:21                  0.0.0.0:*             
     LISTEN      3419/vsftpd

重启ftp服务:service vsftpd restart 

[root@server ~]# cd /var/ftp/pub

[root@server ~]# cd /var/ftp/pub

关闭ftp服务:service vsftpd stop

[root@server pub]# ll

[root@server pub]# ll

  1. 配置vsftp服务 

total 0

total 0

编辑/etc/vsftpd/vsftpd.conf文件,配置vsftp服务: 

[root@server pub]# cp /etc/fstab .

[root@server pub]# cp /etc/fstab .

#vi /etc/vsftpd/vsftpd.conf 

到浏览器测试:

到浏览器测试:

3.1 编辑修改如下项目: 

澳门金沙国际 3

澳门金沙国际 4

anonymous_enable=NO #设定不允许匿名访问 

澳门金沙国际 5

澳门金沙国际 6

local_enable=YES
#设定本地用户能够访问。注:如选拔虚拟宿主用户,在该项目设定为NO的场所下全数虚拟用户将不能访问。 

 

 

chroot_list_enable=YES #使用户无法离开主目录 

####################################################################################################

####################################################################################################

xferlog_file=/var/log/vsftpd.log
#设定vsftpd的劳务日志保存路径。注意,该文件默许不设有。必须求手动touch出来 

1.确立虚拟FTP用户的帐号数据库文件

1.赤手空拳虚拟FTP用户的帐号数据库文件

ascii_upload_enable=YES #同意利用ASCII格局上传 

2.开立FTP根目录及虚拟用户映射的系统用户

2.创办FTP根目录及虚拟用户映射的连串用户

ascii_download_enable=YES #设定援救ASCII形式的上传和下载功用。 

3.起家援助虚拟用户的PAM认证文件

3.成立援助虚拟用户的PAM认证文件

pam_service_name=vsftpd
#PAM认证文件名。PAM将基于/etc/pam.d/vsftpd举行认证 

4.在vsftpd.conf文件中丰盛辅助配置

4.在vsftpd.conf文件中增进帮衬配置

 

5.为各自虚拟用户建立独立的安排文件

5.为各自虚拟用户建立单独的布置文件

以下那一个是关于Vsftpd虚拟用户援助的重庆大学CentOS
FTP服务配置项目。暗中认可vsftpd.conf中不分包那么些设定项目,须要本身手动添加奥迪Q3HEL/CentOS
FTP服务配置。 

6.重新加载vsftpd配置

6.重复加载vsftpd配置

guest_enable=YES #设定启用虚拟用户作用。 

7.施用虚拟FTP账户访问测试

7.行使虚拟FTP账户访问测试

guest_username=ftp
#钦命虚拟用户的宿主用户。-RAV4HEL/CentOS中早就有内置的ftp用户了 

 

 

user_config_dir=/etc/vsftpd/vuser_conf
#设定虚拟用户个人vsftp的EscortHEL/CentOS
FTP服务文件存放路径。存放虚拟用户性格的CentOS
FTP服务文件(配置文件名=虚拟用户名)

经超过实际例:

经超过实际例:

3.2 创立chroot list,将ftp用户进入在那之中: 

1.手无寸铁虚拟FTP用户的帐号数据库文件

1.确立虚拟FTP用户的帐号数据库文件

touch /etc/vsftpd/chroot_list 

  建立虚拟用户的账户名、密码列表(通过地面文件的格局)

  建立虚拟用户的账户名、密码列表(通过地面文件的点子)

echo ftp >> /etc/vsftpd/chroot_list 

[root@filesvr~]# vi /etc/vsftpd/vusers.list

[root@filesvr~]# vi /etc/vsftpd/vusers.list

 

fedora

fedora

3.3 进行求证: 

123

123

首先,安装Beck雷DB工具,很几个人找不到db_load的难点固然没有安装那么些包。 

gentoo

gentoo

yum install db4 db4-utils 

456

456

然后,创设用户密码文本/etc/vsftpd/vuser_passwd.txt
,注意奇行是用户名,偶行是密码 

[root@filesvr~]# cd /etc/vsftpd/

[root@filesvr~]# cd /etc/vsftpd/

test1

[root@filesvrvsftpd]# db_load -T -t hash -f vusers.list   vusers.db

[root@filesvrvsftpd]# db_load -T -t hash -f vusers.list   vusers.db

pwd1

[root@filesvrvsftpd]# file vusers.db

[root@filesvrvsftpd]# file vusers.db

随后,.生成虚拟用户认证的db文件 

vusers.db: Berkeley DB (Hash, version 8, native byte-order)

vusers.db: Berkeley DB (Hash, version 8, native byte-order)

db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt
/etc/vsftpd/vuser_passwd.db 

[root@filesvrvsftpd]# chmod 600/etc/vsftpd/vusers.*

[root@filesvrvsftpd]# chmod 600/etc/vsftpd/vusers.*

继而,编辑认证文件/etc/pam.d/vsftpd,全体申明掉原来语句 

2.创办FTP根目录及虚拟用户映射的系统用户

2.创立FTP根目录及虚拟用户映射的体系用户

再充实以下两句 

[root@filesvr~]# mkdir/var/ftproot

[root@filesvr~]# mkdir/var/ftproot

auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd 

[root@filesvr~]# useradd -d /var/ftproot -s /sbin/nologin virtual

[root@filesvr~]# useradd -d /var/ftproot -s /sbin/nologin virtual

account required pam_userdb.so db=/etc/vsftpd/vuser_passwd 

[root@filesvr~]# chmod 755 /var/ftproot/

[root@filesvr~]# chmod 755 /var/ftproot/

末尾,创造虚拟用户个性XC90HEL/CentOS FTP服务文件 

3.起家支持虚拟用户的PAM认证文件

3.建立协理虚拟用户的PAM认证文件

mkdir /etc/vsftpd/vuser_conf/ 

[root@filesvr~]# vi /etc/pam.d/vsftpd.vu

[root@filesvr~]# vi /etc/pam.d/vsftpd.vu

vi /etc/vsftpd/vuser_conf/test1

#%PAM-1.0

#%PAM-1.0

故事情节如下: 

auth       required     pam_userdb.so db=/etc/vsftpd/vusers

auth       required     pam_userdb.so db=/etc/vsftpd/vusers

local_root=/opt/var/ftp    #虚构用户的根目录(遵照实际修改) 

account    required     pam_userdb.so db=/etc/vsftpd/vusers

account    required     pam_userdb.so db=/etc/vsftpd/vusers

write_enable=YES  #可写 

4.在vsftpd.conf文件中加上帮衬配置

4.在vsftpd.conf文件中拉长支持配置

anon_umask=022  #掩码 

[root@filesvr~]# vi  /etc/vsftpd/vsftpd.conf

[root@filesvr~]# vi  /etc/vsftpd/vsftpd.conf

anon_world_readable_only=NO 

anonymous_enable=NO

anonymous_enable=NO

anon_upload_enable=YES 

local_enable=YES

local_enable=YES

anon_mkdir_write_enable=YES 

write_enable=YES

write_enable=YES

anon_other_write_enable=YES 

anon_umask=022

anon_umask=022

 

guest_enable=YES

guest_enable=YES

  1. 为目录附权限同仁一视运行vsftp服务: 

guest_username=virtual

guest_username=virtual

mkdir /opt/var/ftp

pam_service_name=vsftpd.vu

pam_service_name=vsftpd.vu

chmod 777 /opt/var/ftp   ********  这些很要紧
 ,假诺不安装,有大概报530荒唐,test1用户上传的根目录正是其一文件

anon_upload_enable=YES   #允许匿名账号有上传成效

anon_upload_enable=YES   #允许匿名账号有上传功效

service vsftpd restart

anon_mkdir_write_enable=YES   #允许匿名账号创立文件功用

anon_mkdir_write_enable=YES   #允许匿名账号创制文件功用

  1. 周边难点: 

anon_other_write_enable=YES  #允许匿名账号具有删除.更名权限

anon_other_write_enable=YES  #允许匿名账号具有删除.更名权限

5.1 553 Could not create file 

dirmessage_enable=YES

dirmessage_enable=YES

貌似都以SELinux的题材,设置SELinux的一个值,重启服务器即可。 

……

……

setsebool -P ftpd_disable_trans 1 

5.为独家虚拟用户建立独立的配备文件

5.为独家虚拟用户建立单独的布署文件

service vsftpd restart 

在vsftpd.conf文件中丰裕用户配置目录协助

在vsftpd.conf文件中增进用户配置目录援救

 

user_config_dir=/etc/vsftpd/vusers_dir

user_config_dir=/etc/vsftpd/vusers_dir

也有恐怕是地点的古金色字,设置有毛病

为用户fedora、gentoo建立单独的铺排目录及文件

为用户fedora、gentoo建立单独的配备目录及文件

5.2 500 OOPS: bad bool value in config file for: write_enable 

计划文件名与用户名同名

配置文件名与用户名同名

在意你的CentOS
FTP服务文件中确认保证每一行最终没有任何空格,一般出错正是在剩下的空格上。 

[root@filesvr~]# mkdir/etc/vsftpd/vusers_dir/

[root@filesvr~]# mkdir/etc/vsftpd/vusers_dir/

 

[root@filesvr~]# cd /etc/vsftpd/vusers_dir/

[root@filesvr~]# cd /etc/vsftpd/vusers_dir/

5.3 虚拟用户上传后私下认可权限为:600,用户不能下载文件 

[root@filesvrvusers_dir]# touch fedora

[root@filesvrvusers_dir]# touch fedora

在配备文件中增加或修改anon_umask项的值。如anon_umask=022或000

[root@filesvrvusers_dir]# vi gentoo

[root@filesvrvusers_dir]# vi gentoo

 

anon_upload_enable=YES

anon_upload_enable=YES

这么在windows的上就可以使用ftp的客户端去老是了,

anon_mkdir_write_enable=YES

anon_mkdir_write_enable=YES

 

6.再次加载vsftpd配置

6.重新加载vsftpd配置

  1. virtual_use_local_privs参数

service vsftpd reload

service vsftpd reload

当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;

7.应用虚拟FTP账户访问测试

7.选用虚拟FTP账户访问测试

当virtual_use_local_privs=NO时,虚拟用户和匿名用户有雷同的权柄,暗许是NO。

各自用fedora、gentoo用户登录FTP服务器实行下载、上传测试

分别用fedora、gentoo用户登录FTP服务器实行下载、上传测试

 

fedora用户可以登录,并能够浏览、下载文件,但无能为力上传

fedora用户能够登录,并得以浏览、下载文件,但无法上传

当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户全体写权限(上传、下载、删除、重命名)。

gentoo用户能够登录,并得以浏览、下载文件,也足以上传

gentoo用户能够登录,并能够浏览、下载文件,也得以上传

 

匿名用户或别的系统用户将不可能登录

匿名用户或别的系统用户将不能够登录

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,

 

 

anon_upload_enable=YES时,虚拟用户不能够浏览目录,只可以上传文件,无其余权限。

 

 

 

•在使用
db_load命令时,“-f”选项用于钦命用户名/密码列表文件,“-T”选项允许非伯克利DB的应用程序使用从文本格式转换的DB数据文件,“-t
hash”选项钦点读取数据文件的主导办法。关于db_load命令的详细表达可参阅/usr/share/doc/db4-utils-4.3.29/utility/db_load.html文件

•在使用
db_load命令时,“-f”选项用于钦命用户名/密码列表文件,“-T”选项允许非BerkeleyDB的应用程序使用从文本格式转换的DB数据文件,“-t
hash”选项钦点读取数据文件的主干方法。关于db_load命令的事无巨细表明可参阅/usr/share/doc/db4-utils-4.3.29/utility/db_load.html文件

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

•将帐号文件的权力设置为600,能够有效增加安全性

•将帐号文件的权位设置为600,可以使得升高安全性

anon_upload_enable=NO时,虚拟用户只可以下载文件,无其余权限。

•vsftpd虚拟用户需求有一个应和的系统用户帐号(该帐号无需安装密码及登录Shell),该用户帐号的宿主目录作为具有虚拟用户登录后的二头FTP根目录

•vsftpd虚拟用户需求有三个应和的体系用户帐号(该帐号无需安装密码及登录Shell),该用户帐号的宿主目录作为持有虚拟用户登录后的协同FTP根目录

 

•PAM配置文件(名称可以自动定义)主要用来为顺序提供用户认证控制,vsftpd服务应用的私下认可PAM配置文件为/etc/pam.d/vsftpd,可以参见该文件的格式建立新的PAM配置文件,用于虚拟用户认证控制

•PAM配置文件(名称能够自动定义)首要用来为顺序提供用户认证控制,vsftpd服务使用的私下认可PAM配置文件为/etc/pam.d/vsftpd,能够参见该公文的格式建立新的PAM配置文件,用于虚拟用户认证控制

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

•在vsftpd.conf配置文件中添加guest_enable、guest_username配置项,将访问FTP服务的富有虚拟用户对应到同一系统用户帐号virtual。并修改pam_service_name配置项,指向上一步建立的PAM配置文件/etc/pam.d/vsftpd.vu

•在vsftpd.conf配置文件中添加guest_enable、guest_username配置项,将访问FTP服务的富有虚拟用户对应到同一系统用户帐号virtual。并修改pam_service_name配置项,指向上一步建立的PAM配置文件/etc/pam.d/vsftpd.vu

anon_upload_enable=YES时,虚拟用户只好上传和下载文件,无任何权限。

•在vsftpd服务中,虚拟用户帐户私下认可作为匿名用户处理以减低权限,由此相应的权位设置日常使用以anon_开班的布局项。例如,在设置虚拟用户所上传文件的暗中认可权限掩码时应采用配备项anon_umask而不是local_umask

•在vsftpd服务中,虚拟用户帐户默许作为匿名用户处理以减低权限,由此相应的权位设置平时选择以anon_发端的配备项。例如,在装置虚拟用户所上传文件的暗中认可权限掩码时应选拔配备项anon_umask而不是local_umask

 

•此步骤实际上是可选的,假如不必要为独家用户设置单独的选项,则无需此步骤

•此步骤实际上是可选的,如若不须要为独家用户安装单独的选项,则无需此步骤

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

•即使不需求为fedora用户添加额外权限设置,然则也要树立三个空配置文件

•即使不须求为fedora用户添加额外权限设置,然则也要树立一个空配置文件

anon_mkdir_write_enable=YES时,虚拟用户只可以下载文件和创造文件夹,无别的权限。

•要是急需禁止使用或然仅同意有的虚构用户帐号,同样能够动用/etc/vsftpd/user_list列表文件,具体方法请参考2.2.3小节中的例2.13。须求专注的是,在/etc/vsftpd/ftpusers文件中参与虚拟用户名,并无法禁止使用对应的体系帐号

•要是急需禁用恐怕仅允许一部分虚构用户帐号,同样能够选拔/etc/vsftpd/user_list列表文件,具体方法请参考2.2.3小节中的例2.13。需求注意的是,在/etc/vsftpd/ftpusers文件中出席虚拟用户名,并无法禁用对应的系统帐号

 

 

 

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

 

 

anon_other_write_enable=YES时,虚拟用户只好下载、删除和重命名文件,无别的权限。

###########################出手实例##############################

###########################伊始实例##############################

 

[root@server pub]# cd /etc/vsftpd/

[root@server pub]# cd /etc/vsftpd/

1:安装 vsftp 使用chkconfig
–list来查看是或不是具有vsftpd服务; 使用yum命令直接设置:yum -y install
vsftpd 然后为它创设日志文件…

[root@server vsftpd]# vim vusers.list

[root@server vsftpd]# vim vusers.list

mike

mike

123

123

john

john

456

456

[root@server vsftpd]# db_load -T -t hash -f vusers.list vusers.db

[root@server vsftpd]# db_load -T -t hash -f vusers.list vusers.db

[root@server vsftpd]# file vusers.db

[root@server vsftpd]# file vusers.db

vusers.db: Berkeley DB (Hash, version 9, native byte-order)

vusers.db: Berkeley DB (Hash, version 9, native byte-order)

[root@server vsftpd]# chmod 600 ./vusers.*

[root@server vsftpd]# chmod 600 ./vusers.*

[root@server vsftpd]# useradd -d /var/ftproot -s /sbin/nologin
virtual             #-d 钦定用户的家目录

[root@server vsftpd]# useradd -d /var/ftproot -s /sbin/nologin
virtual             #-d 钦命用户的家目录

[root@server vsftpd]# chmod 755 /var/ftproot/

[root@server vsftpd]# chmod 755 /var/ftproot/

[root@server vsftpd]# vi /etc/pam.d/vsftpd.vu

[root@server vsftpd]# vi /etc/pam.d/vsftpd.vu

auth required pam_userdb.so db=/etc/vsftpd/vusers

auth required pam_userdb.so db=/etc/vsftpd/vusers

account required pam_userdb.so db=/etc/vsftpd/vusers

account required pam_userdb.so db=/etc/vsftpd/vusers

[root@server vsftpd]# vim /etc/vsftpd/vsftpd.conf

[root@server vsftpd]# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

anonymous_enable=NO

local_enable=YES

local_enable=YES

write_enable=YES

write_enable=YES

anon_umask=022

anon_umask=022

guest_enable=YES

guest_enable=YES

guest_username=virtual

guest_username=virtual

pam_service_name=vsftpd.vu

pam_service_name=vsftpd.vu

测试:

测试:

[root@server src]# yum install -y lftp

[root@server src]# yum install -y lftp

[root@server src]# lftp mike@127.0.0.1       

[root@server src]# lftp mike@127.0.0.1       

Password:

Password:

lftp mike@127.0.0.1:~> mkdir test

lftp mike@127.0.0.1:~> mkdir test

mkdir ok, `test’ created

mkdir ok, `test’ created

lftp mike@127.0.0.1:/> quit

lftp mike@127.0.0.1:/> quit

[root@server src]# cd /var/ftproot/

[root@server src]# cd /var/ftproot/

[root@server ftproot]# ll

[root@server ftproot]# ll

total 4

total 4

drwx—— 2 virtual virtual 4096 May 16 17:56 test    
#test目录属于虚拟用户virtual 

drwx—— 2 virtual virtual 4096 May 16 17:56 test    
#test目录属于虚拟用户virtual 

 

 

####为不相同虚拟用户设置不一致的权力#############

####为不一致虚拟用户安装不一样的权能#############

[root@server ftproot]# cd /etc/vsftpd/

[root@server ftproot]# cd /etc/vsftpd/

[root@server vsftpd]# mkdir vusers_home

[root@server vsftpd]# mkdir vusers_home

[root@server vsftpd]# cd vusers_home/

[root@server vsftpd]# cd vusers_home/

[root@server vusers_home]# vi mike

[root@server vusers_home]# vi mike

anon_mkdir_write_enable=YES

anon_mkdir_write_enable=YES

anon_upload_enable=YES

anon_upload_enable=YES

测试:

测试:

[root@server vusers_home]# /etc/init.d/vsftpd restart

[root@server vusers_home]# /etc/init.d/vsftpd restart

Shutting down vsftpd:                                      [  OK 
]

Shutting down vsftpd:                                      [  OK 
]

Starting vsftpd for vsftpd:                                [  OK 
]

Starting vsftpd for vsftpd:                                [  OK 
]

[root@server vusers_home]# lftp mike@127.0.0.1       

[root@server vusers_home]# lftp mike@127.0.0.1       

Password:

Password:

lftp mike@127.0.0.1:~> mkdir test1

lftp mike@127.0.0.1:~> mkdir test1

mkdir ok, `test1′ created           

mkdir ok, `test1′ created           

lftp mike@127.0.0.1:/> quit

lftp mike@127.0.0.1:/> quit

[root@server vusers_home]# ll

[root@server vusers_home]# ll

total 4

total 4

-rw-r–r– 1 root root 51 May 16 18:24 mike

-rw-r–r– 1 root root 51 May 16 18:24 mike

[root@server vusers_home]# ll /var/ftproot/

[root@server vusers_home]# ll /var/ftproot/

.bash_logout   .bash_profile  .bashrc        test/          test1/

.bash_logout   .bash_profile  .bashrc        test/          test1/

[root@server vusers_home]# ll /var/ftproot/

[root@server vusers_home]# ll /var/ftproot/

total 8

total 8

drwx—— 2 virtual virtual 4096 May 16 17:56 test

drwx—— 2 virtual virtual 4096 May 16 17:56 test

drwx—— 2 virtual virtual 4096 May 16 18:24 test1

drwx—— 2 virtual virtual 4096 May 16 18:24 test1

[root@server vusers_home]# lftp john@127.0.0.1       

[root@server vusers_home]# lftp john@127.0.0.1       

Password:

Password:

lftp john@127.0.0.1:~> ls         

lftp john@127.0.0.1:~> ls         

ls: Login failed: 530 Login incorrect.         

ls: Login failed: 530 Login incorrect.         

lftp john@127.0.0.1:~> mkdir test3

lftp john@127.0.0.1:~> mkdir test3

mkdir: Login failed: 530 Login incorrect.           

mkdir: Login failed: 530 Login incorrect.           

lftp john@127.0.0.1:~> quit

lftp john@127.0.0.1:~> quit

[root@server vusers_home]# cp /etc/vsftpd/

[root@server vusers_home]# cp /etc/vsftpd/

ftpusers                vsftpd_conf_migrate.sh  vusers.list

ftpusers                vsftpd_conf_migrate.sh  vusers.list

user_list               vusers.db               

user_list               vusers.db               

vsftpd.conf             vusers_home/           

vsftpd.conf             vusers_home/           

[root@server vusers_home]# cp /etc/vsftpd/vusers_home/mike
/etc/vsftpd/vusers_home/john

[root@server vusers_home]# cp /etc/vsftpd/vusers_home/mike
/etc/vsftpd/vusers_home/john

[root@server vusers_home]# /etc/init.d/vsftpd restart

[root@server vusers_home]# /etc/init.d/vsftpd restart

Shutting down vsftpd:                                      [  OK 
]

Shutting down vsftpd:                                      [  OK 
]

Starting vsftpd for vsftpd:                                [  OK 
]

Starting vsftpd for vsftpd:                                [  OK 
]

[root@server vusers_home]# lftp john@127.0.0.1

[root@server vusers_home]# lftp john@127.0.0.1

Password:

Password:

lftp john@127.0.0.1:~> mkdir test4

lftp john@127.0.0.1:~> mkdir test4

mkdir ok, `test4′ created

mkdir ok, `test4′ created

lftp john@127.0.0.1:/> quit

lftp john@127.0.0.1:/> quit

[root@server vusers_home]# ll /var/ftproot/

[root@server vusers_home]# ll /var/ftproot/

total 12

total 12

drwx—— 2 virtual virtual 4096 May 16 17:56 test

drwx—— 2 virtual virtual 4096 May 16 17:56 test

drwx—— 2 virtual virtual 4096 May 16 18:24 test1

drwx—— 2 virtual virtual 4096 May 16 18:24 test1

drwx—— 2 virtual virtual 4096 May 16 18:29 test4

drwx—— 2 virtual virtual 4096 May 16 18:29 test4

 

 

继续测试:

一连测试:

[root@server vusers_home]# vi /etc/vsftpd/vusers_home/john

[root@server vusers_home]# vi /etc/vsftpd/vusers_home/john

anon_mkdir_write_enable=YES

anon_mkdir_write_enable=YES

anon_upload_enable=YES

anon_upload_enable=YES

write_enable=YES

write_enable=YES

virtual_use_local_privs=YES      
当有write_enable=YES;virtual_use_local_privs=YES
时,虚拟用户拥有写权限(上传,下载,删除,重命名)

virtual_use_local_privs=YES      
当有write_enable=YES;virtual_use_local_privs=YES
时,虚拟用户拥有写权限(上传,下载,删除,重命名)

[root@server vusers_home]# /etc/init.d/vsftpd restart

[root@server vusers_home]# /etc/init.d/vsftpd restart

Shutting down vsftpd:                                      [  OK 
]

Shutting down vsftpd:                                      [  OK 
]

Starting vsftpd for vsftpd:                                [  OK 
]

Starting vsftpd for vsftpd:                                [  OK 
]

[root@server vusers_home]# !l

[root@server vusers_home]# !l

lftp john@127.0.0.1

lftp john@127.0.0.1

Password:

Password:

lftp john@127.0.0.1:~> ls         

lftp john@127.0.0.1:~> ls         

drwx——    2 501      501          4096 May 16 09:56 test

drwx——    2 501      501          4096 May 16 09:56 test

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:29 test4

drwx——    2 501      501          4096 May 16 10:29 test4

drwx——    2 501      501          4096 May 16 10:34 test5

drwx——    2 501      501          4096 May 16 10:34 test5

lftp john@127.0.0.1:~> rmdir test5        #删除

lftp john@127.0.0.1:~> rmdir test5        #删除

rmdir ok, `test5′ removed

rmdir ok, `test5′ removed

lftp john@127.0.0.1:~> ls

lftp john@127.0.0.1:~> ls

drwx——    2 501      501          4096 May 16 09:56 test

drwx——    2 501      501          4096 May 16 09:56 test

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:29 test4

drwx——    2 501      501          4096 May 16 10:29 test4

lftp john@127.0.0.1:~> cd test

lftp john@127.0.0.1:~> cd test

test/  test1/  test4/

test/  test1/  test4/

lftp john@127.0.0.1:~> cd test4

lftp john@127.0.0.1:~> cd test4

lftp john@127.0.0.1:~/test4> put /etc/fstab    #上传

lftp john@127.0.0.1:~/test4> put /etc/fstab    #上传

855 bytes transferred   

855 bytes transferred   

lftp john@127.0.0.1:~/test4> ls

lftp john@127.0.0.1:~/test4> ls

-rw-r–r–    1 501      501           855 May 16 10:43 fstab

-rw-r–r–    1 501      501           855 May 16 10:43 fstab

lftp john@127.0.0.1:~/test4> get fstab -o /tmp/    #下载

lftp john@127.0.0.1:~/test4> get fstab -o /tmp/    #下载

855 bytes transferred

855 bytes transferred

lftp john@127.0.0.1:~/test4> mv fstab fftab     #重命名

lftp john@127.0.0.1:~/test4> mv fstab fftab     #重命名

rename successful

rename successful

lftp john@127.0.0.1:~/test4> ls

lftp john@127.0.0.1:~/test4> ls

-rw-r–r–    1 501      501           855 May 16 10:46 fftab 

-rw-r–r–    1 501      501           855 May 16 10:46 fftab 

 

 

 

 

 

 

############备注######################

############备注######################

备注:virtual_use_local_privs参数
当virtual_use_local_privs=YES时,虚拟用户和本地用户有同等的权力;
当virtual_use_local_privs=NO时,虚拟用户和匿名用户有雷同的权限,暗许是NO。

备注:virtual_use_local_privs参数
当virtual_use_local_privs=YES时,虚拟用户和本地用户有一致的权柄;
当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,暗中认可是NO。

当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户拥有写权限(上传、下载、删除、重命名)。

当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户拥有写权限(上传、下载、删除、重命名)。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无别的权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无任何权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO时,虚拟用户只可以下载文件,无别的权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO时,虚拟用户只可以下载文件,无任何权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES时,虚拟用户只好上传和下载文件,无别的权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES时,虚拟用户只好上传和下载文件,无其余权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES时,虚拟用户只可以下载文件和创建文件夹,无任何权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES时,虚拟用户只好下载文件和创立文件夹,无别的权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_other_write_enable=YES时,虚拟用户只好下载、删除和重命名文件,无此外权限。

anon_other_write_enable=YES时,虚拟用户只好下载、删除和重命名文件,无任何权限。

 

 

 

 

 

 

 

 

 #######################################用mysql+pam+vsftpd###############################

 #######################################用mysql+pam+vsftpd###############################

 

 

① 、安装所急需程序

一 、安装所急需程序

 

 

1、安装mysql和pam_mysql

1、安装mysql和pam_mysql

 

 

# yum -y install  mysql-server mysql-devel pam_mysql

# yum -y install  mysql-server mysql-devel pam_mysql

注意:pam_mysql由epel源提供。(yum  install -y epel-release)

注意:pam_mysql由epel源提供。(yum  install -y epel-release)

贰 、创立虚拟用户账号

② 、创制虚拟用户账号

 

 

1.预备数据库及有关表

1.准备数据库及相关表

 

 

首先请保管mysql服务业已司空眼惯运行。而后,按要求建立存款和储蓄虚拟用户的数据库即可,那里将其创建为vsftpd数据库。

先是请确定保障mysql服务业已常常运维。而后,按供给树立存款和储蓄虚拟用户的数据库即可,那里将其创制为vsftpd数据库。

 

 

mysql> create database vsftpd;

mysql> create database vsftpd;

 

 

mysql> grant select on vsftpd.* to vsftpd@localhost identified by
‘redhat’;

mysql> grant select on vsftpd.* to vsftpd@localhost identified by
‘redhat’;

mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by
‘redhat’;

mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by
‘redhat’;

mysql> flush privileges;

mysql> flush privileges;

 

 

mysql> use vsftpd;

mysql> use vsftpd;

mysql> create table users (

mysql> create table users (

 id int AUTO_INCREMENT NOT NULL,

 id int AUTO_INCREMENT NOT NULL,

 name char(20) binary NOT NULL,

 name char(20) binary NOT NULL,

password char(48) binary NOT NULL,

password char(48) binary NOT NULL,

 primary key(id)

 primary key(id)

 );

 );

 

 

二 、添加测试的虚拟用户

② 、添加测试的虚构用户

 

 

基于需求丰盛所急需的用户,必要表明的是,那里将其密码为了安全起见应该利用PASSWO昂科拉D函数加密后存款和储蓄。

依照须求添加所要求的用户,要求表达的是,那里将其密码为了安全起见应该使用PASSWO奥迪Q5D函数加密后存款和储蓄。

 

 

mysql> insert into users(name,password)
values(‘fush1’,password(‘asdfg’));

mysql> insert into users(name,password)
values(‘fush1’,password(‘asdfg’));

mysql> insert into users(name,password)
values(‘fush2’,password(‘asdfg’));

mysql> insert into users(name,password)
values(‘fush2’,password(‘asdfg’));

三、配置vsftpd

三、配置vsftpd

 

 

1.创建pam认证所需文件

1.起家pam认证所需文件

 

 

#vi /etc/pam.d/vsftpd.mysql

#vi /etc/pam.d/vsftpd.mysql

丰盛如下两行

加上如下两行

auth required /lib64/security/pam_mysql.so user=vsftpd passwd=redhat
host=localhost db=vsftpd table=users usercolumn=name
passwdcolumn=password crypt=2

auth required /lib64/security/pam_mysql.so user=vsftpd passwd=redhat
host=localhost db=vsftpd table=users usercolumn=name
passwdcolumn=password crypt=2

account required /lib64/security/pam_mysql.so user=vsftpd
passwd=redhat host=localhost db=vsftpd table=users usercolumn=name
passwdcolumn=password crypt=2

account required /lib64/security/pam_mysql.so user=vsftpd
passwd=redhat host=localhost db=vsftpd table=users usercolumn=name
passwdcolumn=password crypt=2

 

 

##请检查
ll 
/lib64/security/pam_mysql.so  
该公文是不是留存,不存在查看pam_mysql 是或不是安装成功!**

##请检查
ll 
/lib64/security/pam_mysql.so  
该公文是还是不是留存,不存在查看pam_mysql 是或不是安装成功!**

 

 

 

 

注意:由于mysql的装置方式各异,pam_mysql.so基于unix
sock连接mysql服务器时大概会出标题,此时,建议授权五个可长途连接的mysql并访问vsftpd数据库的用户。

留意:由于mysql的装置方式各异,pam_mysql.so基于unix
sock连接mysql服务器时恐怕会出难题,此时,提议授权1个可长途连接的mysql并访问vsftpd数据库的用户。

 

 

2.改动vsftpd的配备文件,使其适应mysql认证

2.修改vsftpd的布局文件,使其适应mysql认证

 

 

确立虚拟用户映射的系统用户及相应的目录

确立虚拟用户映射的系统用户及相应的目录

# useradd -s /sbin/nologin -d /var/ftproot virtual      #virtual
为虚拟用户映射的类别用户

# useradd -s /sbin/nologin -d /var/ftproot virtual      #virtual
为虚拟用户映射的系统用户

# chmod go+rx /var/ftproot

# chmod go+rx /var/ftproot

请保管/etc/vsftpd.conf中早已启用了以下选项

请确定保证/etc/vsftpd.conf中已经启用了以下选项

[root@server vusers_home]# vi /etc/vsftpd/vsftpd.conf

[root@server vusers_home]# vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

anonymous_enable=NO

local_enable=YES

local_enable=YES

write_enable=YES

write_enable=YES

anon_upload_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_mkdir_write_enable=NO

chroot_local_user=YES

chroot_local_user=YES

从此添加

自此添加

guest_enable=YES

guest_enable=YES

guest_username=virtual     # virtual
为虚构用户映射的系统用户,useradd -s /sbin/nologin -d /var/ftproot
virtual  中所创造的

guest_username=virtual     # virtual
为虚构用户映射的系统用户,useradd -s /sbin/nologin -d /var/ftproot
virtual  中所成立的

并确保pam_service_name选项的值如下所示

并确保pam_service_name选项的值如下所示

pam_service_name=vsftpd.mysql

pam_service_name=vsftpd.mysql

四、启动vsftpd服务

四、启动vsftpd服务

 

 

# service vsftpd start

# service vsftpd start

# chkconfig vsftpd on

# chkconfig vsftpd on

 

 

查阅端口开启状态

翻开始口开启状态

 

 

# netstat -tnlp |grep :21

# netstat -tnlp |grep :21

tcp        0      0 0.0.0.0:21              0.0.0.0:*             
 LISTEN      23286/vsftpd

tcp        0      0 0.0.0.0:21              0.0.0.0:*             
 LISTEN      23286/vsftpd

测试:

测试:

 oot@server ~]# lftp fush1@127.0.0.1

 oot@server ~]# lftp fush1@127.0.0.1

Password:

Password:

lftp fush1@127.0.0.1:~> ls     

lftp fush1@127.0.0.1:~> ls     

drwx——    2 501      501          4096 May 16 10:47 test

drwx——    2 501      501          4096 May 16 10:47 test

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:46 test4

drwx——    2 501      501          4096 May 16 10:46 test4

lftp fush1@127.0.0.1:/> mkdir test3

lftp fush1@127.0.0.1:/> mkdir test3

mkdir: Access failed: 550 Permission denied. (test3)  
 #因为全局的anon_mkdir_write_enable=YES权限注释掉了,所以没有权力

mkdir: Access failed: 550 Permission denied. (test3)  
 #因为全局的anon_mkdir_write_enable=YES权限注释掉了,所以没有权力

lftp fush1@127.0.0.1:/> quit 

lftp fush1@127.0.0.1:/> quit 

⑤ 、配置虚拟用户拥有差异的造访权限

⑤ 、配置虚拟用户全体不一样的拜访权限

# vim vsftpd.conf

# vim vsftpd.conf

累加如下选项

增长如下选项

user_config_dir=/etc/vsftpd/vusers_home

user_config_dir=/etc/vsftpd/vusers_home

 

 

[root@server vusers_home]#touch fush1

[root@server vusers_home]#touch fush1

[root@server vusers_home]#vim fush1

[root@server vusers_home]#vim fush1

write_enable=YES

write_enable=YES

virtual_use_local_privs=YES          
 此时fush1将兼具具备权力(下载,上传,重命名,创设,删除)

virtual_use_local_privs=YES          
 此时fush1将有全体着权限(下载,上传,重命名,成立,删除)

 

 

测试如下:

测试如下:

[root@server vusers_home]# /etc/init.d/vsftpd restart

[root@server vusers_home]# /etc/init.d/vsftpd restart

Shutting down vsftpd:                                      [  OK 
]

Shutting down vsftpd:                                      [  OK 
]

Starting vsftpd for vsftpd:                                [  OK 
]

Starting vsftpd for vsftpd:                                [  OK 
]

[root@server vusers_home]# lftp fush1@127.0.0.1

[root@server vusers_home]# lftp fush1@127.0.0.1

Password:

Password:

lftp fush1@127.0.0.1:~> ls     

lftp fush1@127.0.0.1:~> ls     

drwx——    2 501      501          4096 May 16 10:47 test

drwx——    2 501      501          4096 May 16 10:47 test

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:46 test5

drwx——    2 501      501          4096 May 16 10:46 test5

lftp fush1@127.0.0.1:~> mkdir test4

lftp fush1@127.0.0.1:~> mkdir test4

mkdir ok, `test4′ created

mkdir ok, `test4′ created

lftp fush1@127.0.0.1:~> cd test4

lftp fush1@127.0.0.1:~> cd test4

lftp fush1@127.0.0.1:~/test4> put /etc/fstab

lftp fush1@127.0.0.1:~/test4> put /etc/fstab

855 bytes transferred                             

855 bytes transferred                             

lftp fush1@127.0.0.1:~/test4> ls

lftp fush1@127.0.0.1:~/test4> ls

-rw-r–r–    1 501      501           855 May 18 06:29 fstab

-rw-r–r–    1 501      501           855 May 18 06:29 fstab

lftp fush1@127.0.0.1:~/test4> get /etc/fstab -o /usr/local/src/

lftp fush1@127.0.0.1:~/test4> get /etc/fstab -o /usr/local/src/

855 bytes transferred

855 bytes transferred

lftp fush1@127.0.0.1:~/test4> cd ..

lftp fush1@127.0.0.1:~/test4> cd ..

lftp fush1@127.0.0.1:~> ls

lftp fush1@127.0.0.1:~> ls

drwx——    2 501      501          4096 May 16 10:47 test

drwx——    2 501      501          4096 May 16 10:47 test

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:24 test1

drwxr-xr-x    2 501      501          4096 May 18 06:29 test4

drwxr-xr-x    2 501      501          4096 May 18 06:29 test4

drwx——    2 501      501          4096 May 16 10:46 test5

drwx——    2 501      501          4096 May 16 10:46 test5

lftp fush1@127.0.0.1:~> mv test5 test2

lftp fush1@127.0.0.1:~> mv test5 test2

rename successful

rename successful

lftp fush1@127.0.0.1:~> ls

lftp fush1@127.0.0.1:~> ls

drwx——    2 501      501          4096 May 16 10:47 test

drwx——    2 501      501          4096 May 16 10:47 test

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:46 test2

drwx——    2 501      501          4096 May 16 10:46 test2

drwxr-xr-x    2 501      501          4096 May 18 06:29 test4

drwxr-xr-x    2 501      501          4096 May 18 06:29 test4

lftp fush1@127.0.0.1:~> rm -rf test2

lftp fush1@127.0.0.1:~> rm -rf test2

rm ok, 2 files removed

rm ok, 2 files removed

lftp fush1@127.0.0.1:~> ls

lftp fush1@127.0.0.1:~> ls

drwx——    2 501      501          4096 May 16 10:47 test

drwx——    2 501      501          4096 May 16 10:47 test

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:24 test1

drwxr-xr-x    2 501      501          4096 May 18 06:29 test4

drwxr-xr-x    2 501      501          4096 May 18 06:29 test4

 

 

 

 

 

 

相关文章