学习周报-20221230

本文介绍了红帽8.7系统如何设置字符集,使用localectl命令查看和修改系统字符集,并详细阐述了NFS配置文件中父目录权限对子目录的影响,以及如何通过IP分组批量管理NFS客户端。通过实例展示了NFS权限设置和IP分组策略,便于理解和管理NFS服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先查看系统环境

[root@nfs-server ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.7 (Ootpa)
[root@nfs-server ~]# uname -r
4.18.0-425.3.1.el8.x86_64

这是红帽8.7版本的操作系统。

一 如何设置字符集

如果想设置服务端的字符集编码,可以使用localectl命令。

首先可以先输入localectl list-locales可以显示系统可设置的字符集编码类型。
如果本机要设置成 utf-8类型,但又忘了全称,则可以在命令模式中,先输入/,进行查询操作,接着输入utf8,按住上下键进行一行行查找即可。

在这里插入图片描述
如此,我们可以看到想要设立的字符集全称是en_US.utf8,然后输入q进行退出。

接着在修改之前,查看当前的系统字符集。

[root@nfs-server ~]# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

接着直接永久修改字符集,并查看配置文件。

[root@nfs-server ~]# localectl set-locale LANG=en_US.utf8
[root@nfs-server ~]# cat /etc/locale.conf 
LANG=en_US.utf8

可以看到修改成功。
但检查后发现,并没有立即生效。

[root@nfs-server ~]# echo $LANG
zh_CN.UTF-8
[root@nfs-server ~]# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

这个更改会在用户的下一次登陆时生效。
如果想要立刻生效,可以加载一下配置文件,然后重新登录用户。

[root@nfs-server ~]# source /etc/locale.conf
[root@nfs-server ~]# su -
[root@nfs-server ~]# echo $LANG
en_US.utf8

二 NFS配置文件父目录权限影响子目录

以下图为例:

假设本机服务端IP为10.0.0.7
vim /etc/exports
/data         10.0.0.10(ro,sync,no_root_squash)
/data/dir01   10.0.0.10(rw,sync,no_root_squash)  
/data/dir02   10.0.0.10(rw,sync,no_root_squash)  10.0.0.11(rw,sync,no_root_squash)

上述配置文件的参数说明含义如下:

10.0.0.10挂载时命令如下:mount -t nfs 10.0.0.7:/data /test
客户端10.0.0.10访问共享目录/data时,其权限是ro只读,并且客户端root用户访问时,不会将root用户映射成匿名用户。经过测试,客户端在访问/data下面的字母dir01与dir02时没有读写权限,只有只读权限。其父目录权限限制了客户端对子目录的访问权限。

10.0.0.11挂载时命令如下:mount -t nfs 10.0.0.7:/data /test
客户端10.0.0.11访问/data/dir02时,具有对该目录的读写权限。并且只能看到dir02目录,无法看到dir01目录。

通过10.0.0.11的测试发现,在配置文件中用只读权限挂载父目录过于鸡肋,它会对父目录下的子目录权限进行限制;如果想要细分权限,可以在需要分配权限的子目录后添加参数设置即可。

即便在配置文件没有设置挂载父目录,但在客户端执行挂载命令时,依旧可以对其直接进行挂载。

vim /etc/exports
/data/dir01   10.0.0.10(rw,sync,no_root_squash)  
/data/dir02   10.0.0.10(rw,sync,no_root_squash)  10.0.0.11(rw,sync,no_root_squash)

三 对IP分组可以批量管理NFS客户端

由于NFS挂载时涉及的客户端主机很多,如果每个主机写一行,会显得十分冗杂繁琐,此处可以配置/etc/hosts主机清单文件,将同一批的客户端统一管理。

假设有一批主机如下:

主机名IP作用
nfs-server10.0.0.7NFS服务端
nfs-client10.0.0.10NFS客户端
database0110.0.0.51NFS客户端
apache0210.0.0.71NFS客户端
lb0810.0.0.15NFS客户端

处于业务需要,要将nfs-client(10.0.0.10)和apache02(10.0.0.71)两台主机挂载到服务端/data目录下
将database01(10.0.0.51)和lb08(10.0.0.15)两台主机挂载到服务端/share目录下。

此时配置NFS服务端10.0.0.7的/etc/hosts,IP是这些主机唯一的标识,我们将分配到/data目录下的10.0.0.10标记为data01,将10.0.0.71标记为data02;同理,将10.0.0.51标记为share01,将10.0.0.15标记为share02。

vim /etc/hosts
10.0.0.10 data01
10.0.0.71 data02
10.0.0.51 share01
10.0.0.15 share02

通过IP,我们依旧可以了解这台主机的原本的主机名。然后在/etc/exports中分别设置:

vim /etc/exports
/data    data*(rw,sync,no_root_squash)
/share  share*(rw,sync,no_root_squash)

data表示所有data01 data02 类似标识名称的主机;share同理,这类似于Linux使用find查找文件时的通配符作用。

这样,我们就完成了对NFS客户端IP的分组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值