使用 Samba或 NFS实现文件共享
微软:SMB(Server Messages Block)服务器消息块协议,为了解决局域网的文件的共享问题;
linux:基于 SMB协议上开发了 Samba服务程序,是linux与windows之间共享文件的最佳选择;
配置Samba服务程序,先安装 samba组件;
# yum install -y samba
Samba 主配置文件路径;
/etc/samba/smb.conf
由于配置文件中 #,;这两个符号内容太多,使用 grep -v 反向选择把配置文件精简;
# cd /etc/samba
# grep -v "#" /etc/samba/smb.conf > samba.conf.bak
# grep -v ";" /ect/samba/smb.conf.bak | grep -v "^$" > smb.conf
^$:表示对空白行进行反选过滤;
配置文件参数:
1:配置共享资源
与Apache一样,分为全局与区域配置参数;
参数:
例:
创建用于访问共享资源的账户信息,RHEL7中,samba服务默认使用的是用户口令认证模式(user);
备注:
a:在创建samba账户数据库后,才能使用用户口令认证模式;
b:创建samba数据库前,账户必须在当前系统中已经存在,否则日后会有各种错误;
相关命令:
pdbedit:管理smb服务程序的账户信息数据库;
参数:
A:查看samba数据库账户,是否已存在当前系统中;
# id centos
# pdbedit -a -u centos
输入centos 在samba数据库中的密码;
B:创建共享资源的文件目录;
# mkdir /home/database
# chown -Rf centos:centos /home/database
# semanage fcontext -a -t samba_share_t /home/database
# restorecon -Rv /home/database
解析:
1)共享的文件目录,需要考虑文件读写权限的问题;
2)由于共享目录在 /home下,牵扯到SELinux安全上下文带来的限制;相关限制权限在 samba配置文件注释信息中有描述;
C:设置SElinux服务与域策略,使其允许通过 samba服务程序访问普通用户家目录;
# getsebool -a | grep samba
# setsebool -P samba_enable_home_dirs=on
D:在 samba主配置文件中,写入共享信息;
# vi /etc/samba/smb.conf
E:重启 Samba服务,并设置开机自启;清空防火墙,并保存设置;
# systemctl restart smb
# systemctl enable smb
# systemctl stop firewalld
# systemctl disable firewalld
2:windows挂载目录共享
运行窗口输入 192.168.10.10 samba服务器地址即可
3:Linux挂载目录共享
需要在linux客户端上安装 支持文件共享服务的软件包:cifs-utils
# yum install -y cifs-utils
按照 samba服务的用户名,密码,共享域的顺序将相关信息写入到一个认证文件,并修改文件权限为600;
# vim auth.smb
# chmod -Rf 600 auth.smb
在客户端上创建一个挂载 samba服务共享资源的目录sharetest,并把挂载信息写入 fstab文件内;
# mkdir /sharetest
# vim /etc/fstab
测试结果即可;查看window建立的文件,是否能看到;
原文:https://www.cnblogs.com/fantasyxo/p/10665637.html