你应该知道的24个系统管理员面试问题

即将进行系统管理员的面试? 阅读本文,了解您可能会遇到的问题和可能的答案。
253 位读者喜欢这篇文章。
Are you using this highly effective interview technique?

Opensource.com

作为一个一直玩电脑的极客,在获得IT硕士学位后,从事相关职业是自然的选择。因此,我决定系统管理员的道路是正确的。在我的职业生涯中,我对面试过程非常熟悉。 这里来看看面试的期望,一般的职业道路,以及一系列常见问题和我的答案。

典型的系统管理员任务和职责

组织需要了解系统如何运作的基础知识的人,以便他们能够保证数据安全,并保持服务平稳运行。 您可能会问:“等等,系统管理员能做的不仅仅是这些吧?”

你是对的。 现在,总的来说,让我们看看典型的系统管理员的日常任务。 根据公司需求和个人的技能水平,系统管理员的任务从管理台式机,笔记本电脑,网络和服务器到设计组织的IT策略不等。 有时,系统管理员甚至负责购买和下达新IT设备的订单。

那些将系统管理作为其职业道路的人可能会发现,要保持其技能和知识的最新状态很困难,因为IT领域的快速变化是不可避免的。 任何人脑海中出现的下一个自然问题是,IT专业人员如何跟上最新更新和技能。

低难度问题

以下是一些您会遇到的更基本的问题,以及我的答案

  1. 登录*nix服务器后,您键入的前五个命令是什么?
  • lsblk查看所有块设备的信息
  • who查看谁登录到服务器
  • top了解服务器上正在运行的内容
  • df -khT查看服务器上可用的磁盘空间量
  • netstat查看哪些TCP网络连接处于活动状态
  1. 如何使进程在后台运行,这样做有什么好处?

您可以通过在命令末尾添加特殊字符&来使进程在后台运行。 通常,执行时间过长且不需要用户交互的应用程序将发送到后台,以便我们可以在终端中继续工作。(引文

  1. 以root身份运行这些命令是一个好主意还是一个坏主意?

由于两个主要问题,以root身份运行(所有内容)是不好的。 第一个是风险。 当您以root身份登录时,没有任何东西可以阻止您犯粗心的错误。 如果您尝试以可能有害的方式更改系统,则需要使用sudo,这会引入一个暂停(在您输入密码时),以确保您不会犯错。

第二个原因是安全。 如果您不知道管理员用户的登录信息,则系统更难被黑客入侵。 访问root意味着您已经拥有了管理员凭据工作集的一半。

  1. rmrm -rf有什么区别?

rm命令本身仅删除指定的文件(而不是目录)。 使用-rf,您可以添加两个附加功能:-r-R或--recursive标志递归删除目录的内容,包括隐藏文件和子目录; -f或--force标志使rm忽略不存在的文件,并且永远不会提示确认。

  1. Compress.tgz的文件大小约为15GB。 如何列出其内容,以及如何仅列出特定文件的内容?

列出文件的内容

tar tf archive.tgz

提取特定文件

tar xf archive.tgz filename

中等难度问题

以下是一些您可能会遇到的更难的问题,以及我的答案

  1. 什么是RAID? 什么是RAID 0,RAID 1,RAID 5,RAID 6和RAID 10?

RAID(廉价磁盘冗余阵列)是一种用于提高数据存储的性能和/或可靠性的技术。 RAID级别是

  • RAID 0:也称为磁盘条带化,是一种将文件分解并将数据分散到RAID组中所有磁盘驱动器的技术。 没有防止故障的安全措施。(引文
  • RAID 1:一种流行的磁盘子系统,通过在两个驱动器上写入相同的数据来提高安全性。 称为镜像,RAID1不会提高写入性能,但是读取性能可能会提高到每个磁盘性能的总和。 另外,如果一个驱动器发生故障,则使用第二个驱动器,并手动更换发生故障的驱动器。 更换后,RAID控制器会将工作驱动器的内容复制到新驱动器上。
  • RAID 5:一种磁盘子系统,通过计算奇偶校验数据和提高速度来提高安全性。 RAID 5通过在三个或更多驱动器上交错数据(条带化)来实现此目的。 在单个驱动器发生故障时,可以从分布式奇偶校验中计算后续读取,从而不会丢失任何数据。
  • RAID 6:通过添加另一个奇偶校验块来扩展RAID 5。 此级别至少需要四个磁盘,并且可以在任意两个并发磁盘故障的情况下继续执行读/写。 RAID 6在读取操作上没有性能损失,但是在写入操作上会有性能损失,这是由于与奇偶校验计算相关的开销。
  • RAID 10:也称为RAID 1 + 0,RAID 10组合了磁盘镜像和磁盘条带化来保护数据。 它至少需要四个磁盘,并将数据条带化到镜像对中。 只要每个镜像对中有一个磁盘可以正常工作,就可以检索数据。 如果同一镜像对中的两个磁盘都发生故障,则所有数据都将丢失,因为条带化集中没有奇偶校验。(引文
  1. ping命令使用哪个端口?

ping命令使用ICMP。 具体来说,它使用ICMP回显请求和ICMP回显回复数据包。

ICMP不使用UDP或TCP通信服务:相反,它使用原始IP通信服务。 这意味着ICMP消息直接在IP数据报数据字段中传输。

  1. 路由器和网关之间有什么区别? 什么是默认网关?

路由器描述了一般技术功能(第3层转发)或用于此目的的硬件设备,而网关描述了本地段的功能(提供与其他地方的连接)。 您还可以声明您“将路由器设置为网关”。另一个术语是跃点,它描述了子网之间的转发。

术语默认网关用于表示LAN上的路由器,它负责成为局域网外部计算机流量的第一个联系点。

  1. 解释Linux的引导过程。

BIOS -> 主引导记录(MBR) -> GRUB -> 内核 -> init -> 运行级别

  1. 如何在服务器启动时检查错误消息?

内核消息始终存储在kmsg缓冲区中,可通过dmesg命令查看。

引导问题和错误要求系统管理员查找某些重要文件以及特定命令,这些文件和命令由不同版本的Linux以不同的方式处理

  • /var/log/boot.log是系统引导日志,其中包含系统引导期间展开的所有内容。
  • /var/log/messages存储全局系统消息,包括系统引导期间记录的消息。
  • /var/log/dmesg包含内核环形缓冲区信息。
  1. 符号链接和硬链接之间有什么区别?

2019年8月30日更新 | 编辑注:此答案最初说“硬链接是原始文件的镜像副本”,这是不准确的。 感谢Bruce Bowen提供以下答案

硬链接是目录对第一个目录条目所引用的同一inode的引用,并且更新了inode以增加引用计数,以了解存在指向该数据的新链接。 这意味着当文件被“删除”时,目录将更新以删除文件名,并且数据inode的引用计数会递减。 除非引用计数变为0,否则不会释放文件的数据。 由于inode对于每个文件系统都是唯一的,因此硬链接无法跨文件系统。 软链接创建了一种目录条目说“文件信息实际上存储在另一个目录条目中”的方式。 如果删除“另一个目录条目”,软链接将断开。



因此,描述硬链接和软链接之间区别的“用户”方式是,硬链接是指向文件数据的链接,而软链接是指向另一个文件名的链接。

  1. 如何更改内核参数? 您可能需要调整哪些内核选项?

要在类Unix系统中设置内核参数,首先编辑文件/etc/sysctl.conf。 进行更改后,保存文件并运行sysctl -p命令。 此命令使更改永久生效,而无需重新启动计算机

  1. 解释/proc文件系统。

/proc文件系统是虚拟的,并提供有关内核,硬件和正在运行的进程的详细信息。 由于/proc包含虚拟文件,因此它被称为虚拟文件系统。 这些虚拟文件具有独特的品质。 它们中的大多数在大小上都列为零字节。

诸如/proc/interrupts/proc/meminfo/proc/mounts/proc/partitions之类的虚拟文件提供了系统硬件的最新快照。 其他文件(例如/proc/filesystems/proc/sys目录)提供了系统配置信息和接口。

  1. 如何在没有其他用户密码的情况下以其他用户的身份运行脚本?

例如,如果您要编辑sudoers文件(例如/private/etc/sudoers),则可以使用visudo添加以下内容

user1 ALL=(user2) NOPASSWD: /opt/scripts/bin/generate.sh

  1. 什么是UID 0 toor帐户? 您是否已被入侵?

toor 用户是一个备用的超级用户帐户,toor 是 root 反过来拼写。它旨在与非标准 shell 一起使用,因此无需更改 root 的默认 shell。

这个目的是很重要的。不属于基本发行版的 Shell,而是从 ports 或 packages 安装的 Shell,安装在 /usr/local/bin 中;默认情况下,它位于不同的文件系统中。如果 root 的 shell 位于 /usr/local/bin 中,并且包含 /usr/local/bin 的文件系统未挂载,则 root 将无法登录来解决问题,系统管理员必须重启到单用户模式才能输入 shell 的路径。

高级问题

以下是您可能会遇到的更困难的问题

  1. tracert 是如何工作的,它使用什么协议?

tracert 命令(或根据操作系统的不同,也可能是 traceroute)允许您准确地看到在连接到最终目的地的过程中所经过的路由器。如果您最终遇到无法连接或 ping 到最终目的地的问题,则 tracert 可以帮助您准确地知道连接链在哪里停止。(引文

有了这些信息,您可以联系正确的人员;无论是您自己的防火墙、您的 ISP、您目的地的 ISP 还是中间的某个地方。像 ping 一样,tracert 命令使用 ICMP 协议,但也可以使用 TCP 三次握手的第一个步骤来发送 SYN 请求以获得响应。

  1. 使用 chroot 的主要优势是什么?我们何时以及为何使用它?在 chroot 环境中,mount /devmount /procmount /sys 命令的目的是什么?

拥有 chroot 环境的一个优势是文件系统与物理主机隔离,因为 chroot 在您的文件系统内部有一个单独的文件系统。区别在于 chroot 使用新创建的根 (/) 作为其根目录。

chroot 监狱可以让您将进程及其子进程与系统的其余部分隔离。它应该仅用于不以 root 身份运行的进程,因为 root 用户可以轻松地突破监狱。

其思想是,您创建一个目录树,在其中复制或链接运行该进程所需的所有系统文件。然后,您使用 chroot() 系统调用来告诉它根目录现在存在于这个新树的底部,然后在该 chroot 环境中启动进程。由于该命令随后无法引用修改后的根目录之外的路径,因此它无法对这些位置恶意执行操作(读取、写入等)。(引文

  1. 如何保护您的系统免受黑客攻击?

通过遵循最小权限原则和以下实践

  • 使用公钥加密,这提供了极好的安全性。
  • 强制执行密码复杂性。
  • 了解您为何要对上述规则进行例外处理。
  • 定期审查您的例外情况。
  • 追究某人失败的责任。(这让您保持警惕。)(引文
  1. 什么是 LVM,使用它的优势是什么?

LVM,或逻辑卷管理,使用一种存储设备管理技术,该技术使用户能够汇集和抽象组件存储设备的物理布局,以便更轻松和灵活地进行管理。使用设备映射器 Linux 内核框架,当前迭代 (LVM2) 可用于将现有存储设备收集到组中,并根据需要从组合空间分配逻辑单元。

  1. 什么是粘滞端口?

粘滞端口是网络管理员最好的朋友和最糟糕的头痛问题之一。它们允许您设置网络,以便交换机上的每个端口只允许一台(或您指定的数量)计算机连接到该端口,方法是将其锁定到特定的 MAC 地址。

  1. 解释端口转发?

当试图与安全网络内部的系统进行通信时,从外部进行通信可能非常困难——而且理由很充分。因此,在路由器本身或其他连接管理设备中使用端口转发表可以允许特定流量自动转发到特定目的地。例如,如果您在您的网络上运行一个 Web 服务器,并且您想授予从外部对其的访问权限,您将在服务器上设置端口 80 的端口转发。这意味着任何在 Web 浏览器中输入您的 IP 地址的人都会立即连接到该服务器的网站。

请注意,通常不建议允许从外部直接访问您网络中的服务器。

  1. 在 IDS 的情况下,什么是误报和漏报?

当入侵检测系统 (IDS) 设备生成实际未发生的入侵警报时,这是误报。如果设备未生成任何警报且入侵实际已发生,则这是漏报的情况。

  1. 解释 :(){ :|:& };:,如果您已经登录到系统,如何停止此代码?

这是一个 fork 炸弹。它分解如下

  • :() 定义函数,其中 : 作为函数名,空括号表示它不接受任何参数。
  • { } 显示函数定义的开始和结束。
  • :|: 将函数 : 的一个副本加载到内存中,并将其输出通过管道传递给函数 : 的另一个副本,该副本也必须加载到内存中。
  • & 使前一个项目成为后台进程,以便即使父进程自动终止,子进程也不会被杀死。
  • 结尾的 : 再次执行该函数,因此链式反应开始。

保护多用户系统的最佳方法是使用特权访问管理 (PAM) 来限制用户可以使用的进程数量。

fork 炸弹的最大问题在于它占用了太多的进程。因此,如果您已经登录到系统,我们有两种尝试修复此问题的方法。一种选择是执行 SIGSTOP 命令来停止该进程,例如

killall -STOP -u user1

如果您由于所有进程都被使用而无法使用命令行,您将必须使用 exec 强制其运行

exec killall -STOP -u user1

对于 fork 炸弹,您的最佳选择是首先防止它们变得太大的问题

  1. 什么是 OOM killer,它如何决定首先杀死哪个进程?

如果内存被进程彻底耗尽,以至于可能威胁到系统的稳定性,那么内存不足 (OOM) killer 就会发挥作用。

OOM killer 首先必须选择要杀死的最佳进程。这里的 *最佳* 是指杀死后释放最多内存的进程,并且对系统而言也是最不重要的进程。主要目标是杀死最少数量的进程,以最大程度地减少造成的损害,同时最大程度地释放内存。

为了实现此目标,内核为每个进程维护一个 oom_score。您可以在 /proc 文件系统的 pid 目录下查看每个进程的 oom_score

$ cat /proc/10292/oom_score

任何进程的 oom_score 值越高,在内存不足的情况下,它被 OOM Killer 杀死的可能性就越大。(引文

结论

系统管理人员的薪水范围很广,一些网站提到每年 70,000 美元到 100,000 美元,具体取决于地点、组织规模以及您的教育水平和工作经验。最终,系统管理职业道路归结为您对使用服务器和解决酷问题的兴趣。现在,我想说,继续前进,实现您的梦想之路。

标签
Avatar
我在红帽公司担任解决方案工程师,我的日常工作包括使用 OpenShift 和 Ansible。我对开源、云计算、安全和网络技术充满热情。

11 条评论

第 11 题的答案,即符号链接,是完全错误的。

答案的问题在于它是参考链接的凝练,措辞不当甚至错误。“硬链接是原始文件的镜像副本”,不,它不是,没有“副本”。它是对第一个目录条目引用的相同 inode 的目录引用,并且 inode 会更新以增加引用计数以了解存在指向该数据的新链接。这意味着当一个文件被“删除”时,目录会更新以删除文件名,并且数据文件的 inode 的引用计数会递减。除非引用计数变为 0,否则不会释放该文件的数据。由于 inode 对于每个文件系统都是唯一的,因此硬链接不能跨文件系统。软链接创建了一种让目录条目说“文件信息实际上存储在另一个目录条目中”的方式。如果“另一个目录条目”被删除,软链接就会中断。
因此,描述硬链接和软链接之间区别的“用户”方式是,硬链接是指向文件数据的链接,而软链接是指向另一个文件名的链接。

回复 by David Lewis (未验证)

嗨 Bruce,我已经将答案调整为您详细答案的引用。感谢您抽出时间分享它!请告诉我是否应该包含任何引文。

回复 by Bruce Bowen (未验证)

很棒的文章,对于系统管理员来说也是一个很好的全面复习!

这是一个很好的复习列表……我特别喜欢关于 fork 炸弹的细节。

netstat 默认不再安装在 Ubuntu 下,试试 ss

什么是 RAID?

> 符号链接和硬链接有什么区别?
该问题的答案似乎是错误的。
硬链接不是镜像。

根据我的记忆

所有文件都是硬链接。
文件的 inode 有一个计数器 - 有多少硬链接指向它。
当您删除指向文件 inode 的最后一个硬链接时(因此计数器为 0) - 系统会将此磁盘空间视为可用空间(如果没有打开的文件描述符)。

请指正我,如果我说错了。

如果你是一个Linux商店,那很好。没有一个关于Windows的问题,但有很多非*nix系统管理员。

#5 中关于 tar 的选项不完整。如果是 tgz 文件,你需要加上 z 标志。
#11 完全错误,它不是一个镜像,而是指向文件 inode 的指针。
#14 没有必要这么迂回。如果你有足够的权限通过 visudo 编辑 sudoers 文件,你可能可以直接使用 "sudo su - user command" 来运行命令。

© . All rights reserved.