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 将涵盖:
- 包管理(
yum、apt、dnf) - 服务管理(深入
systemctl) - Cron 任务与调度
- 更多自动化