9 NFS

9.1 NFS基础

目标

.使用NFS将文件系统连接到客户端,并使用IP 地址控制访问

.使用NFS将文件系统连接到客户端,并使用kerberos 来控制访问

.配置用户名和密码控制访问的SMB共享文件系统与客户端的SMB 共享

.安装了多用户安装选项,使用基于密码的身份验证和证书,来控制访问与SMB 共享

在NFS服务器主机中进行设置

– 安装NFS服务器软件包

– 启动NFS服务器程序

– 设置NFS共享目录输出

在NFS客户机中进行设置

– 使用mount命令挂载NFS服务器中的NFS共享目录到文件系统中

– 通过NFS文件系统的挂载点目录访问NFS服务器中的共享内容

• nfs-utils软件包

– 提供了NFS服务器的启动脚本和管理维护工具

• 软件包安装

– “nfs-utils” 软件包在RHEL7系统中是默认安装的

• “exports”文件用于配置NFS服务器中输出的共享目录

# cat /etc/exports

/home/share *(sync,ro)

字段说明

nfs共享目录名需要进行输出的NFS共享目录名称

客户端主机地址能够访问共享目录的主机地址

配置选项设置共享目录的属性,字段放置在括号对( )中,多个选项间用逗号分隔

– sync:设置NFS服务器同步写磁盘,这样不会轻易丢失数据,建议所有的NFS共享目录都使用该选项

– ro:设置输出的共享目录只读,与rw不能共同使用

– rw:设置输出的共享目录可读写,与ro不能共同使用

Exports文件配置实例

• 配置NFS服务器输出的共享目录

– 输出“/home/share”目录,对所有主机可读,对地址为192.168.1.19的主机可读可写

– 输出“/home/pub”目录,对192.168.152.0子网内的所有主机可读

# cat /etc/exports

/home/share *(sync,ro) 192.168.1.19(sync,rw)

/home/pub 192.168.152.0/24(sync,ro)

NFS服务管理

• 查询服务器的状态

# systemctl status nfs-server

# systemctl start/restart nfs-server

连接NFS共享

– 显示当前主机或指定服务器中的输出列表

# showmount -e [IP/HOST]

• 挂载NFS服务器中的共享目录

# mount -t nfs 192.168.152.131:/home/share/ /mnt/

# mount | grep nfs

– 使用umount命令卸载NFS文件系统# umount /mnt/

配置NFS启动自动挂载

# vim /etc/fstab

192.168.152.131:/home/pub /mnt nfs defaults 0 0

# mount -a

配置NFS的firewall端口安全

# firewall-cmd --permanent --add-service=nfs

# firewall-cmd --permanent --add-service=mountd

# firewall-cmd --permanent --add-service=rpc-bind

# firewall-cmd --reload

9.2 NFS配置实验命令

rpms: nfs-utils

daemon: nfs-server

nfs-secure-server / kerberos nfs-secure(client)

[Server]

# mkdir /public

# yum list nfs-utils

# man exports /example

# vim /etc/exports

/public *.example.com(ro)

# systemctl restart nfs-server

# systemctl enable nfs-server

# rpcinfo

# firewall-cmd --permanent --add-service=nfs

# firewall-cmd --permanent --add-service=rpc-bind

# firewall-cmd --permanent --add-service=mountd

# showmount -e

[Desktop]

# showmount -e s0

# mkdir /mnt/nfsmount

# vim /etc/fstab

...

server0.example.com:/public /mnt/nfsmount nfs defaults 0 0

# mount -a

# findmnt /mnt/nfsmount

9.3 配置基于Kerberos验证的NFS

服务端:

man exports | grep sec=

①修改配置文件

# echo '/securenfs desktopX(sec=krb5p,rw)' >>/etc/exports

②修改配置文件:/etc/sysconfig/nfs

# Optional arguments passed to rpc.nfsd. See rpc.nfsd(8)

RPCNFSDARGS="" #修改为:RPCNFSDARGS="-V 4.2"

③下载keytab文件

# wget -O /etc/krb5.keytab

http://classroom.example.com/pub/keytabs/serverX.keytab

④启动nfs-secure-server 服务

# systemctl start nfs-secure-server

客户端:

① 下载keytab文件

# wget -O /etc/krb5.keytab

http://classroom.example.com/pub/keytabs/desktopX.keytab

② 启动nfs-secure服务

# systemctl start nfs-secure

③修改配置文件# vim /etc/fstab

server0.example.com:/protected /mnt/nfssecure nfs defaults,sec=krb5p,v4.2 0 0

实验命令

[classroom]

# vim /content/courses/rh254/rhel7.0/grading-scripts/lab-nfskrb5

[server]

# lab nfskrb5 setup

# getent passwd ldapuser0

[desktop]

# lab nfskrb5 setup

# getent passwd ldapuser0

[Server]

# mkdir -p /protected/project

# man exports /sec

# vim /etc/exports

...

/protected *.example.com(rw,sec=krb5p)

# rpm -qc nfs-utils

# vim /etc/sysconfig/nfs

...

RPCNFSDARGS="-V 4.2"

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

# systemctl restart nfs-server

# systemctl restart nfs-secure-server

# systemctl enable nfs-secure-server

# showmount -e

# chown ldapuser0 /protected/project

# ll -d /protected/project

[Desktop]

# mkdir /mnt/nfssecure

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

# systemctl restart nfs-secure

# systemctl enable nfs-secure

# vim /etc/fstab

...

server0.example.com:/protected /mnt/nfssecure nfs defaults,sec=krb5p,v4.2 0 0

# mount -a

# findmnt /mnt/nfssecure

# ssh ldapuser0@localhost

kerberos

$ touch /mnt/nfssecure/project/rw.txt

server client

/etc/export

sec=krb5p

/etc/sysconfig/nfs /etc/fstab

-V 4.2 v4.2,sec=krb5p

/etc/krb5.keytab /etc/krb5.keytab

nfs-secure-server nfs-secure

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

9.4 实验外:如何生成令牌 krb

rebuild keytab

[classroom] online

# rm -rf /var/www/html/pub/keytables/server30.keytab

# kadmin.local

kadmin.local: ?

kadmin.local: list_principals

kadmin.local: ktadd

kadmin.local: ktadd -k /var/www/html/pub/keytabls/server30.keytab host/server30.example.com

kadmin.local: ktadd -k /var/www/html/pub/keytables/server30.keytab nfs/server30.example.com

kadmin.local: exit

# chmod a+r /var/www/html/pub/keytables/server30.keytab

9.5 RHCE相关题目2个

:: 配置 NFS 服务

在 server0 配置 NFS 服务,要求如下:

以只读的方式共享目录 /public 同时只能被 example.com 域中的系统访问

以读写的方式共享目录 /protected 能被 example.com 域中的系统访问

访问 /protected 需要通过 Kerberos 安全加密,

您可以使用下面URL提供的密钥 http://classroom/pub/keytabs/server0.keytab

目录 /protected 应该包含名为 project 拥有人为 ldapuser0 的子目录

用户 ldapuser0 能以读写方式访问 /protected/project

:: 挂载一个NFS共享

在 desktop0 上挂载一个来自 server0.example.com 的 NFS 共享,并符合下列要求:

/public 挂载在下面的目录上 /mnt/nfsmount

/protected 挂载在下面的目录上 /mnt/nfssecure 并使用安全的方式,

密钥下载 URL 如下: http://classroom/pub/keytabs/desktop0.keytab

用户 ldapuser0 能够在 /mnt/nfssecure/project 上创建文件

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

10 SMABA

10.1 基础

lSamba是一套使用SMB(Server Message Block)协议的应用程序

Samba允许Linux服务器与Windows系统之间进行通信,使跨平台的互访成为可能。

lSamba采用C/S模式, 其工作机制是让NetBIOS ( Windows网上邻居的通信协议)和SMB两个协议

运行于TCP/IP通信协议之上,并且用NetBEUI协议让Windows在“网上邻居”中能浏览Linux服务器。

• Samba的软件包组成

– samba-*.rpm

– samba-client-*.rpm

– samba-common-*.rpm

– cifs-utils-*.rpm

• Samba的配置目录及文件

– /etc/samba/

– /etc/samba/smb.conf

• smb.conf文件的配置内容

– [global]:全局设置

– [homes]:用户目录共享设置

– [printers]:打印机共享设置

– [myshare]:自定义名称的共享目录设置

• 辅助配置内容

– 注释行:以# 号开头的行 说明注释

– 配置样例行:以; 号开头的行 配置注释

– 结合grep命令可以提取有效配置行

• grep -v "^#" smb.conf | grep -v "^;"

常见全局配置项的含义

– workgroup:所在工作组名称

– server string:服务器描述信息

– security:安全级别,可用值如下:

share、user、server、domain

– log file:日志文件位置,“%m”变量表示客户机地址

– max log size:日志文件的最大容量,单位为KB

常见共享目录配置项的含义

– comment:对共享目录的注释、说明信息

– path:共享目录在服务器中对应的实际路径

– browseable:该共享目录在“网上邻居”中是否可见

– guest ok:是否允许所有人访问,等效于“public”

– writable:是否可写,与read only的作用相反

建立可匿名访问的文件共享

• 修改smb.conf配置文件

– security = share

– public = yes

访问SMB共享

• smbclient -L 192.168.168.1

• smbclient -U vina //192.168.168.1/movie

创建SMB访问账户

• 建立Samba用户数据库文件

– 系统用户帐号-> Samba用户帐号

– smbpasswd管理命令,常用的选项:

• -a:添加指定的Samba帐号

红帽RHCE培训-课程3笔记内容2的更多相关文章

  1. 红帽RHCE培训-课程1笔记内容

    ssh -X root@s0 1.环境变量 env 系统变量名都为大写; 引用变量名对应的值时使用$引导: SHELL下,修改变量临时生效. # PS1=' # ' # echo $PS1 永久生效放 ...

  2. 红帽RHCE培训-课程3笔记内容1

    1 控制服务和守护进程 systemctl systemctl start ** systemctl restart ** systemctl enable ** systemctl status * ...

  3. 红帽RHCE培训-课程2笔记内容

    1 kickstart自动安装 已安装系统中,在root下述目录会自动生成kickstart配置文件 ll ~/anaconda-ks.cfg 关键配置元素注释,详见未精简版 创建Kickstart配 ...

  4. 红帽RHCE培训-课程3笔记目录

    目录: 1 控制服务和守护进程 systemctl systemctl restart enable servicename service servicename restart chkconfig ...

  5. 红帽RHCE培训-课程2笔记目录

    目录 1 kickstart自动安装 DHCP+TFTP(syslinux) +FTP +KICKSTART ~/anaconda-ks.cfg system-config-kickstart 2 g ...

  6. 红帽RHCE培训-课程1笔记目录

    目录 1.环境变量 env 2.man手册mandb;系统日志/var/log/messages 3.重定向和管道> 2> &> | tee 4.mail mail -s 标 ...

  7. 4.bootstrap练习笔记-内容区块

    bootstrap练习笔记-内容区块 1.bootstrap中,采用的全部是div布局,把你的内容首先要包含在一个大的DIV区块当中 2.然后再写一个div.container,这个div里面存放真正 ...

  8. 01_Hadoop学习笔记内容说明

    Hadoop学习笔记内容说明_00 1.  观看云帆大数据梦琪老师的<企业级 Hadoop 1.x 应用开发基础课程>2014年4月左右版本. 2.  博客是在梦琪老师的随堂笔记上改动的, ...

  9. (转载)林轩田机器学习基石课程学习笔记1 — The Learning Problem

    (转载)林轩田机器学习基石课程学习笔记1 - The Learning Problem When Can Machine Learn? Why Can Machine Learn? How Can M ...

随机推荐

  1. arm-linux下qt + opencv开发环境的搭建(Altera DE1 Soc)

    arm-linux-gnueabihf-gcc下载 qt下载 arm-linux下qt + opencv开发环境的搭建(Altera DE1 Soc) Ubuntu 16.04 安装QT arm嵌入式 ...

  2. WPF 解决无边框产生的相关问题

    原文:WPF 解决无边框产生的相关问题 最大化: 在设置WindowStyle="None" AllowsTransparency="True"后,最大化会覆盖 ...

  3. [HDU4609] 3-idiots - 多项式乘法,FFT

    题意:有\(n\)个正整数,求随机选取一个3组合,能构成三角形的概率. Solution: 很容易想到构造权值序列,对其卷积得到任取两条边(可重复)总长度为某数时的方案数序列,我们希望将它转化为两条边 ...

  4. Laravel 中使用 Laravel-Excel 美化

    <?php use Maatwebsite\Excel\Classes\LaravelExcelWorksheet; use Maatwebsite\Excel\Exceptions\Larav ...

  5. 搭建Hexo实现个人网站详细教程

    全网最全小白搭建Hexo+Gitee/Coding/Github 全网最全小白搭建Hexo+Gitee/Coding/Github 本站内容已全部转移到https://www.myyuns.ltd,具 ...

  6. 本地cmd连接远程mysql数据库

    一.登录远程mysql 输入mysql -h要远程的IP地址 -u设置的MySQL用户名 -p登录用户密码 例如:mysql -h 192.168.1.139 -u root -p dorlocald ...

  7. Scale9Sprite 的 setCapInsets中需要注意的地方

    在设置 setCapInsets()方法的y参数的时候,不直接取cocosStudio中的y,而是取Scale9Sprite.height - cocosStudio中的y.

  8. L1-7 谁是赢家

    思路 这题好简单,可以分析一下,没有别的情况了. 代码 #include <bits/stdc++.h> using namespace std; int main() { int p1, ...

  9. rancher2中文文档地址

    rancher2中文文档地址 待办 https://docs.rancher.cn/

  10. 题解 【Codeforces387B】George and Round

    以下选自官方题解: 考虑困难的需求数量,我们将覆盖这些困难, 然后我们将提出新的问题,并准备新的问题来覆盖其他需求. 很明显,如果我们决定满足从n中抽取i的要求,那么最好采用那些复杂性最小的要求. 让 ...