RHCE实验记录总结-1-RHCSA
不管是运维还是开发系统的了解下Linux或者系统的温习整理一下Linux知识点无疑是较好的,这篇文章是对RHCSA&RHCE实验进行一个汇总,是我为了做实验方便(并分享给朋友)的一篇文章。
前言
开卷有益
- 准备考RHCSA(红帽认证系统管理员)RHCE(红帽认证工程师)
- 想做下Linux实验巩固下实操技能
- 测试下自己现在Linux的技能掌握度
环境提示
系统版本:Centos7
虚拟环境:文章下方
- 虚拟环境安装
- 虚拟环境常用管理命令
整体总结
1、看下第一个实验的例子,其实要是重置密码步骤:第一步干了什么、第二步干了什么也是可以重置密码的(仅仅是做好这个实验而已)
2、拿第一个实验例子举例,做完实验看下总结
- 这个实验每一步的上下游关系(如果有的话)
- 每一步是干了什么,有什么意义
- 总结思考
RHCSA实验
恢复root密码
实验成果说明:
1、在忘记root密码的情况下如何恢复root密码
2、恢复root密码为redhat
实验前环境初始化:
1、重置server系统:rht-vmctl reset server
2、打开GUI(图形页面):rht-vmctl view server
3、在servser上执行命令初始化环境:lab rootpw setup
具体实验步骤:
、重启操作系统,然后在启动加载器菜单中终端倒计时
1.1. 使用相关按钮或菜单项向系统发送Ctrl+Alt+Del
1.2. 在显示启动加载器菜单后,按任意键中断倒计时 、编辑默认的启动加载器条目,使其在刚刚挂载所有文件系统后、但在控制权移交给systemd前终止启动过程,然后在进行启动
2.1. 使用光标键突出显示默认的启动加载条目
2.2. 按e编辑当前条目
2.3. 使用光标键导航到以linux16开头的哪一行
2.4. 按End将光标移至行尾
2.5. 将rd.break附加到行未
2.6. 按Ctrl+x 使用修改后的配置进行启动 # 这里可以理解为本身linux有个微系统,还没有加载我们正式系统
# 以读写的形式重新挂载我们的正式系统所在的分区
# 在执行命令chroot从微系统切换至正式系统
、在swich_root提示中,以只读的形式重新挂载/sysroot文件systemd,然后使用chroot进入/sysroot中的chroot存放文职
swich_root:/# mount -o remount,rw /sysroot
swich_root:/# chroot /sysroot 、修改密码
sh-4.2# passwd root 或者 sh-4.2# echo redhat |passwd --stdin root 、将系统配置为在启动后自动执行完整的SElinux重新标记,由于passwd工具重新创建了不带SElinux上下文的/etc/shadow文件(当前SElinux并没有加载)所以这很有必要
sh-4.2# touch /.autorelabel 、执行两次exit退出
6.1. 提示重启的时候SElinux重新标记需要花点时间稍等一下就好下次就没问题了 、执行命令验证
[root@server0 ~]# lab rootpw grade
恢复root密码步骤
实验总结:
1、首先要明白整个启动过程
2、了解了启动过程再看下上图备注
2.1、备注1
我们在进入到grub2加载器菜单按:"e" 进入加载项编译模式
按:“e”进入后找到内核加载项以:linux16 /boot/vmlinuz 开头在行尾加上:rd.break 告诉gurb2在这里停下
linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 root=UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 ro vconsole.keymap=us console=tty0 console=ttyS0,115200n8 crashkernel=auto vconsole.font=latarcyrheb-sun16 LANG=en_US.UTF-8 console=tty1
修改后
linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 root=UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 ro vconsole.keymap=us console=tty0 console=ttyS0,115200n8 crashkernel=auto vconsole.font=latarcyrheb-sun16 LANG=en_US.UTF-8 console=tty1 rd.break
2.2、备注2
根据我们修改后grub2 会还未向实际的系统移交控制权限前停下
我们实际恢复root密码的操作是在这里操作的
- 重新挂载/sysroot 已读写的方式
- chroot 修改操作系统为/sysroot
- 执行passwd修改root密码
- 重新打标签因为passwd重新创建了一个不带Selinux标签的/etc/shadow(存密码的我们修改了密码)文件显然这个操作是很有必要的:touch /.autorelabel
- exit
- exit
管理本地 Linux 用户和组
实验成果说明
在本实验中,您将定义默认的密码策略,创建包含三个新用户的补充组,以及修改一个用户的密码策略
1、在 server 上有一个名为 consultants 的新组,三个新用户: sspade bboop dtracy
2、 所有新庄户都应该要求在首次登录时更改密码,并且之后每 30 天进行更改
3、新的顾问账户应当在 90 天合同到期,bboop 账户必须每 15 天更改一次密码
实验详细需求
开始重置您的 server 系统 : rht-vmctl reset server
1、确保新创建的用户具有必须每 30 天修改一次密码
2、新建一个名为: consultants 、GID 为 40000 的组
3、创建三个用户: sspade bboop dtracy 密码为: default ,并且将他们添加到补充组 consultants 中,主组应当保留为用户的专用组
4、确定未来 90 天后的日志,并将新用户均设置为在该日期到期
5、更改 bboop 账户的密码策略,使其 15 天要求创建新密码
6、此外强制所有用户在首次登录时更改密码
7、完成后运行: lab localusers grade 评估此次实验结果
具体实验步骤
. 确保新创建的用户具有必须每 天修改一次密码
1.1 这个需求是对登录用户,针对的是所有用户考虑下login配置文件:/etc/login.defs
# PASS_MAX_DAYS Maximum number of days a password may be used.
PASS_MAX_DAYS 修改为:PASS_MAX_DAYS . 新建一个名为: consultants 、GID 为 的组
2.1. groupadd consultants -g
2.2. 验证 cat /etc/group . 创建三个用户: sspade bboop dtracy 密码为: default ,并且将他们添加到补充组 consultants 中,主组应当保留为用户的专用组
这个需求我们可以useradd name 然后在passwd修改密码我们取巧用for循环搞下 3.1. 执行命令
# stdin 可以从标准输入获取密码就不需要以交互的形式去修改密码了
for i in sspade bboop dtracy; do useradd $i -G consultants; echo default |passwd $i --stdin ; done 3.2. 验证
新用户已添加: cat /etc/passwd
附加组已生效: cat /etc/group # 效果类似:consultants:x::sspade,bboop,dtracy
用户默认30天修改一次密码: chage -l xxxx . 确定未来 天后的日志,并将新用户均设置为在该日期到期
这个地方注意的是如何获取90天后的日志,并确认90天后的日志然后修改用户
4.1. 先通过: date -d "+90day" 获取90天后的日期
4.2. 在确认: cal -y 获取日历年份表根据这个对照
4.3. 在修改: for i in sspade bboop dtracy; do chage -E "2019-09-30" $i ; done
4.4. 验证: chage -l sspade 看:Account expires 账号到期时间 . 更改 bboop 账户的密码策略,使其 天要求创建新密码
这需求就是设定用户多久修改一次密码,单独说一个用户的话
5.1. chage bboop -M
5.2. 验证
[root@server0 ~]# chage -l bboop
Last password change : Jul ,
Password expires : Jul ,
Password inactive : never
Account expires : Sep ,
Minimum number of days between password change :
Maximum number of days between password change :
Number of days of warning before password expires :
[root@server0 ~]# chage bboop -M
[root@server0 ~]# chage -l bboop
Last password change : Jul ,
Password expires : Jul ,
Password inactive : never
Account expires : Sep ,
Minimum number of days between password change :
Maximum number of days between password change : # 这里从配置文件新用户创建30天修改一次密码改成了15天修改一次
Number of days of warning before password expires : . 此外强制所有用户在首次登录时更改密码
6.1 执行命令+验证 # 之前
[root@server0 ~]# chage -l bboop
Last password change : Jul ,
Password expires : Jul ,
Password inactive : never
Account expires : Sep ,
Minimum number of days between password change :
Maximum number of days between password change :
Number of days of warning before password expires : # 执行命令: for i in sspade bboop dtracy; do chage $i -d ; done # 之后
[root@server0 ~]# chage -l bboop
Last password change : password must be changed # 这里都改成必须修改密码了
Password expires : password must be changed # 这里都改成必须修改密码了
Password inactive : password must be changed # 这里都改成必须修改密码了
Account expires : Sep ,
Minimum number of days between password change :
Maximum number of days between password change :
Number of days of warning before password expires : . 完成后运行: lab localusers grade 评估此次实验结果
总体验证: lab localusers grade
管理本地Linux用户和组具体步骤
实验总结:
1、密码过期概念
2、每个概念对应的参数
利用Linux文件系统权限控制文件访问
实验成果说明
在本实验中您将配置包含供用户协作使用的目录的系统
- server 拥有一个名为 /home/stooges 的目录,以下三个用户可以在该目录中协作处理文件
- 只有用户和组可以在 /home/stooges 中访问、创建和删除文件。在此目录中创建的文件自动被分配到 stooges 的组所有权
- 用户创建新文件不可以由族外的人员访问
实验详细需求
开始前重置您的 server 系统,并执行: lab permissions setup
您的 server 计算机有三个账户: curly larry moe 这些账户是名为 stooges 的组的成员
1、打开终端窗口在 server 上成为 root 用户
2、创建 /home/stooges 目录
3、在 /home/stooges 目录中更改组权限,使其属于 stooges 组
4、对 /home/stoogs 目录设置权限,以是 GID 位置目录(2)、所有者(7)、和组(7)具有完全读取,其他用户没有权限(0)
5、检查是否正确设置权限
6、修改全局登录脚本,使普通用户拥有一个 umask 设置,该设置将阻止其他人查看或者修改新的文件和目录
7、完成时 ----打开一个新的终端---- 运行: lab permissions grade 来验证实验结果
实验详细步骤
. 打开终端窗口在 server 上成为 root 用户
. 创建 /home/stooges 目录
2.1. mkdir /home/stooges
2.2. 验证 ls /home
. 在 /home/stooges 目录中更改组权限,使其属于 stooges 组
3.1. chown :stooges /home/stooges
3.2. 验证 ll -d /home/stooges . 对 /home/stoogs 目录设置权限,以是 GID 位置目录()、所有者()、和组()具有完全读取,其他用户没有权限()
4.1. chmod /home/stoogs
4.2. 验证 ls -d /home/stooges
drwxrws---. root stooges Jul : /home/stooges . 检查是否正确设置权限
5.1. 验证 ls -d /home/stooges
drwxrws---. root stooges Jul : /home/stooges
. 修改全局登录脚本,使普通用户拥有一个 umask 设置,该设置将阻止其他人查看或者修改新的文件和目录
6.1 两个文件
/etc/profile
/etc/bashrc 找到umask项目然后修改为
if [ $UID -gt ] && [ "`id -gn`" = "`id -un`" ]; then
umask
else
umask
fi . 完成时 ----打开一个新的终端---- 运行: lab permissions grade 来验证实验结果
验证: lab permissions grade
利用 Linux 文件系统权限控制文件访问
实验总结:
1、正常的权限不需要特别的记: r:w:x 对应数字:4:2:x
2、默认的权限:file 644 dir 755
3、特殊权限需要理解下:
特殊权限 | 对文件的影响 | 对目录的影响 |
u+s(suid) | 以拥有文件的用户身份,而不是运行文件的用户身份执行:例子(ls -l //bin/passwd) | 无~ |
g+s(sgid) | 以拥有文件组的身份执行文件 | 在目录中最新创建的文件将其组所有者设置为恶目录的组所有者相匹配 |
o+t(sticky) | 无~ | 对目录具有写write权限的用户可以删除其所有用的文件,而无法删除或强制保存到其他用户所拥有的文件 例子:ls -ld /tmp |
特殊权限也可以用数值表示(从右往左数第4位):
setuid=4 setgid=2 sticky=1
给文件增加特殊的S权限:
[root@server0 ~]# chmod 4666 file
[root@server0 ~]# ls -l file
-rwSrw-rw-. root root Jul : file
[root@server0 ~]#
给目录增加特殊权限s
[root@server0 ~]# ls -ld dir
drwxr-xr-x. root root Jul : dir
[root@server0 ~]# chmod 2755 dir
[root@server0 ~]# ls -ld dir
drwxr-sr-x. root root Jul : dir
[root@server0 ~]#
给目录增加t权限t
[root@server0 ~]# ls -ld dir2
drwxr-xr-x. root root Jul : dir2
[root@server0 ~]# chmod 1755 dir2
[root@server0 ~]# ls -ld dir2/
drwxr-xr-t. root root Jul : dir2/
[root@server0 ~]#
4、umask 修改默认文件和目录的权限
我们touch 一个文件会发现它的权限是:644 -rw-r--r--
我们mkdir 一个目录会发现他的全显示:755 drwxr-xr-x
你所看的文件和目录的默认权限实际上不是它最大的默认权限
文件的最大默认权限是: 666 -rw-rw-rw-
目录的最大默认权限是: 777 drwxrwxrwx
因为在系统中每一个进程都具有umask,它的作用就是清除该进程创建的新文件和目录的指定权限
执行命令:umask 会看到当前的权限
[root@server0 ~]# umask [root@server0 ~]#
上面那一串的意思:在最大默认权限上做减法
# umask计算后的文件的默认权限(减去2=减去写权限) -
------ # umask计算后的目录的默认权限(减去2=减去写权限) -
------
举个例子:我想创建的目录和文件other用户什么权限也没有怎么办?实际上就是减去other权限位的:读、写、执行权限
[root@server0 ~]# umask # 如果写三位默认特殊权限位为0
[root@server0 ~]# umask [root@server0 ~]# touch
[root@server0 ~]# mkdir dir
[root@server0 ~]# ll
total
-rw-r-----. root root Jul :
drwxr-x---. root root Jul : dir
[root@server0 ~]#
实际使用的永久修改的话:echo "umask 0027" > /etc/profile.d/default_umask.sh 就行每次登陆就会加载default_umask.sh
但是这个实验想pass需要修改:/etc/bashrc /etc/profile 的umask配置
# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt ] && [ "`id -gn`" = "`id -un`" ]; then
umask
else
umask
fi
使用文件ACL控制对文件的访问权限
写在开头吧:就是对基本的文件权限体系的一个增强,基本文件体系天单一了:只有文件所属人、文件所属组、其他权限 在外加3个特殊权限
实验成果说明:
在本实验中您将更新协作目录,将添加ac使其具有适当的权限,同时限定特定的用户和组
实验详细需求:
开始重置您的 server 系统 : rht-vmctl reset server 并在server系统上执行: lab acl setup
执行lab acl setup 会在/shares/ 目录下初始化目录,并初始化linux用户信息
需求:
1 case目录及其内容应该属于组 bakerstreet 。新增至 cases 目录中的文件应自动属于组 bakerstreet 。现有文件应针对用户和组设置为rw(提示:切勿使用setfacl)
2 将 ACL添加至 cases 目录 (及其内容),以允许 scotlandyard 组成员具有文件的 读取/写入权限 以及目录的执行权限。限制用户 jones 使其只具有文件的读取权限和目录的执行权限
3 添加ACL以确保 cases 目录中的任何新文件或者目录均针对所有授权用户和组应用了正确权限
4 验证您已经正确更改了ACL和文件系统(验证步骤,如果对自己操作有信心可以直接指定第5步验证)
4.1 使用 ls 和 getfacl 检查 /shares/cases 上的设置
4.2 切换用户为:holmes 和 lestrade 验证能够写入文件、读取文件、创建目录以及对新目录的文件执行写操作
4.3 切换用户为 jones 尝试写一个文件(应该会失败)并且尝试创建新目录(应该会失败)。使用 jones 用户应该可以读取cases目录中的 adventures.txt 以及读取在 holmes 或 lestrade 新建目录中所编写的“测试” 文件
5 在server上执行命令: lab acl grade 进行验证
实验详细步骤:
#
# case目录及其内容应该属于组 bakerstreet
chown -R :bakerstreet cases
# 新增至 cases 目录中的文件应自动属于组 bakerstreet
chmod g+s cases
# 现有文件应针对用户和组设置为rw(提示:切勿使用setfacl)
chmod cases/* # 2
# 将 ACL添加至 cases 目录 (及其内容),以允许 scotlandyard 组成员具有文件的 读取/写入权限 以及目录的执行权限
setfacl -Rm g:scotlandyard:rwX cases
# 限制用户 jones 使其只具有文件的读取权限和目录的执行权限
setfacl -Rm u:jones:rX cases # 3
# 添加ACL以确保 cases 目录中的任何新文件或者目录均针对所有授权用户和组应用了正确权限
# 这句话可能有点绕,确保cases目录中的任何“”新文件“” 也就是默认权限需要注意下
setfacl -d -Rm g:scotlandyard:rwX cases
setfacl -d -Rm u:jones:rX cases # 4
# 查看结果对比
[root@server0 shares]# ll -d cases
drwxrws---+ 4 root bakerstreet 113 7月 12 06:29 cases
[root@server0 shares]# ll cases/
总用量 32
-rw-rw----+ 1 root bakerstreet 22 7月 12 06:29 adventures.txt
-rw-rw----+ 1 root bakerstreet 8 7月 12 06:29 do_NOT_delete.grading.txt
drwxrws---+ 2 gregson bakerstreet 21 7月 12 06:29 gregson.dir
-rw-rw----+ 1 root bakerstreet 38 7月 12 06:29 moriarty.txt
drwxrws---+ 2 watson bakerstreet 21 7月 12 06:29 watson.dir
[root@server0 shares]#
[root@server0 shares]#
[root@server0 shares]# getfacl cases
# file: cases
# owner: root
# group: bakerstreet
# flags: -s-
user::rwx
user:jones:r-x
group::rwx
group:scotlandyard:rwx
mask::rwx
other::---
default:user::rwx
default:user:jones:r-x
default:group::rwx
default:group:scotlandyard:rwx
default:mask::rwx
default:other::--- 使用文件ACL控制对文件的访问权限 详细步骤
使用文件ACL控制对文件的访问权限 详细步骤
实验总结:
1 默认也有acl属性
文件或目录acl权限,其实就是对现有权限不足的一个扩展
默认他也是有acl属性的 [root@server0 shares]# ll
总用量
drwxrwx---. root root 7月 : cases
drwxrws---+ root controller 7月 : steamies
[root@server0 shares]# getfacl cases
# file: cases
# owner: root
# group: root
user::rwx
group::rwx
other::--- [root@server0 shares]# pwd
/shares
[root@server0 shares]#
2、应用acl后文件权限项后面有个加号,标识启用了acl
# 当我们给他们添加了acl属性后看下
# drwsrws---+ 在权限这里有个:"+" 对比之前是 drwxrwx---. 当有个加号的时候标记这个文件或目录已经应用了acl
[root@server0 shares]# ll
drwsrws---+ shuai controller Jul : steamies
3、acl优先级
3.1 首先注意一点acl包含了现有权限,它可以理解为现有权限的扩展,当我们启用了acl之后看acl的权限即可
3.2 acl掩码概念 .....
mask::rwx # 这一行就是掩码掩码规定了:指定用户、指定用户组、组 的最大权限
..... 3.2. 可以理解为何umask差不多的概念它:定义了程序运行的最大权限
3.2. 文件属主(文件的用户)、other 不受掩码限制
3.2. acl指定的用户、acl指定用户组、用户组、受掩码限制 ,不过还蛮友善的给出你经过mask降级后的实际权限(#effective:xxx) 例子:
[root@server0 shares]# getfacl test
# file: test
# owner: watson
# group: bakerstreet
user::rwx
user:james:rwx #effective:rw-
group::rwx #effective:rw-
group:scotlandyard:rwx #effective:rw-
mask::rw-
other::r-x 3.3 例子运行匹配
如果以文件所有者watson身份执行则调用:(文件用户ACL权限) 且不受掩码限制
user::rwx 如果以指定用户ACL条目中列出的用户身份运行,则应用指定用户权限
例如:用james 执行文件就应用:user:james:rwx 权限 前提掩码也的有权限: mask::rwx 允许
如果掩码是没有权限: mask::rw- 那么user:james:rwx 的最大权限就自动降为rw- 如果以文件组所有者相匹配的组身份运行或者以ACL条目中列出的指定用户组运行,则应用相应匹配的ACL
例如用: 文件所属组 bakerstreet 这个组运行 那么就应用:group::rwx 权限
前提掩码也的有可执行权限:mask::rwx 允许
如果掩码是没有可执行权限:mask::rw- 那么 bakerstreet 这个组不允许执行 或用ACL列表中指定的组: group:scotlandyard:rwx 运行就应用: group:scotlandyard:rwx 权限
前提掩码也的有可执行权限:mask::rwx 允许
如果掩码是没有可执行权限:mask::rw- 那么 scotlandyard 这个组不允许执行 # 否则应用文件的other权限,且不受掩码限制
安装和更新软件包
实验成果说明:
说明:在本实验中您将使用yum安装和更新选定的软件包
成功:系统上安装新的和更新软件包
实验详细需求:
开始重置您的 server 系统 : rht-vmctl reset server
需求:
1 创建文件:/etc/yum.repos.d/errata.repo,以启用在 content 计算机上找到的"更新"存储库。它应该访问在一下的 URL 中找到:http://content.example.com/rhel7.0/x86_64/errata ,且不要检查 GPG 签名
2 将 server 配置为遵循非常具体的软件要求,它必须安装有一下软件包的最新版本。请勿安装所有更新。仅安装列出的软件包更新(如果这些更新可用)
- 内核(更新现有包)
- xsane-gimp (新软件包)
- rht-system (新软件包)
- 鉴于安全原因,不应当装有 wvdial 软件包
3 当您准备好检查您的工作时,请在 server 上运行 lab software grade
实验详细步骤
添加配置
vim /etc/yum.repos.d/errata.repo
[errata]
name=errata
baseurl=http://content.example.com/rhel7.0/x86_64/errata
gpgcheck= 安装要求的包
yum -y install xsane-gimp rht-system 卸载需求需要卸载的包
yum remove -y wvdial 验证
lab software grade
安装和更新软件包详细步骤
实验总结:
1、yum源baseurl指定的目标是什么
不管是Centos还是RedHat我们要找一个目录,这个目录包含两个文件目录:
- Packages (这个是实际仓库存的东西)
- repodata (这个目录是这个yum仓库的清单信息它里面包含了这个库里都有啥) # 一般Centos的(Packages和repodata)在这个路径下,那么baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/
# redhat同理
http://mirrors.aliyun.com/centos/7/os/x86_64/ # baseurl可以写成变量
http://mirrors.163.com/centos/$releasever/os/$arch/ $releasever 这个变量是来自于centos-release包的Version字段 大系统版本
$arch 这个变量是来自于centos-release包的Architecture字段 CPU架构 [xxxxxxx ~]# rpm -qi centos-release
Name : centos-release
Version :
Release : 4.1708.el7.centos
Architecture: x86_64
Install Date: Fri Nov :: PM CST
Group : System Environment/Base
Size :
License : GPLv2
Signature : RSA/SHA256, Thu Aug :: AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM : centos-release--4.1708.el7.centos.src.rpm
Build Date : Wed Aug :: PM CST
Build Host : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
Summary : CentOS Linux release file
Description :
CentOS Linux release files
2、gpgcheck=0 或者1
先了解什么是gpgcheck它是一种数字签名检查,如果启用gpg验证,yum install的时候就会拿着这个这个签名验证你是否安装的是正确的包而不是第三方修改过或者和黑客修改后的包
一般在Packages、repodata目录所在的同级别目录中有一个:RPM-GPG-KEY-CentOS-7 下载并在配置文件制定下载后的文件路径:gpgkey=file:///etc/pki/rpm-gpg/xxxxxx,然后就可以启用验证了gpgcheck=1
逻辑卷管理(LVM)
实验成果说明:
在此实验中,您将根据现有逻辑卷大小,同时根据需要添加LVM资源,然后添加一个新的逻辑卷,该逻辑卷带有永久挂载的XFS文件系统
实验详细需求:
开始重置您的 server 系统 : rht-vmctl reset server 并在server系统上执行: lab lvm setup
1、在/dev/vdb上创建 512 Mib分区,将其初始化为物理卷,然后使用他来扩展finance卷组
2、将loans逻辑卷扩展到 768 Mib,包括文件系统
3、在现有卷组中,创建名为 risk 且大小为 128 MiB的一个新逻辑卷,添加XFS文件系统,并将其挂于 /finance/risk
4、完成工作后重新启动 server计算机,然后从server计算机运行命令: lab lvm grade 验证
实验详细步骤:
、在/dev/vdb上创建 Mib分区,将其初始化为物理卷,然后使用他来扩展finance卷组 # 先创建一个LVM的分区,类型选择:8e
fdisk /dev/vdb /dev/vdb1 8e Linux LVM
/dev/vdb2 8e Linux LVM # new # 执行命令 partprobe 分区检索,否则检索不到新分区
partprobe # 转换为pv物理卷
[root@server0 ~]# pvcreate /dev/vdb2
Physical volume "/dev/vdb2" successfully created # 扩展卷组
[root@server0 ~]# vgextend finance /dev/vdb2
Volume group "finance" successfully extended # 逻辑卷是在卷组基础上创建的,扩展逻辑卷
[root@server0 ~]# lvextend -L 786M /dev/finance/loans
Rounding size to boundary between physical extents: 788.00 MiB
Extending logical volume loans to 788.00 MiB
Logical volume loans successfully resized
[root@server0 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
loans finance -wi-ao---- 788.00m
[root@server0 ~]# 、将loans逻辑卷扩展到 Mib,包括文件系统 # 扩容文件系统
[root@server0 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/vda1 10G .0G .1G % /
devtmpfs 906M 906M % /dev
tmpfs 921M 80K 921M % /dev/shm
tmpfs 921M 17M 904M % /run
tmpfs 921M 921M % /sys/fs/cgroup
/dev/mapper/finance-loans 253M 13M 240M % /finance/loans [root@server0 ~]# xfs_growfs /finance/loans
meta-data=/dev/mapper/finance-loans isize= agcount=, agsize= blks
= sectsz= attr=, projid32bit=
= crc=
data = bsize= blocks=, imaxpct=
= sunit= swidth= blks
naming =version bsize= ascii-ci= ftype=
log =internal bsize= blocks=, version=
= sectsz= sunit= blks, lazy-count=
realtime =none extsz= blocks=, rtextents=
data blocks changed from to [root@server0 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/vda1 10G .0G .1G % /
devtmpfs 906M 906M % /dev
tmpfs 921M 80K 921M % /dev/shm
tmpfs 921M 17M 904M % /run
tmpfs 921M 921M % /sys/fs/cgroup
/dev/mapper/finance-loans 785M 14M 772M % /finance/loans 、在现有卷组中,创建名为 risk 且大小为 MiB的一个新逻辑卷,添加XFS文件系统,并将其挂于 /finance/risk # 创建新逻辑卷
[root@server0 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
loans finance -wi-ao---- 788.00m [root@server0 ~]# lvcreate finance -L 128M --name risk
Logical volume "risk" created
[root@server0 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
loans finance -wi-ao---- 788.00m
risk finance -wi-a----- 128.00m # 格式化为xfs文件系统
[root@server0 ~]# mkfs.xfs /dev/finance/risk
meta-data=/dev/finance/risk isize= agcount=, agsize= blks
= sectsz= attr=, projid32bit=
= crc=
data = bsize= blocks=, imaxpct=
= sunit= swidth= blks
naming =version bsize= ascii-ci= ftype=
log =internal log bsize= blocks=, version=
= sectsz= sunit= blks, lazy-count=
realtime =none extsz= blocks=, rtextents= # 创建挂载点并修改fstab
[root@server0 ~]# mkdir -p /finance/risk
[root@server0 ~]# vim /etc/fstab
# 新增
/dev/finance/risk /finance/risk xfs defaults 、完成工作后重新启动 server计算机,然后从server计算机运行命令: lab lvm grade 验证 lab lvm grade
逻辑卷管理 详细实验步骤
实验总结:
1、LVM逻辑图
2、比较不错的实践
系统盘:RAID 1 /dev/sda
数据盘:RAID5 /dev/sdb 用sdb创建LVM分区-->创建物理卷-->把物理卷加入到卷组-->创建N个逻辑卷
添加启用SWAP分区(交换分区)
实验成果说明:
创建并启用swap分区
实验详细需求:
1、创建1个500M的swap交换分区
实验详细步骤:
、创建SWAP类型的分区 # 创建分区并设置分区类型为swap [root@server0 ~]# fdisk /dev/vdb
欢迎使用 fdisk (util-linux 2.23.)。 更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。 Device does not contain a recognized partition table
使用磁盘标识符 0x78cd0f7c 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):n
Partition type:
p primary ( primary, extended, free)
e extended
Select (default p): p
分区号 (-,默认 ):
起始 扇区 (-,默认为 ):
将使用默认值
Last 扇区, +扇区 or +size{K,M,G} (-,默认为 ):+500M
分区 已设置为 Linux 类型,大小设为 MiB 命令(输入 m 获取帮助):t
已选择分区
Hex 代码(输入 L 列出所有代码):
已将分区“Linux”的类型更改为“Linux swap / Solaris” 命令(输入 m 获取帮助):p 磁盘 /dev/vdb:10.7 GB, 字节, 个扇区
Units = 扇区 of * = bytes
扇区大小(逻辑/物理): 字节 / 字节
I/O 大小(最小/最佳): 字节 / 字节
磁盘标签类型:dos
磁盘标识符:0x78cd0f7c 设备 Boot Start End Blocks Id System
/dev/vdb1 Linux swap / Solaris 命令(输入 m 获取帮助):w
The partition table has been altered! Calling ioctl() to re-read partition table.
正在同步磁盘。 # 分区检索
[root@server0 ~]# partprobe # 初始化为swap分区
[root@server0 ~]# mkswap /dev/vdb1
正在设置交换空间版本 ,大小 = KiB
无标签,UUID=b5751a60-e080-4cbd-9fda-14cba16041d7 、新增fstab挂载 # 获取分区UUID
[root@server0 ~]# blkid
/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"
/dev/vdb1: UUID="b5751a60-e080-4cbd-9fda-14cba16041d7" TYPE="swap" # 新增挂载配置
[root@server0 ~]# vim /etc/fstab
UUID=b5751a60-e080-4cbd-9fda-14cba16041d7 swap swap defaults # 测试激活交换分区
[root@server0 ~]# free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap: # 重启测试交换分区还存在
添加启用swap交换分区 详细实验步骤
实验总结:
1、什么是SWAP分区
一个进程启动需要相应的物理内存空间,当物理内存不够用的时候,会把空闲的进程使用的内存写入到SWAP分区(硬盘上)把腾出来的额内存给其他进程使用,如果进程需要访问写入到SWAP分区的内容同理把其他进程空闲的内存腾出来写入到SWAP在把SWAP数据读出来写到物理内存
2、SWAP分区的优缺点
优点:SWAP相当于一个缓冲区,不至于当内存用完新程序或需要使用内存的程序无法正常运行
缺点:SWAP分区毕竟是硬盘和物理内存比起来非常慢
autofs自动挂载文件系统
实验成果说明:
在此实验中,您将安装一个软件包以支持自动挂载文件系统,本实验是基于ldap & krb5验证 + nfs (lab nfs setup)这些都已经初始化完了,我们只需要配置autofs即可
实验详细需求:
开始重置您的 desktop 系统 : rht-vmctl reset desktop 并在 desktop 系统上执行:lab nfs setup
classroom.example.com 正在共享/home/guests
desktop0 挂载点/home/guests/ldapuser0
用户名:ldapuser0 密码:kerberos
1、安装自动挂载home目录所需的任何包
2、添加配置文件(必须以.autofs结尾)和映射文件(必须以auto.开头)
3、启用并启动自动挂载服务
4、使用ssh切换到localhost上的ldapuser0,然后确认:挂载是否OK、读取/写入权限是否OK
5、重新启动desktop0计算,然后从desktop0计算执行命令:lab nfs grade 验证
实验详细步骤:
、安装自动挂载home目录所需的任何包 # 安装autofs
[root@desktop0 ~]# yum -y install autofs 、添加配置文件(必须以.autofs结尾)和映射文件(必须以auto.开头) # 添加配置文件
[root@desktop0 ~]# vim /etc/auto.master.d/nfs.autofs
#挂载的目录 映射配置文件
/- /etc/auto.home # 添加映射文件
[root@desktop0 ~]# vim /etc/auto.home
#挂载点 挂载选项 要挂载的文件系统
/home/guests -typefs=rw classroom.example.com:/home/guests 、启用并启动自动挂载服务
# 启动服务、检查状态、并设置开机启动
[root@desktop0 ~]# systemctl start autofs.service
[root@desktop0 ~]# systemctl status autofs.service
[root@desktop0 ~]# systemctl enable autofs.service 、使用ssh切换到localhost上的ldapuser0,然后确认:挂载是否OK、读取/写入权限是否OK
ssh ldapuser0@localhost # 没有报错创建文件正常、挂载正常即可 、重新启动desktop0计算,然后从desktop0计算执行命令:lab nfs grade 验证
lab nfs grade
autofs自动挂载文件系统 详细步骤
实验总结:
1、autofs是什么以及应用场景
挂载共享资源存在两个问题
- 将挂载信息写入到/etc/fstab文件中,可实现开机自动挂载。但是如果远程共享资源过多,则会给网络带宽和服务器的硬件资源带来很大负载。
- 如果挂载的资源长期不使用,也会造成服务器资源的浪费。
autofs就是为了解决上面两个问题而存在的:autofs自动挂载服务是一种Linux系统守护进程,当检测到用户视图访问一个尚未挂载的文件系统时,会自动挂载该文件系统。简单来说,将挂载信息写入/etc/fstab文件中,系统在每次开机时都会自动挂载,而autofs服务则是在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器硬件资源的开销。
2、两种配置文件,我感觉其实是可以放在一起但是为啥要拆两个(最终把classroom.example.com:/home/guests共享挂载到:/目录的,/home/guests这个点上)
########### 自动挂载配置文件
[root@desktop0 ~]# cat /etc/auto.master.d/nfs.autofs
#挂载的目录 映射配置文件
/- /etc/auto.home ########### 自动挂载配置文件的映射文件
[root@desktop0 ~]# cat /etc/auto.home
#挂载点 挂载选项 要挂载的文件系统
/home/guests -typefs=rw classroom.example.com:/home/guests
管理SElinux安全
实验成果说明:
在本实验中,您将解决SElinux访问被拒绝的问题,在SElinux处于强制模式时,系统管理员使用新web服务器向客户端交付内容时遇到的问题解决它
实验详细需求:
开始重置您的 server 系统 : rht-vmctl reset server 并初始化:lab selinux setup
1、在server上启动web浏览器并浏览至:http://localhost/lab-content 将会看到一个错误
2、研究并切丁正在阻止Apache提供Web内容服务的SElinux问题
3、解决正在阻止Apache提供Web内容服务的SElinux问题
4、验证SElinux问题已经解决,斌企鹅Apache能够提供Web内容服务
5、运行lab selinux grade命令确认您的结论
具体实验步骤:
看日志 /var/log/message
```
Jul :: localhost setroubleshoot: SELinux is preventing /usr/sbin/httpd from open access on the file . For complete SELinux messages. run sealert -l a4e40289-984d-4a57-b791-e0520a066046
Jul :: localhost python: SELinux is preventing /usr/sbin/httpd from open access on the file . ***** Plugin catchall_boolean (89.3 confidence) suggests ****************** If you want to allow httpd to read user content
Then you must tell SELinux about this by enabling the 'httpd_read_user_content' boolean. Do
setsebool -P httpd_read_user_content
```
报错都提醒你如何处理selinux了,执行命令:setsebool -P httpd_read_user_content /var/log/httpd/error_log
```
[Fri Jul ::06.582895 ] [core:error] [pid ] ()Permission denied: [client :::] AH00132: file permissions deny server access: /var/web-content/lab-content/index.html
```
httpd 也会有提示关注下 查看目录和文件的上下文
```
ls -dZ /var/web-content /var/www
drwxr-xr-x. root root unconfined_u:object_r:var_t:s0 /var/web-content
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www
```
修改目录和文件的默认上下文
```
semanage fcontext -a -t httpd_sys_content_t '/var/web-content(/.*)'
```
还原目录和文件的默认上下文
```
restorecon -R web-content/
```
管理SElinux安全详细步骤
实验总结:
1、文件权限后面有个“.” 说明该文件打上了selinux标签
系统在启动的时候回自动打标签:
-rw-r--r--. 1 root root 0 7月 12 13:10 no_label
禁用selinux后,新创建的文件就不会有selinux标签了
-rw-r--r--. 1 root root 0 7月 12 13:10 label
-rw-r--r-- 1 root root 0 7月 12 13:26 no_label
2、新创建的文件会继承目录的“上下文标签”
适用于:vim、cp、touch
如果在其他位置创建的并且权限得以保留比如:mv、cp -a 那么还会保留之前的“上下文标签”
3、selinux 有两个模式:
[root@server0 shares]# setenforce
usage: setenforce [ Enforcing | Permissive | | ] # 强制模式
Enforcing 遵守策略规则并记录冲突(异常)
# 启用强制模式
setenforce Enforcing 或者 setenforce # 许可模式
策略规则冲突仅记录日志消息
# 启用策略模式
setenforce Permissive 或者 setenforce
4、小总结
selinux “上下文标签” 由4个部分组成由 ":" 分隔
user:role:type:level user: 用户
- system_u: 系统用户大部分就是系统自己产生的文件
- unconfined_u:不受限的用户,也就是说该文件来自于不受限的进程所产生的
基本上,如果是系统或软件本身所提供的文件,大多数就是system_u这个身份名称,而如果是我们用户透过bash自己建立的文件,则大多数是不受限制的,如果是网络服务所产生的的文件,或者系统服务运行过程中的文件,则大部分的识别就会是system_u 查看登录用户和selinux用户映射关系
[root@server0 shares]# semanage login -l 登录名 SELinux 用户 MLS/MCS 范围 服务 __default__ unconfined_u s0-s0:c0.c1023 *
root unconfined_u s0-s0:c0.c1023 *
system_u system_u s0-s0:c0.c1023 * role:角色
透过角色字段,我们可以知道这个资料是属于进程,文件资源还是使用者。
object_r:代表的是文件或目录等文件资源
system_r:代表的就是进程 type:类型 [root@server0 shares]# ll /var/www -Z
drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html 因为selinux是类型强制所以一般我们只需要关注类型就可以 context查询工具seinfo、sesearch
yum install setools-console # 工具 ```
seinfo -u # 查询所有的user字段的种类
seinfo -r # 查询所有的role字段的种类
seinfo -t # 查询所有的type字段的种类 sesearch -A 可以查询什么类型进程可以读取什么type类型的文件
sesearch -A -s 进程type # 查询type类型的进程能够读取的文件type
``` 总结:
进程也有一个标签
标签对应:
标签可以访问那些 标签
标签对资源的权限属性
firewall限制网络(新一代防火墙替代iptables)
实验成果说明:
在此实验中,您将在server0服务器上配置防火墙,以阻止对ssh和端口8080/TCP上运行Web以外服务的访问
实验详细需求:
开始重置您的 server 系统 : rht-vmctl reset server 并在server系统上执行: lab firewall setup
1、配置系统,使iptables和ip6iptables服务不会被管理员以外启动
2、检查firewalld服务是否正在运行。如果未运行其启动该服务
3、验证默认防火墙区域是否是public
4、确保public区域的永久配置中没有打开不需要的端口
5、向public区域的永久配置添加端口8080/TCP验证配置
6、重新启动server0计算机(为进行快速测试,也可以使用sudo firewall-cmd --reload)
7、从desktop计算机运行:lab firewall grade 进行验证
实验详细步骤:
、配置系统,使iptables和 ip6iptables 服务不会被管理员以外启动
[root@server0 ~]# systemctl status iptables
iptables.service - IPv4 firewall with iptables
Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled)
Active: inactive (dead) [root@server0 ~]# systemctl mask iptables.service
ln -s '/dev/null' '/etc/systemd/system/iptables.service'
[root@server0 ~]# systemctl status iptables
iptables.service
Loaded: masked (/dev/null)
Active: inactive (dead) [root@server0 ~]# systemctl status ip6tables
ip6tables.service - IPv6 firewall with ip6tables
Loaded: loaded (/usr/lib/systemd/system/ip6tables.service; disabled)
Active: inactive (dead) [root@server0 ~]# systemctl mask ip6tables.service
ln -s '/dev/null' '/etc/systemd/system/ip6tables.service'
[root@server0 ~]# systemctl status ip6tables
ip6tables.service
Loaded: masked (/dev/null)
Active: inactive (dead) 、检查firewalld服务是否正在运行。如果未运行其启动该服务
[root@server0 ~]# systemctl status firewalld.service
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
Active: inactive (dead) since 六 -- :: CST; 4min 22s ago
Main PID: (code=exited, status=/SUCCESS) 7月 :: localhost systemd[]: Started firewalld - dynamic firewall daemon.
7月 :: server0.example.com systemd[]: Stopping firewalld - dynamic firewall daemon...
7月 :: server0.example.com systemd[]: Stopped firewalld - dynamic firewall daemon. [root@server0 ~]# systemctl start firewalld.service
[root@server0 ~]# systemctl status firewalld.service
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
Active: active (running) since 六 -- :: CST; 2s ago
Main PID: (firewalld)
CGroup: /system.slice/firewalld.service
└─ /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid 7月 :: server0.example.com systemd[]: Starting firewalld - dynamic firewall daemon...
7月 :: server0.example.com systemd[]: Started firewalld - dynamic firewall daemon. 、验证默认防火墙区域是否是public
[root@server0 ~]# firewall-cmd --get-default-zone
public # 如果不是
[root@server0 ~]# firewall-cmd --set-default-zone=public 、确保public区域的永久配置中没有打开不需要的端口(永久配置重启还会生效,当前配置仅当前用用重启恢复为永久配置) [root@server0 ~]# firewall-cmd --list-ports --permanent # 永久配置
[root@server0 ~]# firewall-cmd --list-ports # 当前加载 [root@server0 ~]# firewall-cmd --list-services # 当前加载配置
dhcpv6-client ssh
[root@server0 ~]# firewall-cmd --list-services --permanent # 永久配置
dhcpv6-client ssh
[root@server0 ~]# # 有多余的服务,干掉dhcpv6-client
[root@server0 ~]# firewall-cmd --remove-service=dhcpv6-client --permanent # 永久配置
success
[root@server0 ~]# firewall-cmd --remove-service=dhcpv6-client # 当前加载
success
[root@server0 ~]# 、向public区域的永久配置添加端口8080/TCP验证配置
[root@server0 ~]# firewall-cmd --add-port=/tcp --permanent
success
[root@server0 ~]# firewall-cmd --add-port=/tcp
success 、重新启动server0计算机(为进行快速测试,也可以使用sudo firewall-cmd --reload)
# reload验证
[root@server0 ~]# firewall-cmd --reload
success
[root@server0 ~]# firewall-cmd --list-ports --permanent
/tcp
[root@server0 ~]# firewall-cmd --list-ports
/tcp
[root@server0 ~]# firewall-cmd --list-services --permanent
ssh
[root@server0 ~]# firewall-cmd --list-services
ssh
[root@server0 ~]# 、从desktop计算机运行:lab firewall grade 进行验证 # 登录desktop
lab firewall grade
firewall限制网络 详细操作步骤
实验总结:
1、多个区域的概念
- 多个区域是同时运行着的,默认区域是其中的一个运行区域而已
2、正常区域只是个逻辑上的概念(区域里有一些默认的配置),来看它的匹配方式
- 第一:如果一个客户端数据包的源 IP 地址匹配,匹配到某一个zone中的规则了(防止歧义就用详细的IP:1.1.1.1),那么就应用这个zone的这个规则
- 第二:如果一个客户端数据包进入服务器的某一个接口(如 eth0),如果不满足第一条就应用这个zone的默认规则
- 如果上面两个都满足就应用默认zone规则
一些练习命令
crontab
* * * * * = 分 时 日 月 周 先定义5个时间位置 先拆开理解 ----------------------分 时 日 月-------------------------
* * * * 前4个时间位置: 分 时 日 月 分钟明确的时候:
* * * * xxx 分 # 1个小时有60分钟,第10分钟只会在每个小时出现一次(明确)
时 # 每天有24个小时,小时不明确所以24个小时都执行 (不明确)
日 # 没月有31天,天不明确所以每天都执行 (不明确)
月 # 每年有12个月,月不明确而所以每月都执行 (不明确) # 每个月的、每天的、每小时的第10分钟执行一次 简化下:每小时第10分钟执行 小时也明确的时候-例子1:
* * * * xxx 分 # 分钟不明确所以:每分钟要执行 (不明确)
时 # 小时明确10点,1天有24个小时,每天10点只会在每天出现一次 (明确)
日 # 没月有31天,天不明确所以每天都执行 (不明确)
月 # 每年有12个月,月不明确而所以每月都执行 (不明确) # 每个月的、每天的第10小时的、每分钟都执行 简化下:每天10点,每分钟都执行 小时也明确的时候-例子2:
* * * xxx 分 # 1个小时有60分钟,第10分钟只会在每个小时出现一次(明确)
时 # 小时明确10点,1天有24个小时,每天10点只会在每天出现一次 (明确)
日 # 没月有31天,天不明确所以每天都执行 (不明确)
月 # 每年有12个月,月不明确而所以每月都执行 (不明确) # 每个月的、每天的第10小时的、第10小时的、第10分钟 简化下:每天10点10分执行一次 ----------------------周------------------------- # 周这个时间位置可以理解为:且关系判断 * * * 这个是每天1点1分执行1次
* * 当我们定义周1了之后,就会进行判断: 每天1点1分,并且今天是周1才执行
tar
关注3个命令就好:
命令格式:
# 打压缩包
tar -cf[-j,-J,-z] build.[bzip2,xz,gizp] source
# 解压缩包
tar -xf[-j,-J,-z] build.[bzip2,xz,gizp] source # 参数
-j, --bzip2
-J, --xz
-z, --gzip
服务器加入LDAP
重要记住安装那个包:sssd authconfig-gtk brb5-workstation
# sssd是什么
一个守护进程,该进程可以用来访问多种验证服务器,如LDAP,Kerberos等,并提供授权。 SSSD是 介于本地用户和数据存储之间的进程,本地客户端首先连接SSSD,再由SSSD联系外部资源提供者(一台远程服务器) # sssd优势
()避免了本地每个客户端程序对认证服务器大量连接,所有本地程序仅联系SSSD,由SSSD连接认证服务器或SSSD缓存,有效的降低了负载。
()允许离线授权,SSSD可以缓存远程服务器的用户认证身份,这允许在远程认证服务器宕机是,继续成功授权用户访问必要的资源。 SSSD默认配置文件位于/etc/sssd/sssd.conf,你可以通过命令使得SSSD以指定的配置文件运行:
#sssd –c /etc/sssd/customfile.conf -------------------------------------------------------------------------------------------------
# authconfig-gtk 是什么
authconfig-gtk 图形化工具提供了配置下面4个服务的图形终端:
- NIS
- LDAP
- Kerbero5
- Winbind -------------------------------------------------------------------------------------------------
# krb5-workstation Kerberos工具包,Kerberos:Kerberos是一种计算机网络认证协议,它允许某实体在非安全网络环境下通信,向另一个实体以一种安全的方式证明自己的身份
Kerberos工作原理图
实验所需信息
名称 | 值 |
LDAP服务器 | ldap://classroom.example.com |
LDAP基础DN | dc=example,dc=com |
使用TLS | 是 |
根CA | http://classroom.example.com/pub/example-ca.crt |
Kerberos域 | EXAMPLE.COM |
Kerberos KDC | classroom.example.com |
Kerberos 管理服务器 | classroom.example.com |
验证
[root@desktop0 ~]# getent passwd ldapuser0
ldapuser0:*:::LDAP Test User :/home/guests/ldapuser0:/bin/bash
[root@desktop0 ~]#
[root@desktop0 ~]#
[root@desktop0 ~]# ssh ldapuser0@localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is :4d:ac:8a:c9:::b5:0c::c4:ef:a5:e6:f6:.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
ldapuser0@localhost's password:
Creating home directory for ldapuser0.
[ldapuser0@desktop0 ~]$
NTP调整系统时区和时间
记住一个命令就好:tzselect
RHCE实验总结-点我跳转
练习环境获取方法
1、关注公众号
2、输入:rhce
--end--
RHCE实验记录总结-1-RHCSA的更多相关文章
- RHCE实验记录总结-2-RHCE
RHCSA实验总结-点击跳转 RHCE实验 RHCE这边我简单分了下类: ## 网络与安全 1. IPv6 设置(推荐使用GUI程序 nm-connection-editor来完成) 2. team ...
- 实验记录:Oracle redo logfile的resize过程
实验记录:Oracle redo logfile的resize过程. 实验环境:RHEL 6.4 + Oracle 11.2.0.3 单实例 文件系统 实验目的:本实验是修改redo logfile的 ...
- case7 淋巴瘤子类分类实验记录
case7 淋巴瘤子类分类实验记录 简介 分类问题:3分类 (identifying three sub-types of lymphoma: Chronic Lymphocytic Leukemia ...
- 使用Scapy向Mininet交换机注入流量 实验记录
使用Scapy向Mininet交换机注入流量 实验记录 用Python脚本及Scapy库写了一个简单的流量生成脚本,并打算使用该脚本往Mininet中的OpenvSwitch交换机注入流量.拓扑图如下 ...
- 树莓派4B智能小车机器套件——入手组装实验记录
树莓派4B智能小车机器套件--入手组装实验记录 4WD智能小车(4WD SMART ROBOT KIT),支持Arduino.51.STM32.Raspberry Pi等4个版本.本套件采用的是树莓派 ...
- CSAPP:datalab实验记录
CSAPP:datalab实验记录 bitXor /* * bitXor - x^y using only ~ and & * Example: bitXor(4, 5) = 1 * Lega ...
- 实验记录三 通用输入输出(GPIO)
之前把全部程序都跑了一次后,得到了导师下一步的安排. 例如以下: 1.编写一个程序.实如今LCD上显示一个万年历,包含年月日 星期 还有室内的温度.2.编写一个程序,将原来的交通灯改为跑马灯. 期限是 ...
- fcn+caffe+siftflow实验记录
环境搭建: vs2013,编译caffe工程,cuda8.0,cudnn5.1,python2.7. 还需要安装python的一些包.Numpy+mkl scipy matplotlib sci ...
- 【伊利丹】Hadoop2.0 NN HA实验记录
1.关于Hadoop2.2.0中HA的介绍 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDUxMjEyNA==/font/5a6L5L2T/fo ...
随机推荐
- WPF DataGrid显示MySQL查询信息,且可删除、修改、插入 (原发布 csdn 2018-10-13 20:07:28)
1.入行好几年了,工作中使用数据库几率很小(传统行业).借着十一假期回家机会,学习下数据库. 2.初次了解数据库相关知识,如果本文有误,还望告知. 3.本文主要目的,记录下wpf界面显示数据库信息,且 ...
- sql server 列字段拼接 —— STUFF
原始数据: sql语句 SELECT DISTINCT l.family_id, )) ,,'' ) isc_id FROM dbo.Addresses l 结果数据:
- 为什么要做外链建设?seo优化与发布外链速度有哪些联系?
对于SEO员工来说,我们每天都在处理网页.从内容创建的角度来看,我们每天创建大量的URL并进入索引状态.与网站的受欢迎程度相比,网站每天也会生成大量的外部链接. 实际上,相对于链接而言,它满足了搜索引 ...
- H265码流分析
H265相比较于H264,除了包含SPS.PPS外,还多包含一个VPS:在NALU header上,H.264的HALU header是一个字节,而H.265则是两个字节. 以OX4001为例,头信息 ...
- 如何在CAD中批量打印图纸?这种方法你要知道
CAD图纸都是使用CAD制图软件进行设计出来的,图纸的格式均为dwg格式的,不方便进行使用.就需要将图纸进行打印出来.多张CAD图纸如果一张一张进行打印速度就会非常的慢,那就可以使用CAD中的批量打印 ...
- arcgis api for javascript 学习(六) 地图打印
1.本文应用arcgis api for javascript对发布的动态地图进行打印,打印的为PDF格式,打印出来如图: 2.需要特别注意的是:我们在运行代码前,需要打开PrintingTools, ...
- 微信小程序json与xml互相转换
1.首先在目录结构中引入必要的js文件 https://files.cnblogs.com/files/qianyou304/x2j.rar 2.js中代码如下:(部分)json 2 xml var ...
- Hive性能调优(二)----数据倾斜
Hive在分布式运行的时候最害怕的是数据倾斜,这是由于分布式系统的特性决定的,因为分布式系统之所以很快是由于作业平均分配给了不同的节点,不同节点同心协力,从而达到更快处理完作业的目的. Hive中数据 ...
- vue+hammer.js完美实现长按、左滑,右滑等触控事件
移动端使用手指直接操作的方式大受用户欢迎,这其中就包括了单点.多点.长按.双击等方式. 这么多触控事件,如果开发者自己实现,会浪费大量的时间和精力,快来看看 hammer.js 让我们轻松了多少吧. ...
- Linux 登录 MySQL 报错, 解决bash: mysql: command not found 的方法
原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件. 首先得知道mysql ...