所以我安装了它zsh
,但我不喜欢它。所以我做了apt-get remove zsh
从那时起,我无法重新登录,我单击我的用户...然后它就回到登录屏幕。我只能使用 登录Guest session
。
我认为问题是由于我的用户的默认 shell 是 zsh 并且它不再存在而引起的。
我如何从来宾会话重新安装它或更改来宾用户的默认 shell?
甚至尝试登录,ctrl+alt+f2/6
我输入了我的用户名和密码。登录成功,但我被抛回到登录。
有任何想法吗?
答案1
sudo
来宾用户没有被授予运行或 的权限pkexec
,而这些权限是更改其他用户的 shell 所必需的(除非您是 root 用户,但您不是)。
所以我唯一想到的解决办法是启动到 root shell并将用户的 shell 更改为 root:
chsh -s /bin/bash user
user
您的用户名在哪里。
答案2
所以除了@kos 所说的之外......
由于某种原因,我source ~/.profile
在我的 .bashrc 文件中添加了内容(不知道为什么..在某处读到它)并且我的.profile
文件加载了它.bashrc
,这导致循环加载!
删除source..
+@kos 解决方案就成功了!
答案3
以 root 身份登录或启动到 root shell 并将 /etc/passwd 中的 shell 条目编辑为“/bin/sh”。然后,您可以再次以自己的身份登录并从那里进行更改。
答案4
我无法找到我的正确的 /etc/passwd
文件,从我的根用户中删除,zsh
以便我可以重新登录,正如以前的答案正确建议的那样。
我使用救援模式启动,在那里,我/etc/passwd
看着救援模式 Linux这无疑是错误的。
因此,我挂载了原来的 Linux(例如,在/mnt/vdb1
或/mnt/sda1
用于常见情况),并查看了文件/mnt/vdb1/etc/passwd
,找到了我原来的 Linux 用户,编辑了我的root
用户 shell,禁用了救援模式,最后能够以 身份重新登录root
。所以:
挂载你的 Linux 分区,然后在你的救援模式 Linux 上/mnt/{mount_folder}/etc/passwd
查找而不是查找。/etc/passwd
希望这对某人有帮助。