ZSH已删除,无法重新登录


14

所以我已经安装了zsh,但我不喜欢它。所以我做了apt-get remove zsh

从那时起,我无法重新登录,请单击我的用户..,然后返回登录屏幕。我只能使用登录Guest session

我认为是由于我的用户上的defualt shell是zsh而引起的,并且不再存在。

如何从更改我的用户来宾用户默认外壳的来宾会话重新安装它?

即使尝试登录,ctrl+alt+f2/6我也输入我的用户名和密码。登录是成功的,但是我又回到了登录状态。

有任何想法吗?


第二个想法是,壳问题可能没有影响。加载DM之后再加载DE之前,不会生成任何用户外壳程序(这也可能不是问题)。而且我也不知道~/.bashrc- ~/.profile循环:我已经测试了清除用户外壳程序和在VM中创建~/.bashrc- ~/.profile循环的过程,尽管我无法登录,但我始终能够通过LightDM登录。通过带有~/.bashrc- ~/.profile循环的控制台(但仍然可以使用LightDM)。无论如何,您都不应接受我的回答。
kos

Answers:


16

未向来宾用户授予运行sudo或的权限pkexec,除非更改根用户的权限,否则该权限是必需的(除非您是root用户,否则不是)。

因此,对我而言,唯一的解决方案是引导到root shell并将用户的shell更改为root:

chsh -s /bin/bash user

user用户的用户名在哪里。


有人想知道当root的外壳也是zsh ... LiveCD时如何解决此问题?
凯文

@Kevin这个答案可能是错误的。该外壳与用户未登录到DE无关,因为在DM加载之后,在DE加载之前没有生成任何用户外壳。我不知道是否有更好的选择,以防有人设法以这种方式将自己锁定,但我想使用Live DVD并/etc/passwd手动更改应该可以。
科斯

4
@Kevin可能带有的启动选项init=/bin/bash
user253751 '16

2

以root用户身份登录或引导到root shell,然后将/ etc / passwd中的shell条目编辑为“ / bin / sh”。然后,您可以再次以自己的身份登录并从那里进行更改。


1

因此,除了@kos所说的话。

由于某种原因,我将source ~/.profile文件添加到了.bashrc文件中(不知道为什么。在某处读取该.profile文件),并且文件加载了.bashrc,导致循环加载!

删除source..+ @kos解决方案就可以了!


Linux桌面破坏了.profile-for-env-vars和“每次登录一个” / .bashrc-for-aliases范例。既然你有时需要ENV乏设置的东西的工作,我可以看到为什么人们可能会认为这是一个好主意,source ~/.profile.bashrc。(登录到桌面会话可能无法获取您的个人资料,以便为该会话的所有子级设置环境变量。)
Peter Cordes

1

对于谁有问题从卸载zsh。尝试执行以下步骤。

  1. 通过恢复模式以root用户身份登录。您可以在此答案中查看如何操作。/ubuntu//a/92558/104228
  2. 以root用户身份登录后。打开/etc/passwd。找到您的用户条目,然后从更改/usr/bin/zsh/bin/sh。保存文件并按照正常步骤重新启动。您应该正常登录。
  3. 重新启动ubuntu之后。您会发现您的外壳看起来很糟糕。运行此命令chsh -s /bin/bash。输入密码并输入。您的shell现在会看起来不错。
  4. 键入sudo apt-get purge --auto-remove zsh以清除另一个zsh依赖包。

我希望这一步可以帮助另一个与我有相同问题的人。

PS。我的英语不是主要语言。希望你能理解我。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.