公司有多个部门,例如软件部、财务部,需要一个共享存储空间,方便资源共享,协作文档。 使用需求如下:
一个公共目录,公司所有同事都可以读写 每个部门有自己的目录,仅供该部门人员读写 每个部门不能看到其他部门的目录
根据以上需求,本文分别以Samba和NFS来实现。 二、服务器 CentOS7.x 64位 三、Samba共享存储 1、安装 yum install -y samba 复制代码2、配置
cp /etc/samba/smb.conf /etc/samba/smb.conf.org vim /etc/samba/smb.conf
复制代码[global] workgroup = WORKGROUP security = user server string = seal samba server %v netbios name = SealSamba # map to guest = Bad User passdb backend = tdbsam config file = /etc/samba/%G.smb.conf 复制代码# 新建软件部配置文件software.smb.conf和财务部配置文件finance.smb.conf vim /etc/samba/software.smb.conf vim /etc/samba/finance.smb.conf
复制代码[公共] comment = Public Stuff path = /home/share/public public = no read only = no writable = yes create mask = 0644 directory mask = 0755 force user = nobody force group = nobody valid users = @software admin users = @software read list = @software write list = @software
[软件部] comment = 软件部 path = /home/share/software public = no valid users = @software admin users = @software read list = @software write list = @software read only = no writable = yes create mask = 0644 directory mask = 0755 复制代码[公共] comment = 公共 path = /home/share/public public = no valid users = @finance admin users = @finance read list = @finance write list = @finance writable = yes create mask = 0644 directory mask = 0755 force user = nobody force group = nobody
[财务部] comment = 财务部 path = /home/share/财务部 public = no valid users = @finance admin users = @finance read list = @finance write list = @finance writable = yes create mask = 0644 directory mask = 0755 复制代码3、新建用户和用户组,分配权限
groupadd software
groupadd finance
useradd -g software zhangsan
useradd -g finance lisi
groupdel 用户组 userdel 用户
smbpasswd -a zhangsan smbpasswd -a lisi
smbpasswd -x 用户 复制代码4、创建共享目录 mkdir -p /home/share/public mkdir -p /home/share/software mkdir -p /home/share/财务部
chown -R nobody:nobody /home/share/public 复制代码5、启动服务,访问 systemctl start smb 复制代码5.1 Windows访问
资源管理器地址栏直接输入:\服务器
映射网络驱动器
效果
5.2 Mac访问
二、NFS共享存储 1、服务端安装 yum install -y nfs-utils
systemctl start rpcbind systemctl start nfs
firewall-cmd --zone=public --permanent --add-service={rpc-bind,mountd,nfs} firewall-cmd --reload 复制代码2、配置共享目录 mkdir /data chmod 755 /data
vim /etc/exports
复制代码/data/ 192.168.0.0/24(rw,sync,no_root_squash,no_all_squash) 复制代码 /data: 共享目录位置。 192.168.0.0/24: 客户端 IP 范围,* 代表所有,即没有限制。 rw: 权限设置,可读可写。 sync: 同步共享目录。 no_root_squash: 可以使用 root 授权。 no_all_squash: 可以使用普通用户授权。
systemctl restart nfs
showmount -e localhost
复制代码Export list for localhost: /data 192.168.0.0/24 复制代码3、Windows客户端使用 3.1 安装 Windows 安装 NFS 客户端,不同的 Windows 版本,安装方式不大一样
Windows Server 2008
servermanagercmd.exe -install FS-NFS-Services
Windows 7
程序和功能 - 启动或关闭 Widnows 功能 - NFS 服务
Windows Server 2012
添加功能角色 - 添加文件打印服务 - NFS 客户端
Windows 10
程序和功能 - 启动或关闭 Widnows 功能 - NFS 服务
3.2 查看服务器uid和gid id root
复制代码可以看到 uid=0, gid=0,需要在 Windows 客户端上进行配置 3.2 Windows配置
regedit 复制代码 定位到这一项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default 创建两个 DWORD 值,名称分别为 AnonymousUid 和 AnonymousGid 设置 UID 和 GID 的值,本例设置为 0 重启 Windows 操作系统 (或者重启 NFS Client 服务)
3.3 挂载文件夹 mount 192.168.0.110:/data X:
umount X:
复制代码3.4 自动挂载
点击此电脑 在弹出的计算机对话框中,在工具栏找到 映射网络驱动器 驱动器地址输入 X: 文件夹输入 192.168.0.110:/data 确认 登录时重新连接 是勾选的,这个配置表示登录时自动挂载共享目录。
4、Linux客户端使用 4.1 安装 yum install -y nfs-utils systemctl enable rpcbind systemctl start rpcbind 复制代码4.2 客户端连接
showmount -e 192.168.0.110
mkdir /data
mount -t nfs 192.168.0.101:/data /data
mount 复制代码4.3 测试NFS cd /data touch 1.txt 复制代码4.4 客户端自动挂载 vim /etc/fstab
复制代码#
/dev/mapper/cl-root / xfs defaults 0 0 UUID=414ee961-c1cb-4715-b321-241dbe2e9a32 /boot xfs defaults 0 0 /dev/mapper/cl-home /home xfs defaults 0 0 /dev/mapper/cl-swap swap swap defaults 0 0 192.168.0.110:/data /data nfs defaults 0 0
