作为一个一直玩电脑的极客,在获得 IT 硕士学位后,职业生涯的选择是很自然的。因此,我决定系统管理员这条路是正确的。在我的职业生涯中,我已经非常熟悉面试流程。本文着眼于期望、一般职业道路以及一组常见问题和我的答案。
典型的系统管理员任务和职责
组织需要了解系统如何运作的基础知识的人,以便他们能够保证数据安全并保持服务平稳运行。你可能会问:“等等,系统管理员能做的就这些吗?”
你是对的。现在,总的来说,让我们看看典型的系统管理员的日常任务可能是什么。根据公司需求和个人技能水平,系统管理员的任务范围从管理台式机、笔记本电脑、网络和服务器,到设计组织的 IT 策略。有时,系统管理员甚至负责采购和订购新的 IT 设备。
那些寻求系统管理作为职业道路的人可能会发现很难跟上他们的技能和知识的更新,因为 IT 领域的快速变化是不可避免的。任何人脑海中自然而然产生的下一个问题是,IT 专业人士如何跟上最新的更新和技能。
低难度问题
以下是你将遇到的一些更基本的问题,以及我的答案
- 登录 *nix 服务器后,你输入的最初五个命令是什么?
- lsblk 查看所有块设备的信息
- who 查看谁登录了服务器
- top 了解服务器上正在运行的内容
- df -khT 查看服务器上可用的磁盘空间量
- netstat 查看哪些 TCP 网络连接处于活动状态
- 你如何使进程在后台运行?这样做有什么好处?
你可以通过在命令末尾添加特殊字符 & 来使进程在后台运行。通常,执行时间过长且不需要用户交互的应用程序会被发送到后台,以便我们可以在终端中继续工作。(引文)
- 以 root 身份运行这些命令是好主意还是坏主意?
以 root 身份运行(所有内容)是不好的,原因有两个主要问题。第一个是风险。当你以 root 身份登录时,没有什么可以阻止你犯粗心大意的错误。如果你尝试以潜在有害的方式更改系统,则需要使用 sudo,这会引入一个暂停(在你输入密码时),以确保你不会犯错误。
第二个原因是安全。如果你不知道管理员用户的登录信息,系统就更难被黑客入侵。拥有 root 访问权限意味着你已经拥有了一半可用的管理员凭据。
- rm 和 rm -rf 之间有什么区别?
rm 命令本身仅删除指定的文件(而不是目录)。使用 -rf,你添加了两个附加功能:-r、-R 或 --recursive 标志递归删除目录的内容,包括隐藏文件和子目录,而 -f 或 --force 标志使 rm 忽略不存在的文件,并且永远不会提示确认。
- Compress.tgz 的文件大小约为 15GB。你如何列出其内容?你又如何仅列出特定文件的内容?
要列出文件的内容
tar tf archive.tgz
要提取特定文件
tar xf archive.tgz filename
中等难度问题
以下是你可能会遇到的一些更难的问题,以及我的答案
- 什么是 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 结合了磁盘镜像和磁盘条带化来保护数据。它至少需要四个磁盘,并将数据条带化到镜像对中。只要每个镜像对中的一个磁盘正常工作,就可以检索数据。如果同一镜像对中的两个磁盘发生故障,则所有数据都将丢失,因为条带化集中没有奇偶校验。(引文)
- ping 命令使用哪个端口?
ping 命令使用 ICMP。具体来说,它使用 ICMP 回显请求和 ICMP 回显回复数据包。
ICMP 不使用 UDP 或 TCP 通信服务:相反,它使用原始 IP 通信服务。这意味着 ICMP 消息直接在 IP 数据报数据字段中传输。
- 路由器和网关之间有什么区别?什么是默认网关?
路由器描述了一般技术功能(第 3 层转发)或用于该目的的硬件设备,而网关描述了本地网段的功能(提供与外部的连接)。你也可以说你“将路由器设置为网关”。另一个术语是跳,它描述了子网之间的转发。
术语默认网关用于表示 LAN 上的路由器,该路由器负责作为 LAN 外部计算机流量的第一个联系点。
- 解释 Linux 的启动过程。
BIOS -> 主引导记录 (MBR) -> GRUB -> 内核 -> init -> 运行级别
- 你如何检查服务器启动时的错误消息?
内核消息始终存储在 kmsg 缓冲区中,可以通过 dmesg 命令查看。
启动问题和错误要求系统管理员查看某些重要文件,并结合特定命令,这些文件和命令在不同版本的 Linux 中以不同的方式处理
- /var/log/boot.log 是系统启动日志,其中包含系统启动期间发生的所有事件。
- /var/log/messages 存储全局系统消息,包括系统启动期间记录的消息。
- /var/log/dmesg 包含内核环形缓冲区信息。
- 符号链接和硬链接之间有什么区别?
2019 年 8 月 30 日更新 | 编辑注释: 此答案最初说“硬链接是原始文件的镜像副本”,这是不准确的。感谢 Bruce Bowen 提供以下答案
硬链接是指向第一个目录条目引用的同一 inode 的目录引用,并且 inode 会更新以增加引用计数,以了解存在指向该数据的新链接。这意味着当文件被“删除”时,目录会更新以删除文件名,并且数据 inode 的引用计数会递减。除非引用计数变为 0,否则不会释放文件的数据。由于 inode 对于每个文件系统都是唯一的,因此硬链接无法跨文件系统。软链接创建了一种目录条目来说明“文件信息实际上存储在另一个目录条目中”的方法。如果“另一个目录条目”被删除,软链接将断开。
因此,“用户”描述硬链接和软链接之间区别的方式是,硬链接是指向文件数据的链接,而软链接是指向另一个文件名的链接。
- 你如何更改内核参数?你可能需要调整哪些内核选项?
要在类 Unix 系统中设置内核参数,首先编辑文件 /etc/sysctl.conf。进行更改后,保存文件并运行 sysctl -p 命令。此命令使更改永久生效,而无需重启机器
- 解释 /proc 文件系统。
/proc 文件系统是虚拟的,并提供有关内核、硬件和正在运行的进程的详细信息。由于 /proc 包含虚拟文件,因此它被称为虚拟文件系统。这些虚拟文件具有独特的特性。它们中的大多数都列为零字节大小。
诸如 /proc/interrupts、/proc/meminfo、/proc/mounts 和 /proc/partitions 之类的虚拟文件提供了系统硬件的最新快照。其他文件,例如 /proc/filesystems 和 /proc/sys 目录,提供了系统配置信息和接口。
- 你如何在没有另一个用户密码的情况下以该用户的身份运行脚本?
例如,如果你要编辑 sudoers 文件(例如 /private/etc/sudoers),你可以使用 visudo 添加以下内容
- 什么是 UID 0 toor 帐户?你是否受到了入侵?
toor 用户是 root 用户的替代超级用户帐户,其中 toor 是 root 的倒写。它旨在与非标准 shell 一起使用,因此 root 用户的默认 shell 不需要更改。
此目的很重要。不属于基本发行版,而是从端口或软件包安装的 shell 安装在 /usr/local/bin 中;默认情况下,它位于不同的文件系统上。如果 root 用户的 shell 位于 /usr/local/bin 中,并且包含 /usr/local/bin 的文件系统未挂载,则 root 用户将无法登录以解决问题,并且系统管理员将必须重启进入单用户模式才能输入 shell 的路径。
高级问题
以下是你可能遇到的更困难的问题
- tracert 如何工作?它使用什么协议?
命令 tracert(或 traceroute,具体取决于操作系统)允许你准确查看在连接到最终目的地的连接链中接触到的路由器。如果你最终遇到无法连接到或 ping 最终目的地的问题,tracert 可以提供帮助,因为你可以准确地知道连接链在哪里停止。(引文)
有了这些信息,你可以联系到正确的人;无论是你自己的防火墙、你的 ISP、你的目的地的 ISP 还是中间的某个位置。tracert 命令(如 ping)使用 ICMP 协议,但也可以使用 TCP 三次握手的第一个步骤来发送 SYN 请求以获得响应。
- 使用 chroot 的主要优势是什么?我们何时以及为何使用它?在 chroot 环境中,mount /dev、mount /proc 和 mount /sys 命令的目的是什么?
拥有 chroot 环境的一个优势是文件系统与物理主机隔离,因为 chroot 在你的文件系统内部有一个单独的文件系统。不同之处在于 chroot 使用新创建的 root (/) 作为其根目录。
chroot 监狱允许你将进程及其子进程与系统的其余部分隔离。它应该仅用于不以 root 身份运行的进程,因为 root 用户可以轻松地逃脱监狱。
其思想是创建一个目录树,你在其中复制或链接进程运行所需的所有系统文件。然后,你使用 chroot() 系统调用告诉它根目录现在位于此新树的底部,然后在该 chroot 环境中启动进程运行。由于该命令随后无法引用修改后的根目录之外的路径,因此它无法在这些位置恶意执行操作(读取、写入等)。(引文)
- 你如何保护你的系统免受黑客攻击?
通过遵循最小权限原则和以下实践
- 使用公钥加密,这提供了出色的安全性。
- 强制密码复杂度。
- 了解你为何对上述规则进行例外处理。
- 定期审查你的例外情况。
- 追究某人失败的责任。(这让你保持警惕。)(引文)
- 什么是 LVM?使用它有什么优势?
LVM 或逻辑卷管理,使用一种存储设备管理技术,该技术使用户能够池化和抽象组件存储设备的物理布局,以便更轻松、更灵活地进行管理。使用设备映射器 Linux 内核框架,当前迭代 (LVM2) 可用于将现有存储设备收集到组中,并根据需要从组合空间分配逻辑单元。
- 什么是粘滞端口?
粘滞端口是网络管理员最好的朋友之一,也是最糟糕的头痛问题之一。它们允许你设置网络,以便交换机上的每个端口仅允许一台(或你指定的数量)计算机通过将其锁定到特定的 MAC 地址来连接到该端口。
- 解释端口转发?
当尝试与安全网络内部的系统通信时,从外部执行此操作可能非常困难——并且有充分的理由。因此,在路由器本身或其他连接管理设备中使用端口转发表可以允许特定流量自动转发到特定目的地。例如,如果你在你的网络上运行了一个 Web 服务器,并且你想从外部授予对其的访问权限,你将在相关服务器上的端口 80 上设置端口转发。这意味着任何在 Web 浏览器中输入你的 IP 地址的人都会立即连接到服务器的网站。
请注意,通常不建议允许从外部直接访问你网络中的服务器。
- 在 IDS 的情况下,什么是误报和漏报?
当入侵检测系统 (IDS) 设备针对实际上未发生的入侵生成警报时,这是误报。如果设备未生成任何警报,但入侵实际上已发生,则这是漏报的情况。
- 解释 :(){ :|:& };:,如果你已经登录到系统,如何停止此代码?
这是一个 fork 炸弹。它分解如下
- :() 定义函数,其中 : 作为函数名,空括号表示它不接受任何参数。
- { } 显示函数定义的开始和结束。
- :|: 将函数 : 的副本加载到内存中,并将其输出管道传输到另一个 : 函数的副本,该函数也必须加载到内存中。
- & 使前一个项目成为后台进程,以便即使父进程被自动终止,子进程也不会被杀死。
- 末尾的 : 再次执行该函数,因此链式反应开始。
保护多用户系统的最佳方法是使用特权访问管理 (PAM) 来限制用户可以使用的进程数。
fork 炸弹最大的问题在于它占用了太多进程。因此,如果我们已经登录到系统,我们有两种方法可以尝试解决此问题。一种选择是执行 SIGSTOP 命令来停止进程,例如
killall -STOP -u user1
如果你由于所有进程都被使用而无法使用命令行,则必须使用 exec 强制其运行
exec killall -STOP -u user1
对于 fork 炸弹,你最好的选择是首先阻止它们变得太大的问题
- 什么是 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 美元,具体取决于地点、组织规模以及你的教育水平和工作经验。最后,系统管理员的职业道路归结为你对使用服务器和解决酷问题的兴趣。现在,我想说继续前进,实现你的梦想之路吧。
11 条评论