
前段时间参加了一个红帽linux挑战赛,在此作出一些总结,由于这里讲的是linux基础,所以也不深入,就拿复赛的题目与大家进行探讨吧。(本文尽最大努力还原真实比赛环境)
首先介绍一下 红帽Linux挑战赛 (ps:打波广告)
红帽是世界领先的开源解决方案供应商,依托社区力量为客户提供稳定可靠及高性能的云技术、Linux、中间件、存储和虚拟化产品。红帽还提供屡获殊荣的支持、培训和咨询服务。作为紧密连接全球企业、合作伙伴和开源社区的中心,红帽致力于通过为广大客户提供实用、创新型技术产品,有效释放其宝贵资源以推动业务增长,并为未来 IT 发展奠定坚实基础。在过去几年,有超过10000人次在校大学生参加过红帽红帽挑战赛,进一步了解了开源,提升了红帽技能。2019年,红帽联合红帽学院授权合作伙伴智汇云校一起举办了新一届红帽挑战赛,希望通过本届2019红帽挑战赛比赛,帮助越来越多的学校以及学生参与到开源的大潮之中,接触和学习到更多的红帽技术,推动开源事业的进一步发展。
赛事介绍2019红帽挑战赛分为区域比赛和全国总决赛两个阶段。●区域比赛内容:将以红帽LINUX基础知识为主,主要知识点参考红帽认证的系统管理员以及红帽认证的工程师课程内容。授权的红帽学院合作伙伴可以根据实际需要增加部分红帽课程的其它知识点。●红帽总决赛内容:将以红帽认证的工程师内容为主,比重为70%,将增加红帽 Ansible课程的相关知识点,比重为30%。
Tips:有兴趣的同学可以自行百度搜索一下哦,期待你们的参与。
第一题-破解root密码
这次复赛同RHCSA一样采用了先破解密码,后答题,也就是说密码都没有破解成功的话,就无法向下答题,那么我们就从破解密码开始吧。(本地环境是RHEL7.6)
进入到下图时,按上下键
现在就没有倒计时了,按e进入
往下翻,找到以linux16开头的一行,将光标移到行尾
删除行尾至ro改为rw rd.break
ctrl+x
然后输入以下几条命令
chroot sysroot/
echo "这个地方填入你更改之后的密码" | passwd --stdin root
touch /.autorelabel #selinux会重新对系统文件进行重新标记
最后一步很重要,很多同学都容易忘记,打错或者没有输入的后果就是系统无法正常启动。
输入两遍exit退出
第二题
主机名的设置
hostnamectl set-hostname #主机名
在这道题面前则是hostnamectl set-hostname desktop.group8.example.com #IP地址dns网关这些可以通过修改配置文件修改
第一种修改方法
vim /etc/sysconfig/network-scripts/ifcfg-eth0 #在我的环境下是ifcfg-ens33
IPADDR(IP地址)
NETMASK(子网掩码)or PREFIX
GATEWAY(网关)
BOOTPROTO有三种状态1.dhcp 2.static 3.none
这里的ONBOOT记得一定要开启也就是yes
保存退出后需要记得重启网络服务systemctl restart network
然后使用ifconfig查看IP地址网关dns的设置是否正确
第二种修改方法 也是我觉得最简单的一种图形化修改的方法 打开终端输入 nm-connection-editor
双击ens33
找到IPv4 settings然后修改对应的选项框输入结束后save
systemctl restart network //重启网络 使用 ifconfig 查看对应的ip网关是否正确
第三题
天真的我以为使用一条rm -rf命令就可以轻松删除,最后发现居然还有root权限都无法删除的文件,就联想到了隐藏权限这个概念。
发现果然有隐藏权限
lsattr 文件路径 #查看文件隐藏权限
chattr +/- ai 文件路径 #给文件加上或者取消文件的隐藏权限
a:即Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
i:即Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
所以这道题的解决办法就是chattr -ai file.txt//取消文件的隐藏权限然后rm -rf file.txt//删除文件
第四题
这里使用创建用户使用useradd命令
即useradd tony
useradd tim
useradd lee
修改密码可以使用
passwd 用户名,但是我建议还是更推荐使用
echo 'password' | passwd --stdin username 这种方式
这道题目的题解便是echo 'redhat' | passwd --stdin tony
echo 'redhat' | passwd --stdin tim
echo 'redhat' | passwd --stdin lee
第五题
创建组使用groupadd命令
所以题解是
groupadd cehuabu
加入组是usermod -g
用法是 sermod -g 组名 用户名
#-g 后面接 group name 必须是现有 group 组中的一个,改变用户的初始化用户组 id 对应 /etc/passwd 的第4栏内容
usermod -g cehuabu tony
usermod -g cehuabu tim
第六题
这个题目就涉及到了磁盘分区了,想必肯定有很多同学很头疼,遇到困难,微笑面对, 奥里给!!!
第一步当然是添加磁盘添加成功之后使用lsblk命令
lsblk //以树形格式列出所有块设备
然后就开始分区了
按w保存退出
然后使用lsblk命令,题目说需要将硬盘格式化为ext4的文件系统
所以便使用mkfs.ext4 磁盘路径将磁盘格式化为ext4。(如下图)
由于需要开机自动挂载,所以得写入到/etc/fstab里
格式:挂载设备路径 挂载点 文件系统 default 0 0
然后mount -a //mount -a 自动挂载/etc/fstab文件没有挂载的设备,不管已挂载过的设备。
最后df -Th查看是否挂载上
第七题
创建文件file1 touch file1 设置拥有组
chgrp cehuabu file1或者chown :cehuabu file1
而设置某个用户的权限自然就要用到acl啦
一般用法setfacl -m u:用户名:权限 file1
所以这道题目的解答就是: setfacl -m u:tony:rwx file1setfacl -m u:tim:r-- file1
第八题
这个题目就涉及到了NTP
yum install -y chronydvim /etc/chrony.conf
将server 0 1 2 3全部用#注释掉
然后在下面添加一行 server server.group8.example.com iburst
保存退出然后重启服务并加入到开机自启动
systemctl restart chronydsystemctl enable chronyd
然后使用chronyc sources -v 查看是否成功
第九题
写一个脚本脚本开头#!/bin/bash
计划任务格式: 分 时 日 月 周 /bin/echo "hello world"题目的解答如下图
第十题
首先需要进入目录 cd /usr/share/doc/firewalld-0.3.9/
然后拷贝使用到 cp命令cp -a COPYING /rootcd /root
重命名使用到 mv命令mv COPYING word.txt
最后替换使用到 sed命令sed -i s/License/exam/g /root/word.txt
第十一题
(PS此题没有环境,无法复现当时题目环境,所以做出来可能有些偏差)首先lsblk
创建一个物理卷使用pvcreate命令pvcreate /dev/sdc然后使用vgextend命令对home卷组进行扩展
第十二题
首先我执行了sar命令
发现并没有这个命令,需要安装这个命令查询需要安装的rpm包
yum whatprovides sar 或者 rpm -qf `which sar`
然后使用yum install -y sysstat.x86_64
成功,然后需要导入到/root/12.txt中所以使用sar >/root/12.txt
后言
至此,红帽Linux挑战赛复赛试题已经研究完毕,后续我会给大家带来决赛试题,能看到这里的,一定都是想学好linux的,那么请带着一颗求知的心,努力下去吧,由于水平有限,在很多地方肯定有些不足之处,如有纰漏或者错误,还请斧正,定当改进。文章写的很不容易,大家的评论和点赞就是我的最大动力,谢谢支持!
动手试吧,没有的话就找相关软件包安装\x0d\x0a\x0d\x0a一、df 命令;\x0d\x0a\x0d\x0adf 是来自于coreutils 软件包,系统安装时,就自带的;我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置;\x0d\x0a\x0d\x0a举例:\x0d\x0a\x0d\x0a[root@localhost beinan]# df -lh\x0d\x0a\x0d\x0aFilesystem 容量 已用 可用 已用% 挂载点\x0d\x0a\x0d\x0a/dev/hda8 11G 6.0G 4.4G 58% /\x0d\x0a\x0d\x0a/dev/shm 236M 0 236M 0% /dev/shm\x0d\x0a\x0d\x0a/dev/sda1 56G 22G 35G 39% /mnt/sda1\x0d\x0a\x0d\x0a我们从中可以看到,系统安装在/dev/hda8 ;还有一个56G的磁盘分区/dev/sda1挂载在 /mnt/sda1中;\x0d\x0a\x0d\x0a其它的参数请参考 man df\x0d\x0a\x0d\x0a二、fdsik\x0d\x0a\x0d\x0afdisk 是一款强大的磁盘 *** 作工具,来自util-linux软件包,我们在这里只说他如何查看磁盘分区表及分区结构;参数 -l ,通过-l 参数,能获得机器中所有的硬盘的分区情况;\x0d\x0a\x0d\x0a[root@localhost beinan]# fdisk -l\x0d\x0a\x0d\x0aDisk /dev/hda: 80.0 GB, 80026361856 bytes\x0d\x0a\x0d\x0a255 heads, 63 sectors/track, 9729 cylinders\x0d\x0a\x0d\x0aUnits = cylinders of 16065 * 512 = 8225280 bytes\x0d\x0a\x0d\x0aDevice Boot Start End Blocks Id System\x0d\x0a\x0d\x0a/dev/hda1 * 1 765 6144831 7 HPFS/NTFS\x0d\x0a\x0d\x0a/dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)\x0d\x0a\x0d\x0a/dev/hda3 2806 7751 39728745 5 Extended\x0d\x0a\x0d\x0a/dev/hda5 2806 3825 8193118+ 83 Linux\x0d\x0a\x0d\x0a/dev/hda6 3826 5100 10241406 83 Linux\x0d\x0a\x0d\x0a/dev/hda7 5101 5198 787153+ 82 Linux swap / Solaris\x0d\x0a\x0d\x0a/dev/hda8 5199 6657 11719386 83 Linux\x0d\x0a\x0d\x0a/dev/hda9 6658 7751 8787523+ 83 Linux\x0d\x0a\x0d\x0a在上面Blocks中,表示的是分区的大小,Blocks的单位是byte ,我们可以换算成M,比如第一个分区/dev/hda1的大小如果换算成M,应该是6144831/1024=6000M,也就是6G左右,其实没有这么麻烦,粗略的看一下把小数点向前移动三位,就知道大约的体积有多大了;\x0d\x0a\x0d\x0aSystem 表示的文件系统,比如/dev/hda1 是NTFS格式的;/dev/hda2 表示是fat32格式的文件系统;.\x0d\x0a\x0d\x0a在此例中,我们要特别注意的是/dev/hda3分区,这是扩展分区;他下面包含着逻辑分区,其实这个分区相当于一个容器;从属于她的有 hda5,hda6,hda7,hda8,hda9 ;\x0d\x0a\x0d\x0a我们还注意到一点,怎么没有hda4呢?为什么hda4没有包含在扩展分区?一个磁盘最多有四个主分区; hda1-4算都是主分区;hda4不可能包含在扩展分区里,另外扩展分区也算主分区;在本例中,没有hda4这个分区,当然我们可以把其中的一个分区设置为主分区,只是我当时分区的时候没有这么做而已;\x0d\x0a\x0d\x0a再仔细统计一下,我们看一看这个磁盘是不是还有空间?hda1+hda2+hda3=实际已经分区的体积,所以我们可以这样算 hda1+hda2+hda3=6144831+16386300+39728745 = 62259876 (b),换算成M单位,小数点向前移三位,所以目前已经划分好的分区大约占用体积是62259.876(M),其实最精确的计算 62259876/1024=60800.67(M);而这个磁盘大小是80.0 GB (80026361856byte),其实实际大小也就是78150.744(M);通过我们一系列的计算,我们可以得出这个硬盘目前还有使用的空间;大约还有18G未分区的空间;\x0d\x0a\x0d\x0afdisk -l 能列出机器中所有磁盘的个数,也能列出所有磁盘分区情况;比如:\x0d\x0a\x0d\x0a[root@localhost beinan]# fdisk -l\x0d\x0a\x0d\x0aDisk /dev/hda: 80.0 GB, 80026361856 bytes\x0d\x0a\x0d\x0a255 heads, 63 sectors/track, 9729 cylinders\x0d\x0a\x0d\x0aUnits = cylinders of 16065 * 512 = 8225280 bytes\x0d\x0a\x0d\x0aDevice Boot Start End Blocks Id System\x0d\x0a\x0d\x0a/dev/hda1 * 1 765 6144831 7 HPFS/NTFS\x0d\x0a\x0d\x0a/dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)\x0d\x0a\x0d\x0a/dev/hda3 2806 7751 39728745 5 Extended\x0d\x0a\x0d\x0a/dev/hda5 2806 3825 8193118+ 83 Linux\x0d\x0a\x0d\x0a/dev/hda6 3826 5100 10241406 83 Linux\x0d\x0a\x0d\x0a/dev/hda7 5101 5198 787153+ 82 Linux swap / Solaris\x0d\x0a\x0d\x0a/dev/hda8 5199 6657 11719386 83 Linux\x0d\x0a\x0d\x0a/dev/hda9 6658 7751 8787523+ 83 Linux\x0d\x0a\x0d\x0aDisk /dev/sda: 60.0 GB, 60011642880 bytes\x0d\x0a\x0d\x0a64 heads, 32 sectors/track, 57231 cylinders\x0d\x0a\x0d\x0aUnits = cylinders of 2048 * 512 = 1048576 bytes\x0d\x0a\x0d\x0aDevice Boot Start End Blocks Id System\x0d\x0a\x0d\x0a/dev/sda1 1 57231 58604528 83 Linux\x0d\x0a\x0d\x0a通过上面我们可以知道此机器有两块硬盘,我们也可以指定fdisk -l 来查看其中一个硬盘的分区情况;\x0d\x0a\x0d\x0a[root@localhost beinan]# fdisk -l /dev/sda\x0d\x0a\x0d\x0aDisk /dev/sda: 60.0 GB, 60011642880 bytes\x0d\x0a\x0d\x0a64 heads, 32 sectors/track, 57231 cylinders\x0d\x0a\x0d\x0aUnits = cylinders of 2048 * 512 = 1048576 bytes\x0d\x0a\x0d\x0aDevice Boot Start End Blocks Id System\x0d\x0a\x0d\x0a/dev/sda1 1 57231 58604528 83 Linux\x0d\x0a\x0d\x0a通过上面情况可以知道,在/dev/sda 这个磁盘中,只有一个分区;使用量差不多是百分百了;\x0d\x0a\x0d\x0a我们还可以来查看 /dev/hda的\x0d\x0a\x0d\x0a[root@localhost beinan]# fdisk -l /dev/hda\x0d\x0a\x0d\x0a自己试试看?\x0d\x0a\x0d\x0a三、cfdisk 来自于util-linux的软件包;\x0d\x0a\x0d\x0acfdisk 也是一款不错的分区工具;在有些发行版中,此工具已经从util-linux包中剔除;cfdisk 简单易用是他的特点;和DOS中的fdisk 相似;在本标题中,我们只来解说如何查看机器的中的磁盘分区状况及所用的文件系统等;\x0d\x0a\x0d\x0a查看磁盘分区的用法 cfdisk -Ps 磁盘设备名;\x0d\x0a\x0d\x0a比如\x0d\x0a\x0d\x0a[root@localhost beinan]cfdisk -Ps\x0d\x0a\x0d\x0a[root@localhost beinan]cfdisk -Ps /dev/hda\x0d\x0a\x0d\x0a[root@localhost beinan]cfdisk -Ps\x0d\x0a\x0d\x0aPartition Table for /dev/hda\x0d\x0a\x0d\x0aFirst Last\x0d\x0a\x0d\x0a# Type Sector Sector Offset Length Filesystem Type (ID) Flag\x0d\x0a\x0d\x0a-- ------- ----------- ----------- ------ ----------- -------------------- ----\x0d\x0a\x0d\x0a1 Primary 0 23438834 63 23438835 Linux (83) Boot\x0d\x0a\x0d\x0a2 Primary 23438835 156296384 0 132857550 Extended (05) None\x0d\x0a\x0d\x0a5 Logical 23438835 155268224 63 131829390 Linux (83) None\x0d\x0a\x0d\x0a6 Logical 155268225 156296384 63 1028160 Linux swap (82) None\x0d\x0a\x0d\x0a我们只用的参数 -Ps,就列出了磁盘的分区情况;目前在Slackware Debian Mandrake 等主流发行版中存在cfdisk ,而fedora 4.0把这个小工具剔除了;有点可惜;这是我在Slackware中 *** 作的;\x0d\x0a\x0d\x0a如果您这样 *** 作,就更直观了;\x0d\x0a\x0d\x0a[root@localhost beinan]cfdisk 磁盘设备名\x0d\x0a\x0d\x0a举例:\x0d\x0a\x0d\x0a[root@localhost beinan]cfdisk /dev/hda\x0d\x0a\x0d\x0a您所看到的是如下的模式:\x0d\x0a\x0d\x0acfdisk 2.12a\x0d\x0a\x0d\x0aDisk Drive: /dev/hda\x0d\x0a\x0d\x0aSize: 80026361856 bytes, 80.0 GB\x0d\x0a\x0d\x0aHeads: 255 Sectors per Track: 63 Cylinders: 9729\x0d\x0a\x0d\x0aName Flags Part Type FS Type [Label] Size (MB)\x0d\x0a\x0d\x0a-------------------------------------------------------------------------------------------\x0d\x0a\x0d\x0ahda1 Boot Primary Linux ReiserFS 12000.69\x0d\x0a\x0d\x0ahda5 Logical Linux ReiserFS 67496.65\x0d\x0a\x0d\x0ahda6 Logical Linux swap 526.42\x0d\x0a\x0d\x0a[Bootable] [ Delete ] [ Help ] [Maximize] [ Print ] [ Quit ]\x0d\x0a\x0d\x0a[ Type ] [ Units ] [ Write ]\x0d\x0a\x0d\x0aToggle bootable flag of the current partition\x0d\x0a\x0d\x0a您进入了cfdisk 的 *** 作界面;用键盘移动指针到[Quit]就可以退出;\x0d\x0a\x0d\x0a四、parted 功能不错的分区工具;在Fedora 4.0中有带,可以自己安装上;在此主题中,我们只说如何查看磁盘的分区情况;\x0d\x0a\x0d\x0a调用方法简单,parted 默认是打开的设备是/dev/hda ,也可以自己指定;比如 parted /dev/hda 或/dev/sda 等;退出的方法是 quit\x0d\x0a\x0d\x0a[root@localhost beinan]# parted\x0d\x0a\x0d\x0a使用 /dev/hda\x0d\x0a\x0d\x0a(parted) p\x0d\x0a\x0d\x0a/dev/hda 的磁盘几何结构:0.000-76319.085 兆字节\x0d\x0a\x0d\x0a磁盘标签类型:msdos\x0d\x0a\x0d\x0aMinor 起始点 终止点 类型 文件系统 标志\x0d\x0a\x0d\x0a1 0.031 6000.842 主分区 ntfs 启动\x0d\x0a\x0d\x0a2 6000.842 22003.088 主分区 fat32 lba\x0d\x0a\x0d\x0a3 22003.088 60800.690 扩展分区\x0d\x0a\x0d\x0a5 22003.119 30004.211 逻辑分区 reiserfs\x0d\x0a\x0d\x0a6 30004.242 40005.615 逻辑分区 reiserfs\x0d\x0a\x0d\x0a7 40005.646 40774.350 逻辑分区 linux-swap\x0d\x0a\x0d\x0a8 40774.381 52219.094 逻辑分区 ext3\x0d\x0a\x0d\x0a9 52219.125 60800.690 逻辑分区 reiserfs\x0d\x0a\x0d\x0a我们在partd 的 *** 作面上,用p就可以列出当前磁盘的分区情况,如果想要查看其它磁盘,可以用 select 功能,比如 select /dev/sda ;\x0d\x0a\x0d\x0a五、qtparted ,与parted 相关的软件还有qtparted ,也能查看到磁盘的结构和所用的文件系统,是图形化的;\x0d\x0a\x0d\x0a[beinan@localhost ~]# qtparted\x0d\x0a\x0d\x0a图形化的查看,一目了然;\x0d\x0a\x0d\x0a六、sfdisk 也是一个分区工具,功能也多多;我们在这里只说他的列磁盘分区情况的功能;\x0d\x0a\x0d\x0a[root@localhost beinan]# sfdisk -l\x0d\x0a\x0d\x0a自己看看吧;\x0d\x0a\x0d\x0asfdisk 有几个很有用的功能;有兴趣的弟兄不妨看看;\x0d\x0a\x0d\x0a七、partx 也简要的说一说,有些系统自带了这个工具,功能也简单,和fdisk 、parted、cfdisk 来说不值一提;不用也罢;\x0d\x0a\x0d\x0a用法: partx 设备名\x0d\x0a\x0d\x0a[root@localhost beinan]# partx /dev/hda\x0d\x0a\x0d\x0a# 1: 63- 12289724 ( 12289662 sectors, 6292 MB)\x0d\x0a\x0d\x0a# 2: 12289725- 45062324 ( 32772600 sectors, 16779 MB)\x0d\x0a\x0d\x0a# 3: 45062325-124519814 ( 79457490 sectors, 40682 MB)\x0d\x0a\x0d\x0a# 4: 0- -1 ( 0 sectors, 0 MB)\x0d\x0a\x0d\x0a# 5: 45062388- 61448624 ( 16386237 sectors, 8389 MB)\x0d\x0a\x0d\x0a# 6: 61448688- 81931499 ( 20482812 sectors, 10487 MB)\x0d\x0a\x0d\x0a# 7: 81931563- 83505869 ( 1574307 sectors, 806 MB)\x0d\x0a\x0d\x0a# 8: 83505933-106944704 ( 23438772 sectors, 12000 MB)\x0d\x0a\x0d\x0a# 9: 106944768-124519814 ( 17575047 sectors, 8998 MB)\x0d\x0a\x0d\x0a八、查看目前机器中的所有磁盘及分区情况:\x0d\x0a\x0d\x0a[beinan@localhost ~]$ cat /proc/partitions\x0d\x0a\x0d\x0amajor minor #blocks name\x0d\x0a\x0d\x0a3 0 78150744 hda\x0d\x0a\x0d\x0a3 1 6144831 hda1\x0d\x0a\x0d\x0a3 2 16386300 hda2\x0d\x0a\x0d\x0a3 5 8193118 hda5\x0d\x0a\x0d\x0a3 6 10241406 hda6\x0d\x0a\x0d\x0a3 7 787153 hda7\x0d\x0a\x0d\x0a3 8 11719386 hda8\x0d\x0a\x0d\x0a3 9 8787523 hda9\x0d\x0a\x0d\x0a8 0 58605120 sda\x0d\x0a\x0d\x0a8 1 58604528 sda1欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)