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. 模块二、shell脚本逻辑结构

    七.if结构条件句知识与实践 (一)if条件句单双分支语法 1.单分支 if 条件 then 指令 fi 2.双分支 if 条件 then 指令 else 指令集2 fi (二)if条件句多分支语句 ...

  2. adb server version (xx) doesn't match this client (xx); killing...

    问题 查看AndroidSDK的adb版本 查看模拟器adb的版本号 安装路径/bin目录下的 nox_adb.exe 将AndroidSDK的adb复制出来,重命名为nox_adb.exe,覆盖模拟 ...

  3. STM 32 内部功能回顾

    EXTI   外部中断 NVIC 嵌套的向量式中断控制器 AHB 是高级高性能内部总线,主要是用在CPU.DMA.DSP(数字信号处理) APB 是外围总线,I2C. 串口 APB 分为高速APB2( ...

  4. X shell安装 以及使用

    X shell 百度搜索 X shell 然后下载软件 然后会进入主页面

  5. python定义一种新类型的元组

    # 定义一种新类型的元组,只保留int类型,切只大于0的元素 # 例如:IntTuple([1,-1,"abc",6,['x','y'],3])==>(1,6,3) # 解决 ...

  6. java基础之I/O操作

    字节流 直接上代码: import java.io.*; class Test{ public static void main(String[] args){ FileInputStream inp ...

  7. jquery+layer实现无刷新、删除功能(laravel框架)

    先来看一下效果 路由代码 Route::get('car/{id}/delete', 'CarController@delete'); 控制器层代码 //删除汽车信息 public function ...

  8. Python爬虫之post请求

    暑假放假在家没什么事情做,所以在学习了爬虫,在这个博客园里整理记录一些学习的笔记. 构建表单数据(以http://www.iqianyue.com/mypost 这个简单的网页为例) 查看源代码,发现 ...

  9. JS高级---总结apply和call方法的使用

    apply和call的使用方法 apply的使用语法   函数名字.apply(对象,[参数1,参数2,...]); 方法名字.apply(对象,[参数1,参数2,...]);   call的使用语法 ...

  10. KMP算法例题

    链接:https://codeforces.com/contest/1200/problem/E 题意:依次合并两个单词,每次合并将删去最长相同前后缀,输出结果. 思路:用kmp跑出每个需要被连接的单 ...