配置SMB共享 配置NFS共享

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置SMB共享 配置NFS共享相关的知识,希望对你有一定的参考价值。

虚拟机,均要检测

1. Yum是否可用
2.  防火墙默认区域修改为trusted
3. IP地址是否配置

###########################################################################################################
  samba 文件共享(共享文件夹)

Samba 软件项目
– 用途:为客户机提供共享使用的文件夹
– 协议:SMB(TCP 139)、CIFS(TCP 445)

所需软件包:samba
系统服务:smb



一、搭建基本samba服务
1.安装samba软件包
2.创建samba的共享帐号。与系统相同用户名,不同密码

# useradd -s /sbin/nologin harry
# useradd -s /sbin/nologin kenji
# useradd -s /sbin/nologin chihiro

# pdbedit -a harry    #添加samba帐号,设置密码
# pdbedit -a kenji    #添加samba帐号,设置密码
# pdbedit -a chihiro  #添加samba帐号,设置密码

# pdbedit -L           #列出所有有效的samba帐号
# pdbedit -x  用户名    //删除用户

3.修改服务配置文件 /etc/samba/smb.conf
 
   补充:vim   末行模式    set  nu  添加行号

    89行          workgroup = STAFF
    321行     [common]                          #共享名
    322行        path = /common      #共享实际路径

[[email protected] ~]# mkdir /common                  //创建共享文件夹
[[email protected] ~]# echo haha > /common/abc.txt    

4. 重起smb服务,设置为开机自起
#systemctl restart smb
#systemctl enable smb

虚拟机Desktop0
所需软件包:samba-client

[[email protected] ~]# smbclient -L //172.25.0.11               //显示共享文件
Enter root‘s password:

[[email protected] ~]# smbclient -U harry //172.25.0.11/common  //查看共享文件内容
Enter harry‘s password:
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*       //经过以下思路可判断。报错为SElinux限制

思路:客户端访问服务端资源
    1.防火墙是否限制
    2.服务本身的访问控制
  3.SELinux 是否限制

  SELinux:  布尔值  (功能的开关)

getsebool 查看 SELinux 开关
[[email protected] ~]# getsebool -a | grep samba   //查看samba功能的开关
samba_export_all_ro --> off
samba_export_all_rw --> off

setsebool 控制 SELinux 开关
– 需要加 -P 选项才能实现永久设置
[[email protected] ~]# setsebool  samba_export_all_ro=on  //打开只读
[[email protected] ~]# getsebool -a | grep samba            //查看开关状态

虚拟机Desktop0
[[email protected] ~]# smbclient -U harry //172.25.0.11/common  
Enter harry‘s password:
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls

挂载:
# mount /etc/common  //设置挂载点
# vim /etc/fstab     
//172.25.0.11/common /mnt/common cifs username=harry,password=123,_netdev 0 0
   文件类型为cifs(需要安装nfs-utils),username=harry,password=123,_netdev (这相当于一个映射,相当于在访问时,使用的时harry这个用户的身份,所以在对文件进行操作时,harry对/common有什么权限,客户端用户就对这个文件有什么权限)。
#mount -a //开机自动挂载
#df -ah //查看挂载情况

########################################################################################################
 Samba读写的共享

1.修改配置文件/etc/samba/smb.conf

 [devops]
   path = /devops
   write list = chihiro  //chihiro具有写权限

[[email protected] /]# mkdir /devops   //创建共享文件
[[email protected] /]# echo hahaxixi > /devops/123.txt
2.重起smb服务
#systemctl restart smb
3.客户端验证:
[[email protected] ~]# smbclient  -L   172.25.0.11
Enter root‘s password:

4.客户端挂载验证
[[email protected] ~]# mkdir /mnt/dev   //创建挂载点
[[email protected] ~]# vim /etc/fstab  
//172.25.0.11/devops /mnt/dev cifs user=chihiro,pass=123,_netdev 0  0  
[[email protected] ~]# mount -a  //挂载
[[email protected] ~]# df -h

[[email protected] ~]# touch /mnt/dev/b.txt   //验证是否可以创建文件
touch: 无法创建"/mnt/dev/b.txt": 权限不够     //分析原因,防火墙已经设置为trusted,服务本身也做了,问题在于SElinux是否限制。

#####################################################################################################
实现读写samba的思路:
1.防火墙是否限制
2.服务本身是否访问控制
3.SElinux是否限制
4.服务端目录的本地权限

在服务端server0上进行操作:
一、修改服务端SELinux布尔值,开放读写
# getsebool -a | grep samba  //查看功能开关
samba_export_all_rw --> off  //限制状态
#setsebool samba_export_all_rw=on
# getsebool -a | grep samba
samba_export_all_rw --> on

验证:
[[email protected] ~]# touch /mnt/dev/b.txt
touch: 无法创建"/mnt/dev/b.txt": 权限不够  //证明问题在于服务端目录的本地权限

二。目录本地权限
[[email protected] ~]# ls -ld /devops                 //查看目录权限
drwxr-xr-x. 2 root root 18 11月  6 19:53 /devops    //没有写权限
[[email protected] ~]# setfacl -m u:chihiro:rwx /devops  //设置用户chihiro对目录有写权限
[[email protected] ~]# getfacl /devops   //查看权限列表

三、客户端验证
[[email protected] ~]# touch /mnt/dev/test.txt

##########################################################################################################
 配置NFS共享

Network File System,网络文件系统
    – 用途:为客户机提供共享使用的文件夹
    – 协议:NFS(TCP/UDP 2049)、RPC(TCP/UDP 111)

所需软件包: nfs-utils
系统服务: nfs-server

搭建基本的只读NFS服务
1.在虚拟机server0上,检测nfs-utils是否安装
[[email protected] /]# rpm -q nfs-utils

2.修改配置文件/etc/exports
[[email protected] /]# mkdir /public
[[email protected] /]# echo hehelele > /public/nsd.txt
[[email protected] /]# vim /etc/exports

/public   172.25.0.0/24(ro)
 
3.重起nfs-server服务,设置开机自起
[[email protected] /]# systemctl restart  nfs-server
[[email protected] /]# systemctl enable  nfs-server

4.客户端  访问nfs-server服务
[[email protected] /]# mkdir /mnt/nfs
[[email protected] /]# showmount -e 172.25.0.11
[[email protected] /]# vim /etc/fstab

 172.25.0.11:/public /mnt/nfs  nfs  _netdev 0 0

[[email protected] /]# mount -a
[[email protected] /]# ls  /mnt/nfs
#######################################################

  读写nfs-server服务

一.客户端root用户的读写
服务端:
[[email protected] /]# mkdir /abc
[[email protected] /]# echo 123 > /abc/a.txt
[[email protected] /]# vim /etc/exports
  /abc   172.25.0.0/24(rw)

[[email protected] /]# systemctl restart nfs-server

客户端:
[[email protected] /]# vim /etc/fstab
172.25.0.11:/abc /mnt/nsd  nfs  _netdev 0 0

[[email protected] /]# mkdir /mnt/nsd
[[email protected] /]# mount -a
[[email protected] /]# df -h

服务端:
[[email protected] /]# vim /etc/exports
/abc   172.25.0.0/24(rw,no_root_squash)    #不压榨客户端root权限

[[email protected] /]# systemctl restart nfs-server

客户端:

[[email protected] /]# systemctl  restart nfs  #重起客户端服务
[[email protected] /]# touch /mnt/nsd/5.txt


二、普通用户
 
     客户端普通用户访问服务端nfs-server服务,
     服务端会以客户端相同UID身份的本地用户进行权限判定

    LDAP :  网络用户,提供用户名
    kerberos : 密码验证,实现“一次密码认证,多次免密登录”的通行证机制

服务端:
[[email protected] /]# lab  nfskrb5  setup
[[email protected] /]# grep ldapuser0 /etc/passwd
[[email protected] /]# id ldapuser0

1.部署kerberos加密的密钥文件
wget http://172.25.254.254/pub/keytabs/server0.keytab -O /etc/krb5.keytab
[[email protected] /]# ls /etc/krb5.keytab

2.修改配置文件
[[email protected] /]# vim /etc/exports
 /abc   172.25.0.0/24(rw,no_root_squash,sec=krb5p)

3.重起nfs-server与nfs-secure-server
# systemctl restart nfs-server  nfs-secure-server



客户端:
[[email protected] /]# lab  nfskrb5  setup
[[email protected] /]# grep ldapuser0 /etc/passwd
[[email protected] /]# id ldapuser0

1.部署kerberos加密的密钥文件
wget http://172.25.254.254/pub/keytabs/desktop0.keytab -O /etc/krb5.keytab

[[email protected] /]# ls /etc/krb5.keytab

2.修改/etc/fstab
172.25.0.11:/abc /mnt/nsd  nfs  _netdev,sec=krb5p 0 0

3.重起nfs与nfs-secure服务
[[email protected] /]# systemctl restart nfs  nfs-secure

4.验证挂载
[[email protected] /]# umount /mnt/nsd
[[email protected] /]# mount -a
[[email protected] /]# df -ah



以上是关于配置SMB共享 配置NFS共享的主要内容,如果未能解决你的问题,请参考以下文章

Linux运维之道之ENGINEER1.3(配置SMB共享,配置NFS共享)

linux学习笔记-工程师技术:SMB共享NFS共享

Samba服务 NFS服务

Samba或NFS实现文件共享

让Vagrant在Windwos下支持使用NFS/SMB共享文件夹从而解决目录共享IO缓慢的问题

第12章 使用Samba或NFS实现文件共享