ENGINEER04 - 配置Samba共享,配置NFS共享

本文介绍如何在Linux环境中配置Samba与NFS共享,包括防火墙设置、用户权限管理、SELinux策略调整等内容,并提供了详细的步骤和命令示例。

防火墙设置

虚拟机Server0
[root@server0 ~]# firewall-cmd  –set-default-zone=trusted 

虚拟机desktop0
[root@desktop0 ~]# firewall-cmd  –set-default-zone=trusted 

##########################################################

配置SMB共享, 跨平台的共享可以实现Linux与Linux之间,也可以实现Linux与windows之间

• Samba 软件项目
– 用途:为客户机提供共享使用的文件夹

• 所需软件包:samba
• 系统服务:smb
• 默认samba必须有用户验证
– 删除用户:pdbedit -x 用户名
 

服务端虚拟机Server0

1.安装samba软件
[root@server0 ~]# yum -y install samba

2.建立Samba共享使用的帐号
[root@server0 ~]# useradd harry
[root@server0 ~]# useradd kenji
[root@server0 ~]# useradd chihiro

[root@server0 ~]# pdbedit -a chihiro    #将本地用户添加为Samba共享帐号
[root@server0 ~]# pdbedit -a harry      #将本地用户添加为Samba共享帐号
[root@server0 ~]# pdbedit -a kenji      #将本地用户添加为Samba共享帐号

[root@server0 ~]# pdbedit -L       #显示所有Samba共享帐号
harry:1001:
chihiro:1003:
kenji:1002:
[root@server0 ~]# 

3. 修改配置文件
[root@server0 ~]# vim /etc/samba/smb.conf #vim命令模式  /workgroup
                                         #vim命令模式 按G(大写)到全文的最后
……  
                                               
        workgroup = STAFF       #设置工作组     
……
        [common]                #共享名
        path = /common          #共享的实际路径

[root@server0 ~]# mkdir /common
[root@server0 ~]# echo 123  > /common/123.txt
[root@server0 ~]# ls /common/
123.txt

4.重起smb服务
[root@server0 ~]# systemctl  restart smb   #重起smb服务
[root@server0 ~]# systemctl  enable smb    #设置smb服务开机自启动

5. SELinux 布尔值 (开与关  on 与 off) 功能的开关
  – 需要加 -P 选项才能实现永久设置
  #查看SELinux影响所有服务的功能开关
[root@server0 ~]# getsebool -a | grep samba 
  #修改SELinux影响服务的功能开关
[root@server0 ~]# setsebool  samba_export_all_ro  on  #修改SELinux功能
[root@server0 ~]# getsebool -a | grep samba


客户端虚拟机Desktop0:了解内容
1.安装客户端软件samba-client
2.利用smbclient进行访问
• 列出共享资源
[root@desktop0 ~]# smbclient -L 172.25.0.11
Enter root’s password:            #直接回车
• 连接到共享文件夹
– smbclient -U 用户名 //服务器地址/共享名
[root@desktop0 ~]# smbclient -U harry //172.25.0.11/common
Enter harry’s password: 
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
smb: \> 

客户端访问服务端资源影响方面  (非常重要 )

  1. 防火墙策略
  2. 服务本身的访问控制
  3. 服务端SELinux策略限制
  4. 服务端目录的本地权限

############################################################
方便科学的访问利用mount挂载
     -o:添加选项

客户端虚拟机Desktop0:
1.安装支持samba挂载的软件,文件系统cifs
# yum -y install cifs-utils
2.挂载访问
# mkdir /mnt/nsd
# mount -o user=harry,pass=123  //172.25.0.11/common   /mnt/nsd/
# df  -h
# ls /mnt/nsd
##############################################################

 

/etc/fstab完成samba开机自动挂载  

   _netdev:网络设备(先启动网络服务配置好ip地址,然后再挂载该设备)

 

[root@desktop0 ~]# vim   /etc/fstab

//172.25.0.11/common    /mnt/nsd    cifs defaults,user=harry,pass=123,_netdev   0  0

[root@desktop0 ~]# umount /mnt/nsd
[root@desktop0 ~]# df -h

[root@desktop0 ~]# mount -a
[root@desktop0 ~]# df -h 

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

服务端虚拟机server0
1.修改配置文件/etc/samba/smb.conf
[root@server0 ~]# vim /etc/samba/smb.conf 
[devops]
path = /devops

 

 

 

write list = chihiro           #允许chihiro可以写

2.创建共享目录结构
[root@server0 ~]# mkdir /devops
[root@server0 ~]# echo haha > /devops/test.txt
[root@server0 ~]# ls /devops/
3.重起smb服务  (修改完配置需要配置)
[root@server0 ~]# systemctl restart smb

客户端Desktop0:挂载访问
[root@desktop0 ~]# mkdir /mnt/stu
[root@desktop0 ~]# vim /etc/fstab 
//172.25.0.11/devops /mnt/stu  cifs  defaults,user=chihiro,pass=123,_netdev 0 0

[root@desktop0 ~]# mount -a
[root@desktop0 ~]# df -h

#################################################################
读写Samba共享补充

服务端虚拟机Server0:
1.判断客户端访问服务端时,身份
[root@server0 ~]# setfacl -m u:chihiro:rwx /devops
[root@server0 ~]# getfacl /devops

2.设置SELinux策略
[root@server0 ~]# getsebool -a | grep samba
[root@server0 ~]# setsebool samba_export_all_rw on
[root@server0 ~]# getsebool -a | grep samba

客户端虚拟机Desktop0:
[root@desktop0 ~]# df  -h
[root@desktop0 ~]# touch /mnt/stu/1.txt   (root用户以harry用户的身份访问服务端,可以实现rw)
[root@desktop0 ~]# ls /mnt/stu

################################################################
了解:多用户的samba访问,专不同权限的普通用户设计

在 desktop0 上访问 server0 提供的共享 devops
1)将此共享永久挂载在 /mnt/dev 目录
2)挂载时以用户 kenji 作为认证
3)必要的时候,任何普通用户都可以通过用户 chihiro 来临时获取写的权限

[root@desktop0 /]# umount /mnt/stu/
[root@desktop0 /]# vim /etc/fstab 
//172.25.0.11/devops /mnt/stu cifs defaults,user=kenji,pass=123,_netdev,multiuser,sec=ntlmssp  0 0

[root@desktop0 /]# mount -a
[root@desktop0 /]# df -h
[root@desktop0 /]# su - natasha
[natasha@desktop0 stu]cd/mnt/stu[natasha@desktop0stu]cd/mnt/stu[natasha@desktop0stu] cifscreds add -u chihiro 172.25.0.11
Password: 
[natasha@desktop0 stu]$ ls
##################################################################
配置NFS共享  Linux与Linux之间的共享


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

• 所需软件包:nfs-utils
• 系统服务:nfs-server
##############################################################
搭建基本NFS服务

服务端虚拟机Server0:
1.安装软件nfs-utils(默认是已经安装过的)
[root@server0 ~]# rpm -q nfs-utils

nfs-utils-1.3.0-0.el7.x86_64

2.修改配置文件/etc/exports
[root@server0 ~]# mkdir /public
[root@server0 ~]# echo 123 > /public/abc.txt
[root@server0 ~]# ls /public/
[root@server0 ~]# vim /etc/exports
 /public    *(ro)                       #共享路径      客户端地址(权限)

[root@server0 ~]# systemctl  restart nfs-server

虚拟机Desktop0:

[root@desktop0 /]# yum -y install nfs-utils

[root@desktop0 /]# showmount -e 192.168.5.14   //查看nfs服务端的共享目录

[root@desktop0 /]# mkdir /mnt/nfs                          

 

1.完成NFS共享开机自动挂载

[root@desktop0 /]# vim /etc/fstab 

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

[root@desktop0 /]# mount -a
[root@desktop0 /]# df  -h

##################################################################
环境变量
  USER:存放登陆的用户身份
  PATH:储存命令的搜寻路径
           执行命令时,都会区域PATH变量值中去寻找,该命令的执行程序,
           如果能找到就执行,不能找到报告命令没有找到

[root@server0 ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@server0 ~]# vim /root/hello 

#!/bin/bash
echo hello
[root@server0 ~]# chmod +x /root/hello

[root@server0 ~]# cp /root/hello  /usr/bin/
[root@server0 ~]# ls /usr/bin/hello
[root@server0 ~]# hello
##############################################################
划分分区  GPT

 GPT :  分区模式   128个主分区     最大18EB容量

[root@server0 ~]# parted  /dev/vdb
(parted) mktable  gpt         #设置分区模式   
(parted) print                #显示分区表内容
(parted) mkpart               #划分新的分区指令
  分区名称?  []?    haha          #指定分区名称
  文件系统类型?  [ext2]?  ext4    #指定文件系统类型,不起实际作用
  起始点? 0                      
  结束点? 1G          
  警告: The resulting partition is not properly aligned
 for best performance.
  忽略/Ignore/放弃/Cancel? Ignore   #忽略GPT分区模式,占有的磁盘空间

 (parted) print 
 (parted) unit GB                  #使用GB作为单位
 (parted) mkpart 
   分区名称?  []? haha
   文件系统类型?  [ext2]? ext4
   起始点? 1G          
   结束点? 2G                
 (parted) quit 
 [root@server0 ~]# ls /dev/vdb[1-2]
##############################################################
FTP服务
服务端虚拟机Server0
默认共享路径:/var/ftp
默认访问用户身份:ftp
 FTP客户端访问FTP服务端时,登陆的位置为该用户,在服务器上的家目录

1.安装vsftpd软件
[root@server0 ~]# yum -y install vsftpd

2.启动vsftpd服务
[root@server0 ~]# systemctl restart vsftpd
[root@server0 ~]# systemctl enable vsftpd

客户端Desktop0:
1.安装客户端软件ftp

[root@desktop0 ~]# yum -y install  lftp

[root@desktop0 ~]# lftp 172.25.0.11
lftp 172.25.0.11:~> ls

#########################################################

 wc命令 统计文本文件的行数

 请计算Linux系统一共有多少个用户?

[root@server0 /]# wc -l /etc/passwd
41 /etc/passwd

 请计算Linux系统/etc/有多少个tab结尾的文件?(不包含子目录)
[root@server0 /]# ls /etc/*tab | wc -l

 请计算Linux系统/etc/有多少个tab结尾的文件?(包含子目录)
[root@server0 /]# find /etc/ -name “*tab” | wc -l

 请计算Linux系统/etc/有多少个.conf结尾的文件?(包含子目录)

[root@server0 /]# find /etc/ -name “*.conf” | wc -l

———————————————————————————————————-

案例1:为虚拟机 server 配置以下静态地址参数
– 主机名:server0.example.com
[root@server0 ~]# vim /etc/hostname
– IP地址:172.25.0.11
– 子网掩码:255.255.255.0
– 默认网关:172.25.0.254
[root@server0 ~]# nmcli connection modify ‘System eth0’ ipv4.method manual ipv4.addresses ‘172.25.0.11/24 172.25.0.254’ connection.autoconnect yes
[root@server0 ~]# nmcli connection up ‘System eth0’

– DNS服务器:172.25.254.254
[root@server0 ~]# vim /etc/resolv.conf 

nameserver 172.25.254.254

案例2:虚拟机 server0上操作
        新建用户 alex,其用户ID为3456,密码是abcd
[root@server0 ~]# useradd -u 3456 alex

[root@server0 ~]# passwd alex

创建下列用户、组以及组的成员关系: 
– 一个名为 adminuser 的组 
[root@server0 ~]# groupadd adminuser

– 一个名为 natasha 的用户,其属于 adminuser 组, 这个组是该用户的从属组
[root@server0 ~]# useradd natasha
[root@server0 ~]# gpasswd -a natasha adminuser

– 一个名为 harry 的用户,其属于 adminuser 组,这个 组是该用户的从属组 
[root@server0 ~]# useradd harry
[root@server0 ~]# gpasswd -a harry adminuser

– 一个名为 sarah 的用户,其在系统中没有可交互的 Shell(/sbin/nologin),并且不是 adminuser 组的成员 
[root@server0 ~]# useradd -s /sbin/nologin sarah

– natasha 、harry、sarah 的密码都要设置为 redhat
[root@server0 ~]# echo redhat | passwd –stdin natasha
…..

案例3:虚拟机 server0上操作,tar制作/释放归档压缩包(zcf、ztf、zxf、jcf、jtf、jxf、cf、tf)
    1)备份/boot、/home这两个文件夹,保存为boothome.tar.gz文件
[root@server0 ~]# tar -zcf boothome.tar.gz /boot/ /home/

    2)查看boothome.tar.gz文件内包含哪些内容 
[root@server0 ~]# tar -tf boothome.tar.gz 

    3)将boothome.tar.gz释放到文件夹/root/boothome/下
[root@server0 ~]# tar -xf boothome.tar.gz -C /root/boothome

    4)创建一个名为 /root/backup.tar.bz2 的归档文件,其中包含 /usr/local 目录中的内容
[root@server0 ~]# tar -jcf /root/backup.tar.bz2 /usr/local/

案例4:在在 server0、desktop0 上操作
– 将防火墙默认区域设置为trusted
[root@server0 ~]# firewall-cmd –set-default-zone=trusted

案例5:配置Samba文件夹共享,防火墙默认区域设置为trusted,修改SElinux状态为Enforcing
在 server0 上发布共享文件夹
 1)此服务器必须是 STAFF 工作组的一个成员 
workgroup = STAFF

 2)发布目录 /devops,共享名为 devops 
[devops]
path = /devops

 3)用户 harry 对共享 devops可读可写,密码是 123
1.服务器本身的访问控制 (将用户加入samba,修改samba的配置文件)
[root@server0 home]# pdbedit -a harry
[root@server0 home]# vim /etc/samba/smb.conf 
[devops]
path = /devops
write list = harry
2.SeLinux的访问控制权限
[root@server0 home]# setsebool samba_export_all_rw on
3.防火墙的控制权限
[root@desktop0 ~]# firewall-cmd –set-default-zone=trusted
4.服务端目录的本地权限
[root@server0 home]# setfacl -m u:harry:rwx /devops/

在 desktop0 上访问共享文件夹
 1)访问 server0 上发布共享文件夹,实现开机自动挂载到/mnt/smb
 2)实现对/mnt/smb目录可以读和写
1.安装客户端的samba软件
[root@desktop0 ~]# yum -y install samba-client
2.安装支持samba挂载的软件cifs-utils,支持文件系统 cifs
[root@desktop0 ~]# yum -y install cifs-utils
3.将服务端的/devops挂载到本地/mnt/smb目录下
[root@desktop0 smb]# vim /etc/fstab 
//172.25.0.11/devops /mnt/smb cifs   defaults,user=harry,pass=123,_netdev 0 0
[root@desktop0 stu]# mount -a
[root@desktop0 stu]# df -h

[root@desktop0 smb]# echo my name is lijun >> lijun.txt  (对/mnt/smb目录可读可写)
[root@desktop0 smb]# ls
        hello.txt  lijun.txt

案例6:普通NFS共享的实现
  1. 在 server0 上配置NFS服务 
   1)只读的方式共享目录 /public,只能被172.25.0.0/24网段中的客户机系统访问 
1.检查
  [root@server0 ~]# rpm -q nfs-utils
[root@server0 ~]# vim /etc/exports
/public 172.25.0.0/24(ro)

  2. 在 desktop0 上访问NFS共享目录 
   1)将 server0 的 /public 挂到本地 /mnt/nfsmount 

   2)这些文件系统在系统启动时自动挂载

[root@desktop0 ~]# vim /etc/fstab 
172.25.0.11:/public /mnt/nfsmount nfs defaults,_netdev 0 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值