简介
Vsftpd
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
NFS
NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送
Samba
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源
前期准备
准备两台Centos7虚拟机,配置IP地址和hostname,同步系统时间,关闭防火墙和selinux,修改IP地址和hostname映射
ip | hostname |
---|---|
192.168.29.132 | master |
192.168.29.138 | bak |
Vsftpd文件共享
安装部署服务
[root@master ~]# yum install vsftpd -y
修改配置文件
[root@master ~]# 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
# 设置用户登陆后只能在家目录活动
#如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报错误
chroot_local_user=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
#设置登陆后的家目录
local_root=/data/kefu/
#设置把日志交给rsyslog服务管理,载体设备为ftp
syslog_enable=YES
创建用户
[root@master ~]# useradd kefu
[root@master ~]# echo 123 | passwd --stdin kefu
创建文件夹
[root@master ~]# mkdir -p /data/kefu/data
[root@master ~ ]# echo "hello vsftpd" > /data/kefu/data/hello.txt
#定制ACL策略
[root@master ~]# cd /data/kefu
[root@master kefu]# setfacl -m u:kefu:rwx data/
[root@master kefu]# getfacl data/
# file: data/
# owner: root
# group: root
user::rwx
user:kefu:rwx
group::r-x
mask::rwx
other::r-x
启动服务
[root@master ~]# systemctl start vsftpd.service
[root@master ~]# ls /data/kefu/data/
hello.txt world.txt
[root@master ~]# cat /data/kefu/data/world.txt
hello vsftpd world
NFS文件共享
安装部署服务
[root@master ~]# yum install nfs-utils rpcbind -y
修改配置文件
[root@master ~]# vi /etc/exports
#设置共享目录
#共享文件夹 允许挂载的IP地址(挂载权限)
/share/data 192.168.29.138(rw)
#由于NFS共享机用户属于nobody,因此需要配置防火墙和共享文件夹的权限
创建目录
[root@master ~]# mkdir -p /share/data
[root@master ~]# chmod 757 /share/data
[root@master ~]# ls -ald /share/data/
drwxr-xrwx 2 root root 24 1月 14 2020 /share/data/
[root@master ~]# echo "this is share test page" > /share/data/index.html
启动服务
[root@master ~]# systemctl start nfs-server
挂载
#在NFS共享机上挂载NFS服务共享文件夹到Apache文件夹
[root@bak ~]# mount -t nfs4 192.168.29.132:/share/data/ /usr/local/nginx/html/
[root@bak ~]# echo "this is share test page!!!" > /usr/local/nginx/html/index.html
[root@master ~]# cat /share/data/index.html
this is share test page!!!
Samba文件共享
安装部署服务
[root@master ~]# yum install samba -y
修改配置文件
[root@master ~]# vi /etc/samba/smb.conf
[smb_share]
comment=samba server
path=/shares/data
public=NO
writable=YES
创建目录
[root@master ~]# mkdir -p /shares/data
[root@master ~]# echo 'hello samba' > /shares/data/hello.txt
创建用户
[root@master ~]# useradd kefu
设置samba登陆密码
[root@master ~]# smbpasswd -a kefu
New SMB password:
Retype new SMB password:
[root@master ~]# ls /shares/data
hello.txt world.txt
[root@master data]# cat /shares/data/world.txt
hello samba world
linux挂载
#安装部署客户端软件
[root@bak ~]# yum -y install samba-client cifs-utils
#查看可挂载资源
[root@bak ~]# smbclient -L 192.168.29.132 -U kefu
Enter WORKGROUP\kefu's password:
Sharename Type Comment
--------- ---- -------
smb_share Disk samba server
IPC$ IPC IPC Service (Samba 4.9.1)
Reconnecting with SMB1 for workgroup listing.
Server Comment
--------- -------
Workgroup Master
--------- -------
WORKGROUP MASTER
#挂载
[root@bak ~]# mount -t cifs -o rw,user=kefu //192.168.29.132/smb_share /mnt
Password for kefu@//192.168.29.132/smb_share: ***
[root@bak ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
//192.168.29.132/smb_share 29G 15G 15G 49% /mnt
[root@bak ~]# ls /mnt/
hello.txt
[root@bak ~]# cat /mnt/hello.txt
hello samba
新建文件
[root@bak ~]# echo haha > /mnt/haha.txt
[root@master ~]# ls /shares/data
haha.txt hello.txt world.txt
[root@master ~]# cat /shares/data/haha.txt
haha