KodeKloud 100天挑战 第1周:第1-4天(或者:我如何学会不再担心并爱上 Slow Labs)

发布: (2025年12月20日 GMT+8 03:00)
3 min read
原文: Dev.to

Source: Dev.to

Day 1 – Non‑Interactive Users

挑战是创建一个使用非交互式 shell 的用户。

sudo useradd -s /usr/sbin/nologin username
getent passwd username

错误: 在错误的主机上运行了这些命令。花了几分钟才想明白为什么验证失败,后来才意识到自己在本地终端而不是实验 VM 上。

教训: 始终先检查自己所在的主机(先运行 hostname)。


Day 2 – Temporary Users

创建一个带有过期日期的用户账户。

sudo useradd anita -e 2023-06-05
chage -l anita

这会生成一个“计时炸弹”账户——适用于临时承包商或实习生。

额外技巧: 在 20 分钟后自动锁定账户。

echo "usermod --lock username" | at now + 20 minutes

错误: 再次在错误的主机上执行。


Day 3 – Disabling Root SSH

Manual approach

sudo vi /etc/ssh/sshd_config
# Change: #PermitRootLogin no → PermitRootLogin no
sudo systemctl restart sshd

在三台服务器上手动操作非常繁琐(每次 SSH 连接约 30 秒)。

Automated solution

for server in app1 app2 app3; do
    ssh "$server" "sudo sed -i 's/#PermitRootLogin no/PermitRootLogin no/' /etc/ssh/sshd_config && sudo systemctl restart sshd"
done

原本需要 30 分钟的工作,变成了 2 分钟的咖啡休息。

教训: 如果你重复同一件事超过两次且感到枯燥,就把它自动化。


Day 4 – File Permissions

让脚本对所有用户可执行。

chmod 755 /tmp/xfusioncorp.sh
ls -l /tmp/xfusioncorp.sh

输出:-rwxr-xr-x

Permission breakdown

  • 7 (rwx) – 所有者的全部权限
  • 5 (r-x) – 组的读取和执行权限
  • 5 (r-x) – 其他用户的读取和执行权限

常见模式

chmod 644 file.txt    # 所有者: rw, 组/其他: r
chmod 755 script.sh   # 所有者: rwx, 组/其他: rx
chmod 600 secret.txt  # 所有者: rw, 组/其他: 无

Week 1 Stats

  • 执行的命令数:约 50
  • 错误主机的失误次数:2 次
  • 实验加载时间:约 5 分钟/实验
  • “为什么不工作?”的时刻:7 次
  • 怀疑自己职业的次数:3 次

Key Takeaways

Commands I now know by heart

useradd -s /usr/sbin/nologin username
chage -l username
chmod 755 script.sh

Mistakes that taught me

  • 在运行命令前一定要检查 hostname
  • 对任何做超过两次的操作进行自动化。
  • 实验的速度 ≠ 学习的速度。

What’s Next

Days 5‑8 将涵盖:

  • 包管理(yumaptdnf
  • 服务管理(深入 systemctl
  • Cron 任务与调度
  • 更多自动化

Back to Blog

相关文章

阅读更多 »

仓库利用的权威指南

引言 仓库本质上只是一个 3‑D 盒子。利用率只是衡量你实际使用了该盒子多少的指标。虽然物流 c...