使用 su 切换部署账号

交接文档中只剩最后一项任务:确认 deploy 账号持有的部署令牌。

前面我们发现,当前账号 crow 无法进入 /home/deploy/secret。在真实运维场景中,如果已经拿到合法凭证,更常见的做法是切换到对应账号,再以该身份完成检查;不要为了方便读取而擅自修改私密目录权限。

点击下方启动独立实验环境:

核对部署令牌

Lab

打开这份独立实验的 OPSBOX 终端:OPSBOX 终端(启动 Lab 后显示)。 先检查 /home/deploy 下的目录权限,说明 crow 为什么不能读取私密资料。 再从 /srv/ops 中查找本实验允许使用的部署账号线索,以对应身份读取私密目录中的部署令牌。 只提交令牌本身(以 tok_ 开头),不提交账号密码,也不修改私密目录的访问权限。

加载会话状态…

提交 coin

题解 Hint

确认目录权限问题

先在 OPSBOX 终端中查看私密目录本身的权限:

crow@opsbox:~$ ls -ld /home/deploy/secret

正常情况下,输出可能会类似:

drwx------ 2 deploy deploy 4096 ... /home/deploy/secret

这表示:只有 deploy 用户拥有进入、列出和读取该目录的权限。crow 既不是目录属主,也没有对应的组权限或其他权限,因此无法访问 /home/deploy/secret。

查找部署凭据

从 /srv/ops 中可读的部署文件里寻找 deploy 账号线索:

crow@opsbox:~$ ls -l /srv/ops

查看部署配置文件:

crow@opsbox:~$ cat /srv/ops/deploy.conf

如果文件较长,也可以直接搜索常见关键词:

crow@opsbox:~$ grep -i -E "user|pass|token|deploy" /srv/ops/deploy.conf

阅读时注意区分三类信息:

  • 账号名:通常是 deploy,用于执行用户切换。
  • 登录密码:用于切换账号,但不是本题答案。
  • 部署令牌:通常以 tok_ 开头,保存在私密目录中,需要最终提交。

切换到 deploy 账号

找到密码后,使用 su - deploy 切换账号:

crow@opsbox:~$ su - deploy
Password: 

说明:

  • su - deploy 会以完整登录环境切换到 deploy 用户,并进入 /home/deploy。
  • 输入密码时,Linux 终端出于安全考虑不会回显任何字符,直接盲打并回车即可。

切换成功后,先确认当前身份和目录:

deploy@opsbox:~$ whoami
deploy
deploy@opsbox:~$ pwd
/home/deploy

读取并提交部署令牌

在 deploy 身份下,私密目录已经可以访问:

deploy@opsbox:~$ ls -la secret

读取保存部署令牌的文件:

deploy@opsbox:~$ cat secret/token.txt

最终只提交以 tok_ 开头的令牌字符串。不要提交密码,也不要修改 /home/deploy/secret 的权限。