RHEL7--第十二章-Samba

使用 Samba或 NFS实现文件共享

  • Samba文件共享服务

微软: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建立的文件,是否能看到;

 

  • NFS网络文件系统

NFS服务可以将远程 Linux系统上的文件共享资源挂载到本地主机目录上,使得本机主机(Linux客户端)基于TCP/IP协议,像使用本地主机上的资源一样;

系统默认已经安装 NFS服务;

# yum  install -y  nfs-utils

NFS的配置文件:

/etc/exports  默认没有任何内容;

配置格式:

共享目录路径  允许访问的NFS客户端(共享权限参数);

参数:

例:服务器端

A:清空NFS服务器上的防火墙策略,并关闭;

# systemctl  stop  firewalld

# systemctl  disable  firewalld

B:在 NFS服务器上建立用于 NFS文件共享的目录nfstest,并设置权限确保其他人也有写入权限;

# mkdir  /nfstest

# chmod  -Rf  777 /nfstest

# echo "hi" > /nfstest/aaa.txt

C:/nfstest目录共享给192.168.10.0/24网段内的所有主机,拥有读写权限等;以及把来访客户端root映射为本地的匿名用户等;编辑NFS的配置主文件 /etc/exports

# vi  /etc/exports

 

/nfstest  192.168.10.* (rw,sync,root_squash) 

D:启动NFS服务程序;

# systemctl  restart  rpcbind

# systemctl  enable  rpcbind

# systemctl  start  nfs-server

# systemctl  enable  nfs-server

解析:

由于使用NFS服务进行文件共享前,需要使用 RPC(remote procedure call,远程过程调用)服务将NFS服务器的IP地址和端口信息发给我客户端;所以优先重启 rpcbind 服务;再重启 NFS服务;

例:客户端

命令:

showmount  查询NFS服务器的远程信息;

参数:

A:先使用 showmount命令 查询NFS服务器的远程共享信息;

# showmount  -e  192.168.10.10

B:创建一个挂载目录;并挂载;

# mkdir  /nfsaaa

# mount -t nfs 192.168.10.10:/nfstest /nfsaaa

# mount  192.168.10.10:/nfstest /nfsaaa

# vim  /etc/fstab

192.168.10.10:/nfstest  /nfsaaa  nfs  defualts  0 0

解析:

mount -t:指定要挂载的文件系统类型,后面跟IP地址;

 

  •  AutoFS 自动挂载服务

autofs服务程序是linux系统的守护进程,当检测到用户试图访问一个尚未挂载的文件系统时,将自动挂载该文件系统;

优点:只有在用户需要使用该文件系统时才去动态挂载,节约网络资源;

autofs主配置文件:

/ect/auto.master

子配置文件:

建议后缀名为.misc,用户可以自定义;

主配置的格式:

挂载目录  子配置文件  

/mnt/autofs  /etc/autotest.misc

子配置文件格式:

挂载目录 挂载文件类型及权限:设备名称

sdbtest  -fstype=ext4,ro,nosuid,nodev :/dev/sdb1

例:

分区挂载测试

A:配置autofs主配置文件;创建挂载目录 autofs;

# mkdir  /mnt/autofs

# vi  /etc/auto.master

解析:

自定义 子配置文件路径及名称:/etc/autotest.misc

B:配置子配置文件;

# vim  /etc/autotest.misc

解析:

sdbtest:表示子配置文件中的挂载目录,后面使用 cd命令进入挂载分区;

-fstype=:挂载的文件系统类型;

ro,nosuid,nodev:挂载目录的权限;

dev/sdb1:表示挂载的设备名称;

C:重启 autofs服务及开机自启;

# systemctl  restart  autofs

# systemctl  enable  autofs

D:测试结果;

# df  -h 

# cd  sdbtest

# df  -h

 

 

 

 

 

 

posted on 2019-04-07 15:48  风中的疯子  阅读(507)  评论(0)    收藏  举报

导航