-
Linux 系统中,用户和组的定义以及密码信息存放于哪四个核心配置文件中?请用表格详细说明每个文件各字段的含义,并解答:为什么有了 /etc/passwd 还需要 /etc/shadow?/etc/shadow 中用户的密码字段以 $6$ 开头,这代表什么加密算法?后面的字符串是如何构成的?
-
详细说明 r (读)、w (写)、x (执行) 权限在文件和目录上的本质区别?如果一个普通用户对某个目录仅有 w 权限,但没有 x 权限,他能在这个目录下创建文件吗?为什么?
-
什么是 umask?说明其计算逻辑。若系统全局默认 umask 为 022,为什么新创建的文件默认权限是 644,而新建目录是 755?如果是 umask 023 呢?
-
详解 Linux 的三种特殊权限:SUID、SGID、Sticky(粘滞位)的作用、表现形式(在 ls -l 输出中的字符位置及大小写区别)以及它们各自的生产应用场景。
-
对比 locate 和 find 命令的工作机制、优缺点及适用场景。为什么新建一个文件后,立刻用 locate 搜不到?如何解决?
-
在 ubuntu 环境中,如何使用 cat 和 EOF 标志,非交互式地向系统配置文件 /etc/hosts.bak 中追加以下三行内容?
192.168.1.100 k8s-master 192.168.1.101 k8s-node1 192.168.1.102 k8s-node2 -
创建一个名为 sysadm 的系统用户组,指定 GID 为 2000。创建一个名为 ops_user 的系统用户,要求:其主组为 sysadm,附加组为 wheel(或 sudo)。其家目录指定为 /data/home/ops_user,且在创建时自动建立家目录。指定其登录 Shell 为 /bin/bash。生产中需要临时禁用和启用用户 ops_user 的登录权限,分别写出锁定和解锁的命令。如何利用非交互式命令(如 chpasswd)将用户 ops_user 的密码修改为 Ops@2026#Sec?
-
现有一个目录 /data/shares。为了防止被普通用户误删,我们需要保证:所有用户都可以在该目录下创建文件 and 目录。用户只能删除自己创建的文件,不能删除其他用户的文件。请写出创建该目录并设置相应权限的完整命令。
-
为了防止恶意软件或人为失误修改系统核心文件 /etc/resolv.conf,我们需要将其设置为“即使是 root 用户也无法修改和删除,只能读取”。请写出设置和撤销此状态的命令。
-
很多时候在编写 Python 脚本或 YAML 配置文件时,我们希望将 Vim 的 Tab 键自动转换成 4 个空格,并且显示行号。请写出要在当前用户的家目录下的配置文件中添加哪些属性行?
-
在 Vim 中,如何非交互地将当前打开的文件中,第 10 行到第 50 行之间的所有 http:// 字符串替换为 https://?
-
生产环境磁盘空间告急,请写出一条命令:在 /var/log/目录中,查找所有文件名以 .log 结尾、大小大于 50MB 且在 7 天以前修改过的普通文件,并将它们打包压缩备份至 /tmp/log_backup.tar.gz,随后将原文件安全删除。
-
演示如何使用 tar 工具打包 /etc 目录,但是排除掉 /etc/udev 和 /etc/selinux 这两个子目录。
-
假设有一个名为 user_info.txt 的文件,每行格式如下:username:department:phone_number:address。请分别使用以下工具提取:
- 使用 cut 提取第一列的用户名。
- 使用 tr 将文本中的 : 替换为空格。
-
有些同学在删除查找到的千万级临时文件时,直接运行 find /tmp -name "*.tmp" -exec rm -f {} ;,请解答:
- 该命令有什么性能弊端?
- 如何使用 xargs 进行优化?其运行原理是什么?
- 若文件名包含空格,优化命令会有何安全隐患?如何彻底规避?
-
研发部要求在 Rocky 环境下,导入 1000 个格式为 testuser001 到 testuser1000 的测试账号,并要求设置不同的初始随机密码。请回答:
- 为什么不能直接写 for 循环调用 useradd + passwd?
- 请使用 newusers 和 chpasswd 给出一种高效率的一体化解决方案。
[5]
- 基础正则表达式(BRE)与扩展正则表达式(ERE)在元字符支持上有何本质区别?请举例说明在 grep 和 sed 命令中,若使用 ERE 应如何加选项或进行转义?
- 简述 sed 命令的模式空间(Pattern Space)和保持空间(Hold Space)的概念,它是如何实现流编辑的?并简述 awk 的工作循环(即 BEGIN、主输入循环、END 的执行顺序和优先级),并列出其至少 5 个常用内置变量的含义。
- 对比 MBR 分区方案与 GPT 分区方案,并解答:在生产环境中面对 4TB 大容量磁盘,应该选择哪种分区方案?为什么?简述 Ext4 文件系统与 XFS 文件系统的差异,它们在进行逻辑卷缩减时有什么重大区别?
- 物理卷(PV)、卷组(VG)、逻辑卷(LV)和物理盘区(PE)这四个概念是如何层层关联的?相比传统物理分区,LVM 的核心优势是什么?说明 RAID-0, RAID-1, RAID-5, RAID-10 的区别,并从“容错性、磁盘利用率、读写性能、最少盘数”这几个维度进行横向对比。
- 现有一个网页服务器访问日志文件,请编写一个 sed 语句:将文件中被注释的行(以 # 开头)和空行全部过滤掉,直接在终端打印剩下的内容。并写出安全的 sed 命令(要求原地修改并生成备份 .bak 文件),将配置文件 /etc/ssh/sshd_config 中的 #Port 22 替换为 Port 2222。
- 假设 Nginx 的日志文件 /var/log/nginx/access.log 中,第一列为客户端的 IP 地址,第九列为 HTTP 状态码。请写出 awk 一行命令:
- 统计并输出每个 IP 的请求总次数,按降序排列,取前 10 名。
- 统计并输出每个 HTTP 状态码(如 200, 404, 500 等)出现的次数。
- 生产环境中新加入了一块物理硬盘 /dev/sdb,要求对其使用 GPT 方案,并划分一个容量为 100GB 的主分区 /dev/sdb1。请分别给出使用:
- parted 命令行的一体化分区命令。
- cat << EOF 配合 fdisk / gdisk 的非交互式分区方案。
并写出将新建的 /dev/sdb1 格式化为 xfs 文件系统,并指定卷标(Label)为 DATA_PART 的命令。
- 写出将 /dev/sdb1 挂载到 /data 目录下的命令。获取 /dev/sdb1 的 UUID,并写出在 /etc/fstab 中新增一行以实现“系统开机时自动将其以 defaults 选项挂载到 /data” 的配置字段。
- 现系统内存不足,需要紧急扩容交换空间。请写出以下操作命令:
- 在单盘上新建一个物理分区 /dev/sdc1,大小为 4GB。
- 将该分区格式化为交换分区类型并启用它。
- 通过配置文件 /etc/fstab 实现开机自动启用,并设置其优先级为 10。
- 现有一个卷组 vg_data,其中已包含物理卷 /dev/sdb1。在该卷组中有一个名为 lv_store 的逻辑卷,采用 xfs 文件系统,挂载在 /store。由于空间爆满,需要从物理盘 /dev/sdc2 处对其进行扩容。请写出:
- 将 /dev/sdc2 初始化为 PV 并扩展到卷组 vg_data。
- 扩展逻辑卷 lv_store,将卷组剩余所有空间全部加给它。
- 在线扩容其 xfs 文件系统。
- 写出为 /dev/vg_data/lv_store 创建一个只读快照 lv_store_snap` 的命令,快照预留大小为 500MB。在逻辑卷上进行测试后发现数据损毁,请写出卸载原逻辑卷、恢复快照并重新挂载验证的完整命令。
- 在对新磁盘配置持久挂载时,某管理员将 /etc/fstab 中的 UUID 输错了一个字符,重启后系统直接卡在了 Emergency Mode。此时根分区变为了只读。请回答:
- 在此终端下如果直接编辑 /etc/fstab 会遇到什么报错?(提示:只读文件系统)
- 请给出能够解除只读限制、恢复系统挂载并修复该配置文件的完整命令步骤。
- 在修改 /etc/fstab 之后重启前,应运行哪条命令验证配置正确性?
- 开发部门在清理旧分区时,要求运维将一个容量为 500GB 的 LVM 逻辑卷缩减到 200GB。该卷上挂载的是 xfs 文件系统。请回答:
- 这个任务在 xfs 文件系统上可行吗?如果执行 lvreduce 会发生什么灾难?
- 如果文件系统是 ext4,缩减逻辑卷的正确安全步骤是怎样的?为什么缩容必须“先缩减文件系统,再缩减逻辑卷”?
[6]
- 解释 ABI 与 API 的概念与区别。静态链接与动态链接有何异同?在排查动态链接库丢失引起的软件运行报错时,应如何使用 ldd 命令?
- 简述 Rocky 环境下 yum/dnf 客户端与软件源服务端的工作机制。自建私有 YUM 仓在企业内部有何实际意义?说明 Ubuntu 下的 dpkg 和 apt 的层级关系。在卸载软件时,apt remove、apt purge 与 apt autoremove 三者之间有何区别?
- 什么是 systemd?它相比于传统的 SysV init 机制,最显著的优势是什么?说明服务控制单元文件中,[Unit]、[Service]、[Install] 三个配置段的核心作用。
- Linux 中执行 Shell 脚本有 ./script.sh、bash script.sh、source script.sh。请说明它们在“是否启动子进程”和“对脚本文件的执行权限要求”上的异同。说明 set -e、set -u、set -o pipefail 起到了什么作用?
- 什么是全局变量?简述 /etc/profile、/etc/bashrc、/.bash_profile、/.bashrc 这四个配置文件的加载顺序以及在登录与非登录场景下的差异。
- 某台机器上运行着一个未知服务,其二进制程序路径为 /usr/sbin/httpd。请写出一条命令:查询这个二进制文件是由哪个具体的包(RPM 或 DEB)安装生成的。在未联网的情况下,需要查询本地一个尚未安装的软件包 vsftpd-3.0.3-49.el9.x86_64.rpm 内包含了哪些文件和目录,请写出对应的查询命令。
- 现需要通过源码编译安装 Nginx(以 nginx-1.24.0 为例),请写出其核心的编译部署步骤。编译安装完成在 /usr/local/nginx 目录后,如何在不使用绝对路径的情况下,让系统所有用户都可以直接运行 nginx 命令?请写出环境变量配置的命令。
- 在 /usr/local/bin/backup.sh 有一个自动备份的脚本。现在要求将其封装为系统服务 backup.service,满足:
- 服务说明为 Daily Backup Service。
- 在 network.target 后启动。
- 类型为 simple。
- 异常退出 5s 内自动重启。
- 允许开机自启。
请完整写出 /etc/systemd/system/backup.service 的配置文件内容,并写出重载配置、开机自启并立刻启动该服务的命令。
- 定义一个普通本地变量 URL="https://www.sswang.com/index.html",请写出表达式:
- 获取此变量字符串的总长度。
- 提取出域名部分的子串 "www.sswang.com"。
并说明如何定义只读变量 PORT 且值为 8080,如果修改或删除会发生什么?
- 编写一个 Shell 脚本片段,提示用户输入管理员账号及密码,要求:
- 提示信息 "Please input admin username: "。
- 接收密码时,不回显输入。
- 用户在 10 秒内未输入,则脚本自动超时退出。
- 编写代码演示三种不同的整数加法运算方法。并在生产环境需要进行浮点数计算:计算当前磁盘利用率(已用空间 45GB 除以总空间 120GB 的百分比),并保留两位小数。请给出命令。另外,演示逻辑测试 [[]] 表达式:判断用户输入的变量 IP_ADDR 格式是否为有效的 IPv4 地址。
- 在 Shell 脚本中,位置参数 $* 与 $@ 到底有什么本质区别?请回答:
- 在没有被双引号括住时行为不同吗?
- 当被双引号括住为 "$*" 和 "$@" 时分别是什么逻辑?
- 在处理含有不确定字符或空格的参数传递时选用哪一个?
- 编译安装软件时遇到依赖缺失,除了去互联网搜索,如何通过包管理器查找依赖文件所归属的软件?
- 请写出 Rocky 环境下,根据文件路径或库文件名称反向搜索对应 RPM 软件包的命令;
- 如果是在 Ubuntu 环境下,又该使用什么命令?
