部署本地用户的ftp:
注意:使用虚拟主机的方式将本地用户ftp和匿名ftp部署在同一个主机上,环境中其他设置和匿名一样。
匿名ftp的配置请戳-->匿名ftp配置
如果需要单独部署则需要安装vsftpd,其他如下。
1)设置虚拟ip地址。[root@ftp ~]# cd /etc/sysconfig/network-scripts/
[root@ftp network-scripts]# cp ifcfg-eth0 ifcfg-eth1
[root@ftp network-scripts]# vi ifcfg-eth1
[root@ftp network-scripts]# cat ifcfg-eth1
DEVICE=eth0:0
HWADDR=00:0C:29:75:38:E1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.100.151
NETMASK=255.255.255.0
GATEWAY=192.168.100.100
DNS1=192.168.100.100
[root@ftp ~]# /etc/init.d/network restart
正在关闭接口 eth0: [确定]
关闭环回接口: [确定]
弹出环回接口: [确定]
弹出界面 eth0: Determining if ip address 192.168.100.150 is already in use for device eth0...
[确定]
弹出界面 eth1: Determining if ip address 192.168.100.151 is already in use for device eth0...
[确定]
[root@ftp ~]# ip a
1: lo: mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:75:38:e1 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.150/24 brd 192.168.100.255 scope global eth0
inet 192.168.100.151/24 brd 192.168.100.255 scope global secondary eth0:0
inet6 fe80::20c:29ff:fe75:38e1/64 scope link
valid_lft forever preferred_lft forever
[root@ftp ~]#
2)创建本地用户、组和目录并授权。
[root@ftp ~]# useradd u01
[root@ftp ~]# useradd u02
[root@ftp ~]# echo 123123 |passwd --stdin u01
[root@ftp ~]# echo 123123 |passwd --stdin u02
##创建用户和设置密码
[root@ftp ~]# mkdir /localroot ##创建ftp的根目录
[root@ftp ~]# groupadd g01 ##创建组
[root@ftp ~]# gpasswd -M u01,u02 g01 ##将两个用户加入到g01的附加组里
[root@ftp ~]# chown :g01 /localroot/ ##将根目录的所属组给g01
[root@ftp ~]# chmod g+w /localroot/ ##给目录所属组写入权限
[root@ftp ~]# ls -ld /localroot/ ##查看权限[root@ftp ~]# useradd u01
[root@ftp ~]# useradd u02
[root@ftp ~]# echo 123123 |passwd --stdin u01
更改用户 u01 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@ftp ~]# echo 123123 |passwd --stdin u02
更改用户 u02 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@ftp ~]# groupadd g01
[root@ftp ~]# gpasswd -M u01,u02 g01
[root@ftp ~]# mkdir /localroot
[root@ftp ~]# chown :g01 /localroot/
[root@ftp ~]# chmod g+w /localroot/
[root@ftp ~]# ls -ld /localroot/
drwxrwxr-x 2 root g01 4096 8月 12 17:16 /localroot/
3)生成配置文件,修改配置项定制功能,实现虚拟主机的ftp
[root@ftp ~]# cd /etc/vsftpd/
[root@ftp ~]# cp vsftpd.conf.bak vsftpd-lu.conf ##复制个配置文件,这个复制的配置文件提供 给本地用户ftp使用
[root@ftp ~]# vi vsftpd-lu.conf ##删除注释、删除空行 (进入vi使用:%g/^#/d删除#开头注释)
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
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
listen_address=192.168.100.101
local_root=/localroot/
chroot_local_user=YES
local_max_rate=5000000
userlist_deny=NO ##启用白名单
:wq[root@ftp ~]# cd /etc/vsftpd/
[root@ftp vsftpd]# cp vsftpd.conf.bak /etc/vsftpd/vsftpd-lu.conf
[root@ftp vsftpd]# vi /etc/vsftpd/vsftpd-lu.conf
[root@ftp vsftpd]# cat /etc/vsftpd/vsftpd-lu.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
listen_address=192.168.100.151
local_root=/localroot/
chroot_local_user=YES
local_max_rate=5000000
userlist_deny=NO
[root@ftp ~]# /etc/init.d/vsftpd restart
[root@ftp ~]# netstat -utlpn |grep 21
[root@ftp ~]# chkconfig vsftpd on[root@ftp ~]# /etc/init.d/vsftpd restart
关闭 vsftpd: [确定]
为 vsftpd 启动 vsftpd: [确定]
为 vsftpd-lu 启动 vsftpd: [确定]
[root@ftp ~]# chkconfig vsftpd on
[root@ftp ~]# netstat -utpln |grep ftp
tcp 0 0 192.168.100.151:21 0.0.0.0:* LISTEN 2131/vsftpd
tcp 0 0 192.168.100.150:21 0.0.0.0:* LISTEN 2126/vsftpd
4)修改vsftpd的用户控制文件,控制用户的使用。
[root@ftp ~]# vi /etc/vsftpd/user_list ##删除原有的所有配置,只允许u01、u02用户访问ftp
u01
u02
:wq[root@ftp ~]# vi /etc/vsftpd/user_list
[root@ftp ~]# cat /etc/vsftpd/user_list
u01
u02
5)启动服务器,访问测试。
在ftp服务器上创建测试文件:[root@ftp ~]# touch /localroot/test.txt
[root@ftp ~]# ls /localroot/test.txt
/localroot/test.txt
在test测试服务器上创建测试文件:[root@test ~]# hostname
test
[root@test ~]# touch hehe.txt
[root@test ~]# ls hehe.txt
hehe.txt
linux测试:[root@test ~]# lftp u01@192.168.100.151
口令: ##输入用户u01密码123123
lftp u01@192.168.100.151:~> ls
-rw-r--r-- 1 0 0 0 Aug 12 09:35 test.txt
lftp u01@192.168.100.151:/> put hehe.txt ##上传
lftp u01@192.168.100.151:/> ls
-rw-r--r-- 1 500 500 0 Aug 12 09:40 hehe.txt
-rw-r--r-- 1 0 0 0 Aug 12 09:35 test.txt
lftp u01@192.168.100.151:/> get test.txt ##下载文件
lftp u01@192.168.100.151:/> bye ##退出ftp
[root@test ~]# ls test.txt
test.txt
测试匿名访问的:[root@test ~]# lftp 192.168.100.150
lftp 192.168.100.150:~> ls
drwxr-xr-x 2 ftp ftp 4096 Mar 01 2013 pub
#匿名也可正常访问
windows测试:
192.168.100.150是提供给匿名用户使用的ftp (匿名用户权限:查看、下载)
192.168.100.151是提供给本地用户使用的ftp(本地用户权限:增、删、改、查、授权)
如果需要加入新的用户到ftp提供访问,新建用户-->将用户加入到/etc/vsftpd/user_list 即可,需要更改权限的话,把新建的用户加入到g01组里面去。