![使用“su - lfs”命令切换用户时遇到问题](https://linux22.com/image/751886/%E4%BD%BF%E7%94%A8%E2%80%9Csu%20-%20lfs%E2%80%9D%E5%91%BD%E4%BB%A4%E5%88%87%E6%8D%A2%E7%94%A8%E6%88%B7%E6%97%B6%E9%81%87%E5%88%B0%E9%97%AE%E9%A2%98.png)
我正在尝试从头开始使用 Linux。我能够创建用户来管理所有内容(名为 lfs),并且能够使用此命令登录。然后我关闭了电脑的电源,但我无法再切换到该用户。如果我su - lfs
在终端中输入,则在正确输入用户密码后会得到输出[1]+ Stopped su - lfs
。有什么想法可以解决这个问题吗?谢谢。
答案1
以某种方式SIGSTOP
向进程发送信号su
。有趣的是,只有root
进程才能向 发送信号su
。换句话说:它不能是由 启动的 shell su
。至少不是直接启动的;必须是某个sudo
命令或类似的东西。
您可以这样做:在运行之前,su - lfs
运行echo $$
以获取 shell 的 PID。然后在另一个终端中运行:
strace -f -tt -p $PID -o shell.strace
然后运行su - lfs
。su
停止后,使用 - 中止strace
并Ctrl查看C文件shell.strace
。它应该包含类似以下行
[pid 23558] --- SIGSTOP {si_signo=SIGSTOP, si_code=SI_USER, si_pid=23560, si_uid=0} ---
[pid 23558] --- stopped by SIGSTOP ---
这将为您提供发送信号的进程的 PID。