无论是运维仍是开发系统的了解下Linux或者系统的温习整理一下Linux知识点无疑是较好的,这篇文章是对RHCSA&RHCE实验进行一个汇总,是我为了作实验方便(并分享给朋友)的一篇文章。html
系统版本:Centos7python
虚拟环境:文章下方linux
一、看下第一个实验的例子,其实要是重置密码步骤:第一步干了什么、第二步干了什么也是能够重置密码的(仅仅是作好这个实验而已)web
二、拿第一个实验例子举例,作完实验看下总结shell
实验成果说明:vim
一、在忘记root密码的状况下如何恢复root密码centos
二、恢复root密码为redhat浏览器
实验前环境初始化:缓存
一、重置server系统:rht-vmctl reset server安全
二、打开GUI(图形页面):rht-vmctl view server
三、在servser上执行命令初始化环境:lab rootpw setup
具体实验步骤:
1、重启操做系统,而后在启动加载器菜单中终端倒计时 1.1. 使用相关按钮或菜单项向系统发送Ctrl+Alt+Del 1.2. 在显示启动加载器菜单后,按任意键中断倒计时 2、编辑默认的启动加载器条目,使其在刚刚挂载全部文件系统后、但在控制权移交给systemd前终止启动过程,而后在进行启动 2.1. 使用光标键突出显示默认的启动加载条目 2.2. 按e编辑当前条目 2.3. 使用光标键导航到以linux16开头的哪一行 2.4. 按End将光标移至行尾 2.5. 将rd.break附加到行未 2.6. 按Ctrl+x 使用修改后的配置进行启动 # 这里能够理解为自己linux有个微系统,尚未加载咱们正式系统 # 以读写的形式从新挂载咱们的正式系统所在的分区 # 在执行命令chroot从微系统切换至正式系统 3、在swich_root提示中,以只读的形式从新挂载/sysroot文件systemd,而后使用chroot进入/sysroot中的chroot存放文职 swich_root:/# mount -o remount,rw /sysroot swich_root:/# chroot /sysroot 4、修改密码 sh-4.2# passwd root 或者 sh-4.2# echo redhat |passwd --stdin root 5、将系统配置为在启动后自动执行完整的SElinux从新标记,因为passwd工具从新建立了不带SElinux上下文的/etc/shadow文件(当前SElinux并无加载)因此这颇有必要 sh-4.2# touch /.autorelabel 6、执行两次exit退出 6.1. 提示重启的时候SElinux从新标记须要花点时间稍等一下就好下次就没问题了 7、执行命令验证 [root@server0 ~]# lab rootpw grade
实验总结:
一、首先要明白整个启动过程
二、了解了启动过程再看下上图备注
2.一、备注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
根据咱们修改后grub2 会还未向实际的系统移交控制权限前停下
咱们实际恢复root密码的操做是在这里操做的
实验成果说明
在本实验中,您将定义默认的密码策略,建立包含三个新用户的补充组,以及修改一个用户的密码策略
一、在 server 上有一个名为 consultants 的新组,三个新用户: sspade bboop dtracy
二、 全部新庄户都应该要求在首次登陆时更改密码,而且以后每 30 天进行更改
三、新的顾问帐户应当在 90 天合同到期,bboop 帐户必须每 15 天更改一次密码
实验详细需求
开始重置您的 server 系统 : rht-vmctl reset server
一、确保新建立的用户具备必须每 30 天修改一次密码
二、新建一个名为: consultants 、GID 为 40000 的组
三、建立三个用户: sspade bboop dtracy 密码为: default ,而且将他们添加到补充组 consultants 中,主组应当保留为用户的专用组
四、肯定将来 90 天后的日志,并将新用户均设置为在该日期到期
五、更改 bboop 帐户的密码策略,使其 15 天要求建立新密码
六、此外强制全部用户在首次登陆时更改密码
七、完成后运行: lab localusers grade 评估这次实验结果
具体实验步骤
1. 确保新建立的用户具备必须每 30 天修改一次密码 1.1 这个需求是对登陆用户,针对的是全部用户考虑下login配置文件:/etc/login.defs # PASS_MAX_DAYS Maximum number of days a password may be used. PASS_MAX_DAYS 99999 修改成:PASS_MAX_DAYS 99999 2. 新建一个名为: consultants 、GID 为 40000 的组 2.1. groupadd consultants -g 40000 2.2. 验证 cat /etc/group 3. 建立三个用户: 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:40000:sspade,bboop,dtracy 用户默认30天修改一次密码: chage -l xxxx 4. 肯定将来 90 天后的日志,并将新用户均设置为在该日期到期 这个地方注意的是如何获取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 帐号到期时间 5. 更改 bboop 帐户的密码策略,使其 15 天要求建立新密码 这需求就是设定用户多久修改一次密码,单独说一个用户的话 5.1. chage bboop -M 15 5.2. 验证 [root@server0 ~]# chage -l bboop Last password change : Jul 01, 2019 Password expires : Jul 31, 2019 Password inactive : never Account expires : Sep 30, 2019 Minimum number of days between password change : 0 Maximum number of days between password change : 30 Number of days of warning before password expires : 7 [root@server0 ~]# chage bboop -M 15 [root@server0 ~]# chage -l bboop Last password change : Jul 01, 2019 Password expires : Jul 16, 2019 Password inactive : never Account expires : Sep 30, 2019 Minimum number of days between password change : 0 Maximum number of days between password change : 15 # 这里从配置文件新用户建立30天修改一次密码改为了15天修改一次 Number of days of warning before password expires : 7 6. 此外强制全部用户在首次登陆时更改密码 6.1 执行命令+验证 # 以前 [root@server0 ~]# chage -l bboop Last password change : Jul 01, 2019 Password expires : Jul 16, 2019 Password inactive : never Account expires : Sep 30, 2019 Minimum number of days between password change : 0 Maximum number of days between password change : 15 Number of days of warning before password expires : 7 # 执行命令: for i in sspade bboop dtracy; do chage $i -d 0 ; 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 30, 2019 Minimum number of days between password change : 0 Maximum number of days between password change : 15 Number of days of warning before password expires : 7 7. 完成后运行: lab localusers grade 评估这次实验结果 整体验证: lab localusers grade
实验总结:
一、密码过时概念
二、每一个概念对应的参数
实验成果说明
在本实验中您将配置包含供用户协做使用的目录的系统
- server 拥有一个名为 /home/stooges 的目录,如下三个用户能够在该目录中协做处理文件
- 只有用户和组能够在 /home/stooges 中访问、建立和删除文件。在此目录中建立的文件自动被分配到 stooges 的组全部权
- 用户建立新文件不能够由族外的人员访问
实验详细需求
开始前重置您的 server 系统,并执行: lab permissions setup
您的 server 计算机有三个帐户: curly larry moe 这些帐户是名为 stooges 的组的成员
一、打开终端窗口在 server 上成为 root 用户
二、建立 /home/stooges 目录
三、在 /home/stooges 目录中更改组权限,使其属于 stooges 组
四、对 /home/stoogs 目录设置权限,以是 GID 位置目录(2)、全部者(7)、和组(7)具备彻底读取,其余用户没有权限(0)
五、检查是否正确设置权限
六、修改全局登陆脚本,使普通用户拥有一个 umask 设置,该设置将阻止其余人查看或者修改新的文件和目录
七、完成时 ----打开一个新的终端---- 运行: lab permissions grade 来验证明验结果
实验详细步骤
1. 打开终端窗口在 server 上成为 root 用户 2. 建立 /home/stooges 目录 2.1. mkdir /home/stooges 2.2. 验证 ls /home 3. 在 /home/stooges 目录中更改组权限,使其属于 stooges 组 3.1. chown :stooges /home/stooges 3.2. 验证 ll -d /home/stooges 4. 对 /home/stoogs 目录设置权限,以是 GID 位置目录(2)、全部者(7)、和组(7)具备彻底读取,其余用户没有权限(0) 4.1. chmod 2770 /home/stoogs 4.2. 验证 ls -d /home/stooges drwxrws---. 2 root stooges 6 Jul 2 11:17 /home/stooges 5. 检查是否正确设置权限 5.1. 验证 ls -d /home/stooges drwxrws---. 2 root stooges 6 Jul 2 11:17 /home/stooges 6. 修改全局登陆脚本,使普通用户拥有一个 umask 设置,该设置将阻止其余人查看或者修改新的文件和目录 6.1 两个文件 /etc/profile /etc/bashrc 找到umask项目而后修改成 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then umask 007 else umask 027 fi 7. 完成时 ----打开一个新的终端---- 运行: lab permissions grade 来验证明验结果 验证: lab permissions grade
实验总结:
一、正常的权限不须要特别的记: r:w:x 对应数字:4:2:x
二、默认的权限:file 644 dir 755
三、特殊权限须要理解下:
特殊权限 | 对文件的影响 | 对目录的影响 |
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-. 1 root root 0 Jul 3 16:36 file [root@server0 ~]#
给目录增长特殊权限s
[root@server0 ~]# ls -ld dir drwxr-xr-x. 2 root root 6 Jul 3 16:57 dir [root@server0 ~]# chmod 2755 dir [root@server0 ~]# ls -ld dir drwxr-sr-x. 2 root root 6 Jul 3 16:57 dir [root@server0 ~]#
给目录增长t权限t
[root@server0 ~]# ls -ld dir2 drwxr-xr-x. 2 root root 6 Jul 3 16:59 dir2 [root@server0 ~]# chmod 1755 dir2 [root@server0 ~]# ls -ld dir2/ drwxr-xr-t. 2 root root 6 Jul 3 16:59 dir2/ [root@server0 ~]#
四、umask 修改默认文件和目录的权限
咱们touch 一个文件会发现它的权限是:644 -rw-r--r--
咱们mkdir 一个目录会发现他的全显示:755 drwxr-xr-x
你所看的文件和目录的默认权限实际上不是它最大的默认权限
文件的最大默认权限是: 666 -rw-rw-rw-
目录的最大默认权限是: 777 drwxrwxrwx
由于在系统中每个进程都具备umask,它的做用就是清除该进程建立的新文件和目录的指定权限
执行命令:umask 会看到当前的权限
[root@server0 ~]# umask 0022 [root@server0 ~]#
上面那一串的意思:在最大默认权限上作减法
# umask计算后的文件的默认权限(减去2=减去写权限) 0666 0022 - ------ 0644 # umask计算后的目录的默认权限(减去2=减去写权限) 0777 0022 - ------ 0755
举个例子:我想建立的目录和文件other用户什么权限也没有怎么办?实际上就是减去other权限位的:读、写、执行权限
[root@server0 ~]# umask 027 # 若是写三位默认特殊权限位为0 [root@server0 ~]# umask 0027 [root@server0 ~]# touch 1 [root@server0 ~]# mkdir dir [root@server0 ~]# ll total 0 -rw-r-----. 1 root root 0 Jul 3 17:15 1 drwxr-x---. 2 root root 6 Jul 3 17:15 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 200 # You could check uidgid reservation validity in # /usr/share/doc/setup-*/uidgid file if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then umask 002 else umask 022 fi
写在开头吧:就是对基本的文件权限体系的一个加强,基本文件体系天单一了:只有文件所属人、文件所属组、其余权限 在外加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 进行验证
实验详细步骤:
# 1 # case目录及其内容应该属于组 bakerstreet chown -R :bakerstreet cases # 新增至 cases 目录中的文件应自动属于组 bakerstreet chmod g+s cases # 现有文件应针对用户和组设置为rw(提示:切勿使用setfacl) chmod 660 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控制对文件的访问权限 详细步骤
实验总结:
1 默认也有acl属性
文件或目录acl权限,其实就是对现有权限不足的一个扩展 默认他也是有acl属性的 [root@server0 shares]# ll 总用量 4 drwxrwx---. 2 root root 78 7月 12 05:48 cases drwxrws---+ 3 root controller 92 7月 12 05:48 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]#
二、应用acl后文件权限项后面有个加号,标识启用了acl
# 当咱们给他们添加了acl属性后看下 # drwsrws---+ 在权限这里有个:"+" 对比以前是 drwxrwx---. 当有个加号的时候标记这个文件或目录已经应用了acl [root@server0 shares]# ll drwsrws---+ 3 shuai controller 100 Jul 10 16:42 steamies
三、acl优先级
3.1 首先注意一点acl包含了现有权限,它能够理解为现有权限的扩展,当咱们启用了acl以后看acl的权限便可 3.2 acl掩码概念 ..... mask::rwx # 这一行就是掩码掩码规定了:指定用户、指定用户组、组 的最大权限 ..... 3.2.1 能够理解为什么umask差很少的概念它:定义了程序运行的最大权限 3.2.2 文件属主(文件的用户)、other 不受掩码限制 3.2.3 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 配置为遵循很是具体的软件要求,它必须安装有一下软件包的最新版本。请勿安装全部更新。仅安装列出的软件包更新(若是这些更新可用)
3 当您准备好检查您的工做时,请在 server 上运行 lab software grade
实验详细步骤
1 添加配置 vim /etc/yum.repos.d/errata.repo [errata] name=errata baseurl=http://content.example.com/rhel7.0/x86_64/errata gpgcheck=0 2 安装要求的包 yum -y install xsane-gimp rht-system 3 卸载需求须要卸载的包 yum remove -y wvdial 4 验证 lab software grade
实验总结:
一、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 : 7 Release : 4.1708.el7.centos Architecture: x86_64 Install Date: Fri 03 Nov 2017 07:06:08 PM CST Group : System Environment/Base Size : 37949 License : GPLv2 Signature : RSA/SHA256, Thu 31 Aug 2017 12:04:53 AM CST, Key ID 24c6a8a7f4a80eb5 Source RPM : centos-release-7-4.1708.el7.centos.src.rpm Build Date : Wed 30 Aug 2017 11:53:09 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
二、gpgcheck=0 或者1
先了解什么是gpgcheck它是一种数字签名检查,若是启用gpg验证,yum install的时候就会拿着这个这个签名验证你是否安装的是正确的包而不是第三方修改过或者和黑客修改后的包
通常在Packages、repodata目录所在的同级别目录中有一个:RPM-GPG-KEY-CentOS-7 下载并在配置文件制定下载后的文件路径:gpgkey=file:///etc/pki/rpm-gpg/xxxxxx,而后就能够启用验证了gpgcheck=1
实验成果说明:
在此实验中,您将根据现有逻辑卷大小,同时根据须要添加LVM资源,而后添加一个新的逻辑卷,该逻辑卷带有永久挂载的XFS文件系统
实验详细需求:
开始重置您的 server 系统 : rht-vmctl reset server 并在server系统上执行: lab lvm setup
一、在/dev/vdb上建立 512 Mib分区,将其初始化为物理卷,而后使用他来扩展finance卷组
二、将loans逻辑卷扩展到 768 Mib,包括文件系统
三、在现有卷组中,建立名为 risk 且大小为 128 MiB的一个新逻辑卷,添加XFS文件系统,并将其挂于 /finance/risk
四、完成工做后从新启动 server计算机,而后从server计算机运行命令: lab lvm grade 验证
实验详细步骤:
1、在/dev/vdb上建立 512 Mib分区,将其初始化为物理卷,而后使用他来扩展finance卷组 # 先建立一个LVM的分区,类型选择:8e fdisk /dev/vdb /dev/vdb1 2048 1050623 524288 8e Linux LVM /dev/vdb2 1050624 2074623 512000 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 ~]# 2、将loans逻辑卷扩展到 768 Mib,包括文件系统 # 扩容文件系统 [root@server0 ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/vda1 10G 3.0G 7.1G 30% / devtmpfs 906M 0 906M 0% /dev tmpfs 921M 80K 921M 1% /dev/shm tmpfs 921M 17M 904M 2% /run tmpfs 921M 0 921M 0% /sys/fs/cgroup /dev/mapper/finance-loans 253M 13M 240M 6% /finance/loans [root@server0 ~]# xfs_growfs /finance/loans meta-data=/dev/mapper/finance-loans isize=256 agcount=4, agsize=16384 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 data = bsize=4096 blocks=65536, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal bsize=4096 blocks=853, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 65536 to 201728 [root@server0 ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/vda1 10G 3.0G 7.1G 30% / devtmpfs 906M 0 906M 0% /dev tmpfs 921M 80K 921M 1% /dev/shm tmpfs 921M 17M 904M 2% /run tmpfs 921M 0 921M 0% /sys/fs/cgroup /dev/mapper/finance-loans 785M 14M 772M 2% /finance/loans 3、在现有卷组中,建立名为 risk 且大小为 128 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=256 agcount=4, agsize=8192 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 data = bsize=4096 blocks=32768, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal log bsize=4096 blocks=853, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 # 建立挂载点并修改fstab [root@server0 ~]# mkdir -p /finance/risk [root@server0 ~]# vim /etc/fstab # 新增 /dev/finance/risk /finance/risk xfs defaults 0 0 4、完成工做后从新启动 server计算机,而后从server计算机运行命令: lab lvm grade 验证 lab lvm grade
实验总结:
一、LVM逻辑图
二、比较不错的实践
系统盘:RAID 1 /dev/sda
数据盘:RAID5 /dev/sdb 用sdb建立LVM分区-->建立物理卷-->把物理卷加入到卷组-->建立N个逻辑卷
实验成果说明:
建立并启用swap分区
实验详细需求:
一、建立1个500M的swap交换分区
实验详细步骤:
1、建立SWAP类型的分区 # 建立分区并设置分区类型为swap [root@server0 ~]# fdisk /dev/vdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0x78cd0f7c 建立新的 DOS 磁盘标签。 命令(输入 m 获取帮助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分区号 (1-4,默认 1): 起始 扇区 (2048-20971519,默认为 2048): 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+500M 分区 1 已设置为 Linux 类型,大小设为 500 MiB 命令(输入 m 获取帮助):t 已选择分区 1 Hex 代码(输入 L 列出全部代码):82 已将分区“Linux”的类型更改成“Linux swap / Solaris” 命令(输入 m 获取帮助):p 磁盘 /dev/vdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x78cd0f7c 设备 Boot Start End Blocks Id System /dev/vdb1 2048 1026047 512000 82 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 正在设置交换空间版本 1,大小 = 511996 KiB 无标签,UUID=b5751a60-e080-4cbd-9fda-14cba16041d7 2、新增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 0 0 # 测试激活交换分区 [root@server0 ~]# free -m total used free shared buffers cached Mem: 1841 550 1290 16 0 246 -/+ buffers/cache: 302 1538 Swap: 499 0 499 # 重启测试交换分区还存在
实验总结:
一、什么是SWAP分区
一个进程启动须要相应的物理内存空间,当物理内存不够用的时候,会把空闲的进程使用的内存写入到SWAP分区(硬盘上)把腾出来的额内存给其余进程使用,若是进程须要访问写入到SWAP分区的内容同理把其余进程空闲的内存腾出来写入到SWAP在把SWAP数据读出来写到物理内存
二、SWAP分区的优缺点
优势:SWAP至关于一个缓冲区,不至于当内存用完新程序或须要使用内存的程序没法正常运行
缺点:SWAP分区毕竟是硬盘和物理内存比起来很是慢
实验成果说明:
在此实验中,您将安装一个软件包以支持自动挂载文件系统,本实验是基于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
一、安装自动挂载home目录所需的任何包
二、添加配置文件(必须以.autofs结尾)和映射文件(必须以auto.开头)
三、启用并启动自动挂载服务
四、使用ssh切换到localhost上的ldapuser0,而后确认:挂载是否OK、读取/写入权限是否OK
五、从新启动desktop0计算,而后从desktop0计算执行命令:lab nfs grade 验证
实验详细步骤:
1、安装自动挂载home目录所需的任何包 # 安装autofs [root@desktop0 ~]# yum -y install autofs 2、添加配置文件(必须以.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 3、启用并启动自动挂载服务 # 启动服务、检查状态、并设置开机启动 [root@desktop0 ~]# systemctl start autofs.service [root@desktop0 ~]# systemctl status autofs.service [root@desktop0 ~]# systemctl enable autofs.service 4、使用ssh切换到localhost上的ldapuser0,而后确认:挂载是否OK、读取/写入权限是否OK ssh ldapuser0@localhost # 没有报错建立文件正常、挂载正常便可 5、从新启动desktop0计算,而后从desktop0计算执行命令:lab nfs grade 验证 lab nfs grade
实验总结:
一、autofs是什么以及应用场景
挂载共享资源存在两个问题
autofs就是为了解决上面两个问题而存在的:autofs自动挂载服务是一种Linux系统守护进程,当检测到用户视图访问一个还没有挂载的文件系统时,会自动挂载该文件系统。简单来讲,将挂载信息写入/etc/fstab文件中,系统在每次开机时都会自动挂载,而autofs服务则是在用户须要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器硬件资源的开销。
二、两种配置文件,我感受实际上是能够放在一块儿可是为啥要拆两个(最终把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处于强制模式时,系统管理员使用新web服务器向客户端交付内容时遇到的问题解决它
实验详细需求:
开始重置您的 server 系统 : rht-vmctl reset server 并初始化:lab selinux setup
一、在server上启动web浏览器并浏览至:http://localhost/lab-content 将会看到一个错误
二、研究并切丁正在阻止Apache提供Web内容服务的SElinux问题
三、解决正在阻止Apache提供Web内容服务的SElinux问题
四、验证SElinux问题已经解决,斌企鹅Apache可以提供Web内容服务
五、运行lab selinux grade命令确认您的结论
具体实验步骤:
1 看日志 /var/log/message ``` Jul 12 17:05:07 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 12 17:05:07 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 1 ``` 报错都提醒你如何处理selinux了,执行命令:setsebool -P httpd_read_user_content 1 /var/log/httpd/error_log ``` [Fri Jul 12 17:05:06.582895 2019] [core:error] [pid 2293] (13)Permission denied: [client ::1:42650] AH00132: file permissions deny server access: /var/web-content/lab-content/index.html ``` httpd 也会有提示关注下 2 查看目录和文件的上下文 ``` 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 ``` 3 修改目录和文件的默认上下文 ``` semanage fcontext -a -t httpd_sys_content_t '/var/web-content(/.*)' ``` 4 还原目录和文件的默认上下文 ``` restorecon -R web-content/ ```
实验总结:
一、文件权限后面有个“.” 说明该文件打上了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
二、新建立的文件会继承目录的“上下文标签”
适用于:vim、cp、touch
若是在其余位置建立的而且权限得以保留好比:mv、cp -a 那么还会保留以前的“上下文标签”
三、selinux 有两个模式:
[root@server0 shares]# setenforce usage: setenforce [ Enforcing | Permissive | 1 | 0 ] # 强制模式 Enforcing 遵照策略规则并记录冲突(异常) # 启用强制模式 setenforce Enforcing 或者 setenforce 1 # 许可模式 策略规则冲突仅记录日志消息 # 启用策略模式 setenforce Permissive 或者 setenforce 0
四、小总结
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 ``` 总结: 1 进程也有一个标签 2 标签对应: 标签能够访问那些 标签 标签对资源的权限属性
实验成果说明:
在此实验中,您将在server0服务器上配置防火墙,以阻止对ssh和端口8080/TCP上运行Web之外服务的访问
实验详细需求:
开始重置您的 server 系统 : rht-vmctl reset server 并在server系统上执行: lab firewall setup
一、配置系统,使iptables和ip6iptables服务不会被管理员之外启动
二、检查firewalld服务是否正在运行。若是未运行其启动该服务
三、验证默认防火墙区域是不是public
四、确保public区域的永久配置中没有打开不须要的端口
五、向public区域的永久配置添加端口8080/TCP验证配置
六、从新启动server0计算机(为进行快速测试,也可使用sudo firewall-cmd --reload)
七、从desktop计算机运行:lab firewall grade 进行验证
实验详细步骤:
1、配置系统,使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) 2、检查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 六 2019-07-13 07:15:59 CST; 4min 22s ago Main PID: 471 (code=exited, status=0/SUCCESS) 7月 13 07:07:26 localhost systemd[1]: Started firewalld - dynamic firewall daemon. 7月 13 07:15:59 server0.example.com systemd[1]: Stopping firewalld - dynamic firewall daemon... 7月 13 07:15:59 server0.example.com systemd[1]: 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 六 2019-07-13 07:21:45 CST; 2s ago Main PID: 2559 (firewalld) CGroup: /system.slice/firewalld.service └─2559 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid 7月 13 07:21:44 server0.example.com systemd[1]: Starting firewalld - dynamic firewall daemon... 7月 13 07:21:45 server0.example.com systemd[1]: Started firewalld - dynamic firewall daemon. 3、验证默认防火墙区域是不是public [root@server0 ~]# firewall-cmd --get-default-zone public # 若是不是 [root@server0 ~]# firewall-cmd --set-default-zone=public 4、确保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 ~]# 5、向public区域的永久配置添加端口8080/TCP验证配置 [root@server0 ~]# firewall-cmd --add-port=8080/tcp --permanent success [root@server0 ~]# firewall-cmd --add-port=8080/tcp success 6、从新启动server0计算机(为进行快速测试,也可使用sudo firewall-cmd --reload) # reload验证 [root@server0 ~]# firewall-cmd --reload success [root@server0 ~]# firewall-cmd --list-ports --permanent 8080/tcp [root@server0 ~]# firewall-cmd --list-ports 8080/tcp [root@server0 ~]# firewall-cmd --list-services --permanent ssh [root@server0 ~]# firewall-cmd --list-services ssh [root@server0 ~]# 7、从desktop计算机运行:lab firewall grade 进行验证 # 登陆desktop lab firewall grade
实验总结:
一、多个区域的概念
二、正常区域只是个逻辑上的概念(区域里有一些默认的配置),来看它的匹配方式
* * * * * = 分 时 日 月 周 先定义5个时间位置 先拆开理解 ----------------------分 时 日 月------------------------- * * * * 前4个时间位置: 分 时 日 月 分钟明确的时候: 10 * * * * xxx 分 # 1个小时有60分钟,第10分钟只会在每一个小时出现一次(明确) 时 # 天天有24个小时,小时不明确因此24个小时都执行 (不明确) 日 # 没月有31天,天不明确因此天天都执行 (不明确) 月 # 每一年有12个月,月不明确而因此每个月都执行 (不明确) # 每月的、天天的、每小时的第10分钟执行一次 简化下:每小时第10分钟执行 小时也明确的时候-例子1: * 10 * * * xxx 分 # 分钟不明确因此:每分钟要执行 (不明确) 时 # 小时明确10点,1天有24个小时,天天10点只会在天天出现一次 (明确) 日 # 没月有31天,天不明确因此天天都执行 (不明确) 月 # 每一年有12个月,月不明确而因此每个月都执行 (不明确) # 每月的、天天的第10小时的、每分钟都执行 简化下:天天10点,每分钟都执行 小时也明确的时候-例子2: 10 10 * * * xxx 分 # 1个小时有60分钟,第10分钟只会在每一个小时出现一次(明确) 时 # 小时明确10点,1天有24个小时,天天10点只会在天天出现一次 (明确) 日 # 没月有31天,天不明确因此天天都执行 (不明确) 月 # 每一年有12个月,月不明确而因此每个月都执行 (不明确) # 每月的、天天的第10小时的、第10小时的、第10分钟 简化下:天天10点10分执行一次 ----------------------周------------------------- # 周这个时间位置能够理解为:且关系判断 1 1 * * * 这个是天天1点1分执行1次 1 1 * * 1 当咱们定义周1了以后,就会进行判断: 天天1点1分,而且今天是周1才执行
关注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
重要记住安装那个包:sssd authconfig-gtk brb5-workstation
# sssd是什么 一个守护进程,该进程能够用来访问多种验证服务器,如LDAP,Kerberos等,并提供受权。 SSSD是 介于本地用户和数据存储之间的进程,本地客户端首先链接SSSD,再由SSSD联系外部资源提供者(一台远程服务器) # sssd优点 (1)避免了本地每一个客户端程序对认证服务器大量链接,全部本地程序仅联系SSSD,由SSSD链接认证服务器或SSSD缓存,有效的下降了负载。 (2)容许离线受权,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:*:1700:1700:LDAP Test User 0:/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 65:4d:ac:8a:c9:58:82:b5:0c:91:c4:ef:a5:e6:f6:65. 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
--end--