一、NFS服务介绍
network file system 网络文件系统
- 主要用于linux系统上实现文件共享的一种协议
- 没有用户认证机制,且数据在网络上传送的时候是明文传送,一般只在局域网中使用
- 支持多节点同时挂载及并发写入
企业应用:为集群中的web server提供后端存储
RPC: 远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务
- rpcbind 负责NFS的数据传输,远程过程调用 tcp协议 端口111
-
二、NFS服务器搭建
rpm -q rpcbind
rpm -qa | grep ^nfs
发现有了,系统默认是已经装好了- 相关配置信息其实在redhat认证那里已有介绍
netstat -ntlp | grep rpcbind
检查服务是否已启动echo "/share/nfs *(rw)" >> /etc/exports
,重启rpcbind,nfsmount.nfs 10.1.1.1:/share/nfs /u01
手动将服务端的文件夹挂载到本地
- 需要创建相应的用户user1~user3 eg: user1—> /user1指定用户家目录(挂载点)
useradd -d /rhome/user1 -M user1
B主机上(NFS-SERVER)10.1.1.2:
- 搭建NFS服务,将/data 共享出来
echo "/data 10.1.1.10(rw)" >> /etc/exports
service nfs restart
A:
- 挂载B主机上的共享目录到指定挂载点上
mkdir /rhome/user{1..3}
mount.nfs 10.1.1.2:/data/user1 /rhome/user1
df -h
测试验证:
- 在客户端,使用user1 登录FTP-SERVER端,进入到/rhome/user1 目录下
- 在NFS-SERVER端,在/data/user1/ 目录下创建文件。返回客户端测试
- 补充高级权限,
chmod 1777 /data/user1
粘滞位 —-一般作用在公共目录上(777) - 只能自己管理自己,在该目录下只有root和文件的创建者可以删除,其他人不可以删除不属于自己的文件
- 补充高级权限,
- 正常情况下,user1 只能访问ftp服务器,不能够上传文件,原因是nfs-server的共享目录没有权限。所以有上面的授权操作
- 方法二,将NFS-SERVER:/data 挂载到 FTP-SERVER:/home ,然后创建用户,默认家目录,此时亦达到目的
- 方法三。
A主机上(FTP-SERVER)10.1.1.1:
- 创建用户
B主机上(NFS-SERVER)10.1.1.2:
- 创建目录,
mkdir -p /data/user1
- 给共享目录设置权限,
chmod 1777 -R /data
- 共享目录,
echo "/data 10.1.1.10(rw)" >> /etc/exports
service nfs restart
A:
mount.nfs 10.1.1.2:/data/user1 /home/user1
服务端的用户会影响客户端用户上传的文件(uid,gid) 用户的家目录不完整:
cp -a .bash* /home/user1/
将文件拷贝到用户家目录中去
示例2:实现web集群后端存储
- NFS-SERVER端:共享目录,并创建一个首页文件
```powershell
- mkdir -p /share/web
- echo “hello world!!!!!” > /share/web/index.html
- echo “/share/web 10.1.1.3(ro) 10.1.1.4(ro)” >> /etc/exports
- service nfs restart 或 exportfs -ra ```
- WEB1服务端:
```powershell
- yum -y install httpd
- 挂载nfs-server端的共享目录到/var/www/html/ mount.nfs 10.1.1.1:/share/web /var/www/html/
- 启动服务 service httpd restart 问题:httpd服务启动不了,提示 DocumentRoot must be a directory setenforce 0 设置selinux,安全上下文的影响 测试验证:能看到相同的页面 ```
SABMA 服务
- 用于windows和类unix系统之间共享文件的一种协议
- samba服务默认是基于用户和密码认证的服务
- samba服务的用户必须是samba服务器上存在的用户,密码必须是samba数据库里的密码
- 对于发布的共享资源,默认情况是本地用户可以访问的,匿名用户是否访问看是否打开 public=yes
- samba服务默认是基于用户和密码认证的服务
案例:
公司itcast,有三个部门cw,rs,sc和一个公共区pub,每个部门的资料根据如下需求进行共享:
- 财务部门 /samba/itcast_cw,cw01 财务总监有可读可写权限,财务部门员工可读,boss01对其有管理权限
- 市场部门 /samba/itcast_sc,市场部门员工可读可写,公司员工可以查询资料,boss02 对其有管理权限
- HR部门 /samba/itcast_rs,rs01 HR总监可读写,HR部门员工可以对财务部查询,VIP用户可查询
- 休息区 /samba/itcast_pub 自己管理自己的文件
步骤:
- 在服务器上创建相应目录,保存不同部门的资料
mkdir -p /smb/{cw,rs,sc,pub}
- 创建相应的用户组,方便管理
groupadd itcast
groupadd cw
groupadd rs
groupadd sc
useradd cw01 -g cw -G itcast
useradd rs01 -g rs -G itcast
useradd sc01 -g sc -G itcast
useradd boss01 -g itcast
useradd vip
- 修改相应目录的权限
搭建samba服务,共享不同部门的资料
vim /etc/samba/smb.conf
[cw] path = /smb/cw valid users = boss01,@cw write list = cw01,boss01 [rs] path = /smb/rs valid users = vip,@rs write list = rs01 [sc] path = /smb/sc valid users = @itcast write list = @sc,boss02 [pub] path = /smb/pub valid users = @itcast writable = yes ```
smbpasswd -a cw01
将用户添加到samba数据库里- 测试验证
总结:
- ftp
- nfs 局域网, 挂载方式访问 mount.nfs
- samba 局域网 直接访问(smbclient) 挂载的方式