Appearance
一、特殊符号或命令整体作用解释(20 分)
1、jobs
bash
# 显示当前shell的后台任务列表
jobs
2、fg
bash
# 将后台任务切换到前台运行
fg %任务号
3、根据 PID 强杀进程命令:
bash
# 强制终止指定PID的进程
kill -9 PID
4、根据服务名强杀进程命令:
bash
# 通过服务名终止进程
pkill -9 服务名
5、根据登录的客户端强杀进程命令:
bash
# 终止来自特定客户端的进程
pkill -9 -t 终端名
6、查询 sshd 服务的 PID 号命令:
bash
# 查看sshd服务的进程ID
ps aux | grep sshd
7、crontab -e
bash
# 编辑当前用户的定时任务
crontab -e
8、crontab -l
bash
# 列出当前用户的定时任务
crontab -l
9、chattr +i
bash
# 设置文件i锁不可修改、删除
chattr +i 文件名
10、chattr +a
bash
# 设置文件a锁只能追加内容
chattr +a 文件名
11、lsattr
bash
# 查看文件i和a锁属性
lsattr 文件名
12、chsh
bash
# 更改用户登录shell
chsh -s /bin/bash 用户名
13、visudo
bash
# 安全编辑sudoers文件,用于sudo提权配置
visudo
14、sudo -l
bash
# 列出当前用户可执行的sudo命令
sudo -l
15、mount -o ro
bash
# 以只读方式挂载文件系统
mount -o ro 设备 挂载点
16、free -m
bash
# 以MB为单位显示内存使用情况
free -m
17、静态查看进程
bash
# 静态查看系统进程
ps aux
18、动态查看进程
bash
# 动态查看系统进程
top
19、后台运行程序,关闭终端,服务不停
bash
# 使用nohup让程序在后台持续运行
nohup 命令 &
20、创建软连接
bash
# 创建符号链接
ln -s 源文件 链接文件
二、特殊路径含义解释(20 分)
1、周期性定时任务的服务名叫什么:
bash
crond
2、周期性定时任务的日志文件的绝对路径:
bash
/var/log/cron
3、周期性定时任务是保存在哪个目录里(绝对路径):
bash
/var/spool/cron/用户名
4、周期型定时任务的配置文件的绝对路径:
bash
/etc/crontab
5、系统全局变量配置文件的绝对路径:
bash
/etc/profile
6、网卡配置文件的绝对路径:
bash
/etc/sysconfig/network-scripts/ifcfg-网卡名
7、开机自动挂载路径:
bash
/etc/fstab或/etc/rc.d/rc.local
8、yum 源文件路径:
bash
/etc/yum.repos.d/
9、在 systemd 管理服务的操作系统,创建服务管理文件存放在哪个路径下:
bash
# 管理员自定义服务管理
/etc/systemd/system/*.service
# 用户自定义服务管理
/usr/lib/systemd/system/*.service
10、黑洞文件路径
bash
/dev/null
三、简答题(40 分)
1、周期性定时任务左边的五个星都是什么意思?他们的取值范围都是多少?(从左向右说明)
bash
从左到右分别表示:
1. 分钟 (0-59)
2. 小时 (0-23)
3. 日期 (1-31)
4. 月份 (1-12)
5. 星期 (0-7,0和7都代表周日)
2、在定时任务中* , - / 的含义
bash
* 表示所有可能的值,每一个值
, 表示指定多个值,多条件并列存在
- 表示范围,如1-5表示1到5
/ 表示间隔频率,如*/2表示每2个单位
3、请解释 su 和 su -的区别?
bash
su 只切换用户身份,不改变工作目录。部分系统改变环境变量如openEuler
su - 会完全切换到目标用户的环境,包括工作目录和环境变量
4、请解释如下 sudo 授权配置文件中 3 个 ALL 的含义和 NOPASSWD 的意义?
root ALL=(ALL) NOPASSWD:ALL
bash
第一个ALL:允许从任何主机执行
第二个ALL:可以以任何用户身份执行
第三个ALL:可以执行任何命令
NOPASSWD:执行时不需要输入密码
5、Linux 下通过 mkdir 命令创建一个新目录/yunjisuan/benet,它的硬连接数是多少,为什么?如果在/yunjisuan/benet 下再创建一个目录 test。问/yunjisuan/benet 的硬连接数是多少,为什么?(共 2 分)
bash
初始硬连接数为2:
1. 目录本身
2. 目录上级
创建test后硬连接数变为3:
1.目录本身
2.目录上级
3.test目录
6、执行下面命令时发现提示需要输入密码,请问提示输入的密码是哪个用户的密码?(共 2 分)
(1): [test@localhost ~]$ sudo su - yunjisuan
(2): [test@localhost ~]$ su - yunjisuan
bash
(1) 需要输入当前用户test的密码
(2) 需要输入目标用户yunjisuan的密码
7、inode 和 block 是做什么用的?(共 3 分)
bash
inode: 存储文件元信息(权限、所有者、大小等)和数据索引
block: 存储文件实际数据
文件通过inode找到对应的block
8、请用自己的话解释一下 Linux 文件删除的原理。(共 3 分)
bash
1. 在文件系统硬链接inode引用计数为0
2. 该文件系统的进程为0
9、Linux 的目录可以创建硬链接吗?(共 1 分)
bash
不可以,只有超级用户可以通过特殊命令创建
普通用户不能创建目录硬链接
10、再拷贝文件的时候,突然报错,报错信息为 No space left ondevice,请问问题的发生原因可能是什么?(共 2 分)
bash
1. 磁盘空间不足
2. inode耗尽
3. 用户磁盘配额用完
11、请用自己的话解释软链接和硬连接的区别在哪?(共 3 分)
bash
1. 硬链接:
- 与源文件共享相同inode
- 不能跨文件系统
- 删除源文件不影响硬链接
- 不允许链接目录
- 直接指向inode
2. 软链接:
- 有自己的inode
- 可以跨文件系统
- 删除源文件后软链接失效
- 允许链接目录
- 存储目标路径
12、一个人刚刚设置了一个软 raid5.但是重启电脑以后,他发现它配置好的 raid 组没有了,请问最可能的原因是什么?
bash
没有将raid配置写入/etc/mdadm.conf或/etc/fstab文件
导致系统重启后无法自动加载raid配置
13、请简要说明 Linux 的 7 种开机启动模式。
bash
0 - 关机
1 - 单用户模式
2 - 无网络多用户
3 - 有网络多用户模式
4 - 未使用
5 - 图形界面模式
6 - 重启
14、什么是平均负载?
bash
系统在1分钟、5分钟、15分钟内的平均进程数
包括运行中和等待CPU的进程
反映系统整体负载情况
15、简述 raid0,raid1,raid5,raid10 的特点?(4 分)
bash
RAID0: 条带化,最少2块盘,高性能,无冗余,利用率100%,不可坏盘
RAID1: 镜像,最少2块盘,100%冗余,写性能低,利用率50%,可坏一盘
RAID5: 分布式校验,最少3块盘,兼顾性能与冗余,利用率减少一块盘空间,可坏一盘
RAID10: 最少4块盘,先镜像再条带化,高性能高可靠,成本高
16、假如给你 5 块盘,其中有 4 块盘是 5T 容量,最后一块是 8T 容量。请选择你认为的最佳 raid 组?请简单说明这么选择的原因?你选择的 raid 组合的实际使用容量是多少?(4 分)
bash
建议选择RAID5(4块5T盘)+热备盘(8T盘)
原因:
1. 提供数据冗余
2. 8T盘作为热备盘可自动替换故障盘
3. 有效利用所有磁盘
实际使用容量:15T(4块5T盘中3块用于存储,1块用于校验)
或者
RAID5(4块5T盘+8T盘)
原因:io提升,硬盘接受损坏一块硬盘,安全性得到提升,硬盘容量仅仅减少块
实际使用容量(做raid遵循向下兼容8T识别5T):五块盘总容量25T,可用容量20T
17、你对 Linux 系统加固做了哪些操作(4 分)
bash
1.非登录用户禁止登录:chsh -s 登录脚本类型 用户名
2.锁定长期不用的账号:passwd -l 用户名
3.删除无用的账号:userdel -r 用户名
4.为用户管理文件设置i锁:chattr +i 目标文件
5.设置密码有效期:chage -M 天数 用户名
6.限制历史命令条数:echo "HISTSIZE=100" >> /etc/profile
7.终端自动注销:echo "export TMOUT=60" >> /etc/profile
8.用户切换:su - 用户名
9.sudo提权:sudo su - 用户名 和 visudo
10.登录终端安全:/etc/securetty
11.设置bios密码
12.限制重启热键 Ctrl+Alt+Del
13.grub 菜单加密及密码清除
14.弱口令检测:jhon
15.端口检测 NMAP
四、实验题(20)
1、每周日上午 9 点 30 分运行 yunjisuan.sh 脚本
bash
30 9 * * 7 /绝对路径/yunjisuan.sh
2、每隔 1 分钟,打印一个+号到文件 yunjisuan.log
bash
* * * * * echo "+" >> /绝对路径/yunjisuan.log
3、每隔 2 小时将/etc/services 文件打包备份到/tmp 目录下,每次备份按时间生成不同的备份包。
bash
0 */2 * * * /usr/bin/tar -czf /tmp/services_$(/usr/bin/date +\%F-\%T).tar.gz /etc/services
4、每天晚上 12 点,打包站点目录/var/www/html 备份到/data 目录下,每次备份按时间生成不同的备份包。
bash
0 0 * * * /usr/bin/tar -czf /data/html_$(/usr/bin/date +\%F-%T).tar.gz /var/www/html
5、每周六,日上午 9 点整合下午 14 点整执行程序/server/script/yunjisuan.sh
bash
0 9,14 * * 6,0 /server/script/yunjisuan.sh
6、假设有一个命令程序,名为 ping.sh 我想让系统每隔 3 分钟执行一次这个程序,但是这个程序会有很多信息显示出来,所以我的 root 账号每天会收到 400 多封信件,应该怎么设置这个定时任务比较好。
bash
*/3 * * * * /绝对路径/ping.sh >/dev/null 2>&1
或者
*/3 * * * * /绝对路径/ping.sh
0 /2 * * * rm -rf /var/spool/postfix/maildrop/*
# 关闭邮件服务
systemctl stop postfix
7、每天凌晨 2 点,打包站点目录/var/www/html 备份到本地/data 目录下,要求按时间生成不同得备份包,由于硬盘空间问题,本地仅保留 7 天内的备份数据,请你解决这个问题
bash
0 2 * * * /usr/bin/tar -czf /data/html_$(/usr/bin/date +\%F).tar.gz /var/www/html && find /data -name "html_*.tar.gz" -mtime +7 -delete
8、添加账户 yunjisuan,权限为可以配置并重启网络服务,可以添加删除修改用户,可以给硬盘分区,但是不能做其他的损害系统的操作,请你设计一下具体的权限方案,并给出实施步骤。
bash
1. useradd yunjisuan
2. visudo 添加:
yunjisuan ALL= NOPASSWD: /usr/bin/systemctl * NetworkManager, /usr/sbin/user*,/usr/sbin/fdisk,!/usr/sbin/fdisk /dev/sda*,!/usr/sbin/fdisk sda
9、工作中,某个开发人员申请账户 yunjisuan,要求 30 日使用期限,权限为可以查看系统日志,如何设置。
bash
1. useradd yunjisuan
2. usermod -e $(date -d "+30 days" +\%F) yunjisuan
3. visudo 添加:
yunjisuan ALL= /usr/bin/tail /var/log/messages
10、用户 user1 和 user2 加入到 benet 组。为 benet 组授权,允许 benet 组的用户可以创建用户,查看日志。
bash
1. groupadd benet
2. usermod -aG benet user1
3. usermod -aG benet user2
4. visudo 添加:
%benet ALL= /usr/sbin/user*, /usr/bin/tail /var/log/messages