前言
转载自作者TedLau_R
前段时间参加了一个红帽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地址这些可以通过修改配置文件也就是
第一种修改方法
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 用法是usermod -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 file1
setfacl -m u:tim:r-- file1
第八题
这个题目就涉及到了NTP
yum install -y chronyd
vim /etc/chrony.conf
将server 0 1 2 3全部用#注释掉
然后在下面添加一行server server.group8.example.com iburst
保存退出
然后重启服务加入到开机自启动
systemctl restart chronyd
systemctl enable chronyd
然后使用chronyc sources -v 查看是否成功
第九题
写一个脚本 脚本开头#!/bin/bash 计划任务 格式: `分 时 日 月 周 /bin/echo "hello world" 在这里这个题目的解答如下图
第十题
需要写一个脚本
脚本如下
#!/bin/bash
read -p "Please enter a username: " username
useradd $username &> /dev/null
if [ $? -eq 0 ]
then
id $usernameelse
echo "User Exists!"`
fi
今天就到这里了,大家可以看看我的另一篇文章,希望您可以通过这篇文章入坑linux,加入开源的大家庭。
RedHat入坑指南(一)
后言
能看到这里的,一定都是想学好linux的,那么请带着一颗求知的心,努力下去吧,由于水平有限,在很多地方肯定有些不足之处,如有纰漏或者错误,还请斧正,定当改进。文章写的很不容易,大家的评论和点赞就是我的最大动力,谢谢支持! (ps:忙活了很久,给大家更新了一波浅谈红帽挑战赛(二))里面是一些决赛的题目,干货满满,快去品尝吧。