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

两台虚拟机,均要检测

1. Yum是否可用

2.  防火墙默认区域修改为trusted

3. IP地址是否配置

-----------------------------------------------------------------------------------------

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

Samba 软件项目

– 用途:为客户机提供共享使用的文件夹

– 协议:SMB(TCP 139)、CIFS(TCP 445)

所需软件包:samba

系统服务:smb

一、搭建基本samba服务

1.安装samba软件包

2.创建samba的共享帐号。与系统相同用户名,不同密码

·samba用户:专门用来访问共享文件的用户

-采用独立设置的密码

-提前创建同名的系统用户,可以不设密码


·pdbedit管理工具

-添加用户:pdbedit -a 用户名

-查询用户:pdbedit -L 用户名

-删除用户:pdbedit -x 用户名

若密码设错了,可以先删除再添加

[[email protected] ~]# useradd -s /sbin/nologin harry

[[email protected] ~]# useradd -s /sbin/nologin kenji

[[email protected] ~]# useradd -s /sbin/nologin chihiro

#添加用户,但不能访问本地系统用户,只供访问共享服务

[[email protected] ~]# pdbedit -a harry    #添加samba帐号,设置密码

[[email protected] ~]# pdbedit -a kenji    #添加samba帐号,设置密码

[[email protected] ~]# pdbedit -a chihiro  #添加samba帐号,设置密码

[[email protected] ~]# pdbedit -L        #列出所有有效的samba帐号

harry:1001:

chihiro:1003:

kenji:1002:

3.修改服务配置文件 /etc/samba/smb.conf

补充:vim   末行模式(Esc   :)   set  nu  显示行号

89行          workgroup = STAFF   #可不做修改

末行插入:

321行     [common]                          #共享名

322行        path = /common      #共享实际路径(绝对路径)

[[email protected] ~]# mkdir /common         #创建共享目录

[[email protected] ~]# echo haha > /common/abc.txt     #重定向写入共享文本

4. 重起smb服务,设置为开机自起

[[email protected] ~]# systemctl restart smb

[[email protected] ~]# 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         #不能访问到,因为SElinux访问权限限制

NT_STATUS_ACCESS_DENIED listing \*      #之前要将selinux权限设置为enforcing

思路:客户端访问服务端资源

    1.防火墙是否限制

    2.服务本身的访问控制

    3.SELinux 是否限制 

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

getsebool 查看 SELinux 开关

[[email protected] ~]# getsebool -a | grep samba

samba_export_all_ro --> off

samba_export_all_rw --> off

setsebool 控制 SELinux 开关

– 需要加 -P 选项才能实现永久设置,教学环境中可以不用加-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           #此时能访问到共享文件

.                                   D        0  Mon Nov  6 19:47:57 2017

..                                  D        0  Mon Nov  6 19:47:54 2017

abc.txt                             N        5  Mon Nov  6 19:47:57 2017

40913 blocks of size 262144. 28569 blocks available

--------------------------------------------------------------------------------------

使用mount挂载

所需软件包:cifs-utils

_netdev: 开启网络服务后再挂载该设备

虚拟机desktop0

1.安装软件包cifs-utils

2.修改/etc/fstab

[[email protected] ~]# mkdir /mnt/samba      #创建挂载点目录

[[email protected] ~]# vim /etc/fstab         #设置开机自动挂载

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

3. mount -a  验证

df   -h   #查看挂载信息

-------------------------------------------------------------------------------

 Samba读写的共享

虚拟机server0上

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

[devops]

path = /devops

write list = chihiro       #允许chihiro对共享文件/devops可写

[[email protected] /]# mkdir /devops

[[email protected] /]# echo hahaxixi > /devops/123.txt

2.重起smb服务

[[email protected] ~]# 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     #很卡,在server0上重起smb服务

[[email protected] ~]# df -h

---------------------------------------------------------------------------------------

实现读写Samba共享的其他操作

思路:客户端访问服务端资源

1.防火墙是否限制

2.服务本身的访问控制

3.SELinux 是否限制

4. 服务端目录本地权限

一、修改服务端SELinux布尔值,开放读写

[[email protected] /]# getsebool -a | grep samba

[[email protected] /]# setsebool samba_export_all_rw=on

[[email protected] /]# getsebool -a | grep samba

#客户端desktop0上写不了,/mnt/dev下创建不了文档,因为服务端目录本地权限受限

二、目录本地权限

[[email protected] /]# ls -ld /devops/

[[email protected] /]# setfacl -m u:chihiro:rwx /devops/

[[email protected] /]# getfacl   /devops/

三、客户端验证

[[email protected] ~]# touch /mnt/dev/test.txt

---------------------------------------------------------------------------------------

共享文件的方式有4种:samba,nfs,http,ftp

multiuser多用户访问(只需了解,只支持普通用户)

– multiuser,提供对客户端多个用户身份的区分支持

– sec=ntlmssp,提供NT局域网管理安全支持

客户端完成:

[[email protected] /]# vim  /etc/fstab

//172.25.0.11/devops /mnt/dev cifs  user=kenji,pass=123,_netdev,multiuser,sec=ntlmssp 0  0    #不是追加写

[[email protected] /]# umount /mnt/dev/

[[email protected] /]# mount -a

[[email protected] /]# df -h

[[email protected] /]# su - student

[[email protected] dev]$ cd /mnt/dev

[[email protected] dev]$ cifscreds add -u chihiro 172.25.0.11   #使用cifscreds提交新的用户凭据并测试

Password:

[[email protected] dev]$ ls

[[email protected] dev]$ touch abc.txt      #写测试

[[email protected] dev]$ ls          #验证结果

abc.txt

[[email protected] dev]$ exit

-------------------------------------------------------------------------------------------

 配置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                    #列出有哪些NFS共享资源

[[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        #没有显示abc的挂载点,改为df -ah

服务端:

[[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    #前面服务端压榨客户端root权限就不能创建

---------------------------------------------------------------------------------------

二、普通用户(必须还原环境)

客户端普通用户访问服务端nfs-server服务,

服务端会以客户端相同UID身份的本地用户进行权限判定

LDAP :  网络用户,提供用户名

kerberos : 密码验证,实现“一次密码认证,多次免密登录”的通行证机制

1.两台虚拟机都运行脚本,加入LDAP与kerberos

# lab nfskrb5 setup

2.服务端修改配置文件,创建读写的共享

[[email protected] ~]# mkdir /test

[[email protected] ~]# vim /etc/exports

/test  *(rw,sec=krb5p)

3.服务端部署加密的密钥

# wget http://172.25.254.254/pub/keytabs/server0.keytab  -O /etc/krb5.keytab

# ls  /etc/krb5.keytab

4.服务端 重起 nfs-server 与 nfs-secure-server

# systemctl restart  nfs-server  nfs-secure-server

5.服务端保证ldapuser0用户有写权限,设置本地权限

[[email protected] ~]# setfacl -m u:ldapuser0:rwx /test

[[email protected] ~]# getfacl /test

6.客户端访问与挂载共享

[[email protected] ~]# showmount -e 172.25.0.11

[[email protected] ~]# mkdir /mnt/nfs

[[email protected] ~]# vim /etc/fstab

172.25.0.11:/test  /mnt/nfs  nfs  _netdev,sec=krb5p  0  0

7.客户端部署密钥文件,重起相关的服务

# wget http://172.25.254.254/pub/keytabs/desktop0.keytab  -O /etc/krb5.keytab

# systemctl restart nfs nfs-secure

8.客户端验证挂载,写入(必须采用ssh方式,su不经过kerberos验证)

[[email protected] ~]# mount -a

[[email protected] ~]# df -h

[[email protected] ~]# ssh  [email protected]

[[email protected] ~]$ cd /mnt/nfs/

[[email protected] nfs]$ touch 1.txt

[[email protected] nfs]$ ls

1.txt

[[email protected] nfs]$ exit

时间: 2024-10-11 19:27:58

linux学习笔记-工程师技术:SMB共享、NFS共享的相关文章

linux学习笔记--工程师技术:shell脚本基础

 Shell脚本 脚本:可以执行文件,运行后可以实现某种功能(命令的堆积,非交互) 规范Shell脚本的一般组成 #! 环境声明(Sha-Bang) # 注释文本 可执行代码 #!/bin/bash   #环境声明,声明写的脚本是bash这个程序翻译的 一.书写第一脚本程序 [[email protected] ~]# vim /root/1.sh #!/bin/bash echo hello world hostname cat  /etc/redhat-release ifconfig |

linux学习笔记-工程师技术:HTTP服务基础(Web服务基本搭建)、网页内容访问、安全Web服务、动态网站的部署

两台虚拟机,均要检测 1.IP地址     ifconfig 2.是否可以解析,nslookup server0.example.com 3.Yum是否可用   yum repolist 4.防火墙默认区域修改为trusted ------------------------------------------------------------------------------------------- HTTP服务基础 Web通信基本概念 基于 B/S (Browser/Server)架构

Linux学习笔记——例说makefile 增加系统共享库

0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法. 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件 3.需要包括头文件路径 4.增加宏定义 5.增加系统共享库 6.增加自定义共享库 7.一个实际的例子 [代码仓库]--makefile-example

Linux学习笔记——例说makefile 增加自定义共享库

0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法. 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件 3.需要包括头文件路径 4.增加宏定义 5.增加系统共享库 6.增加自定义共享库 7.一个实际的例子 [代码仓库]--makefile-example

Linux学习笔记——如何在交叉编译时使用共享库

0.前言 在较为复杂的项目中会利用到交叉编译得到的共享库(*.so文件).在这种情况下便会产生以下疑问,例如: [1]交叉编译时的共享库是否需要放置于目标板中,如果需要放置在哪个目录中. [2]交叉编译时的共享库是否需要放置于宿主机中,如果需要放置于哪个目录中. [3]交叉编译时如何指定共享库 [4]程序运行时如何查找共享库 等等问题. 博文总结了使用共享库的一般方法,并通过一个例子说明问题.如果已经有了交叉编译好的共享库,可以从[2]开始,步骤[1]只是为了说明问题,捏造一个简单的共享库试图说

linux学习笔记-第二十五课-NFS与FTP

一.NFS NFS是Network File System的缩写,即网络文件系统. NFS服务器安装 1.NFS服务器主要的软件是rpcbind(rhel 5中的版本叫portmap)和nfs-utils rpcbind:是RPC主程序,负责NFS端口的监听. nfs-utils:是NFS主程序 我们只有通过yum或者RPM来安装就可以 2.启动NFS [[email protected] ~]# service nfs start 启动 NFS 服务:                     

Linux学习笔记(14)-进程通信|共享内存

共享内存是允许两个不相关的进程访问同一个逻辑内存的进程间通信方法,是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式. 不同进程之间共享的内存通常安排为同一段物理内存.进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址. 就好像它们是由用C语言malloc()分配的内存一样.

马哥Linux学习笔记之四——DNS

1.BIND:Berkeley Internet Name Domain DNS:Domian Name Service 域名解析 2. Http 3.PAM 插入式认证模块 4.SMTP/POP3/IMAP4:Mail Server 5.域名 www.baidu.com这是一个主机名(FQDN,Full Qualified Domain Name,完全限定域名),com是一个域名,baidu.com也是一个域名,域名是好多主机的集合. 域名解析起后面有一个数据库,解析就是一个查询的过程.域名解

Linux学习笔记——例说makefile 综合案例

0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法. 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件 3.需要包括头文件路径 4.一个较为复杂的例子 [代码仓库]--makefile-example 代码仓库位于bitbucket,可借助Tortoise