意外修改的.bashrc,尽管输入了正确的密码,但我仍然无法登录


23

我用bashrc文件弄乱了bigtime。我正在安装Gurobi,并且必须在bashrc文件中设置路径变量。因此,我用路径变量替换了bashrc中的所有文本,并保存了bashrc文件。而且我还确保,如果发生任何不好的情况,我都有该文件的备份。原始的未修改备份文件位于“下载”文件夹中。

现在,当我重新启动系统时,尽管输入了正确的密码,但我仍无法登录。因此,我想向您寻求帮助。鉴于我在Downloads目录中仍然有bashrc文件,可以进行哪些修复


1
使用grub抢救或实时会话从错误的下载目录复制它。
Rinzwind '16

你能详细说明你的建议吗?关于ubuntu,我还是一个初学者
crypto

1
现在,您让我想知道以前出现在这种情况下的登录屏幕上的故障保护选项发生了什么。
卡巴斯德(Kasperd)

3
为什么不以root用户身份登录并更正用户的.bashrc文件?
jamesqf

3
经典方法是引导进入单用户模式。您必须中断引导加载程序,并在指定内核和引导参数的行中添加“单”,例如此处所述
彼得-恢复莫妮卡

Answers:


38

使用LiveUSB或LiveDVD。

进入实时会话,安装硬盘驱动器,然后将原始.bashrc文件复制到修改后的文件中。

然后,您可以安全地重新启动(弹出USB或DVD)。

一般信息:如果您没有.bashrc文件备份,可以使用liveUSB / DVD中的文件。


我认为做后备的整点是当你的文件是不同从安装光盘中的默认的。
德米特里·格里戈里耶夫

2
是的,它们确实是,但是也有可能是您毁了某些东西,不知道确切是什么,或者您没有备份。这就是为什么我在回答操作人员问题时也添加了有关可能没有备份的人的一般信息;)
Michal Polovka 16-10-28

是的,如果您没有损坏的备份,则必须从头开始。幸运的是,OP有一个。
德米特里·格里戈里耶夫

25

您应该能够启动到恢复模式,这将使您进入根shell,然后从那里纠正问题。这样避免了下载其他操作系统的需要。

取自Ubuntu Wiki的说明:

  1. 开启电脑。
  2. 等待BIOS完成加载或即将完成。(在这段时间中,您可能会看到计算机制造商的徽标。)
  3. 快速按住Shift键,将弹出GNU GRUB菜单。(如果看到Ubuntu徽标,则说明您无法进入GRUB菜单。)

  4. 选择以“ Advanced options” 开头的行。

  5. 选择以“ (recovery mode)” 结尾的行,可能是第二行,例如:

    Ubuntu GNU/Linux, with Linux 3.8.0-26-generic (recovery mode)

  6. 按回车,您的计算机将开始启动过程。

  7. 片刻之后,您的工作站将显示一个包含许多选项的菜单。选项之一(您可能需要向下滚动到列表的底部)是“ Drop to root shell prompt”。按Return键,突出显示此选项。

  8. 根分区是只读安装的。要以读/写方式安装它,请输入命令

    mount -o remount,rw /

  9. 如果在单独的分区上有/ home,/ boot,/ tmp或任何其他安装点,则可以使用以下命令将它们安装

    mount --all

    (必须在第8步之后执行此操作才能/etc/mtab写。)

如果没有恢复选项,则可以e在GRUB中按编辑标准启动选项,然后recovery在行末添加linux(默认情况下倒数第二行,位于之前initrd)。然后按F10运行它。


9

使用现场CD

  1. 使用实时CD / DVD引导。如果您没有iso并且不想下载大型iso,请下载Tiny Core-10MB。
  2. 在命令行中sudo mount /dev/sdXn /mntsdXn您的Ubuntu分区在哪里。
  3. 输入cd /mnt/home/<your user name>/Downloads
  4. 现在,使用此命令将您的还原.bashrc为新的。.bashrcmv ../.bashrc ../.bashrc_old && cp ./.bashrc ../
  5. 现在重新启动系统,您应该一切顺利。

8

插入用于安装Ubuntu的DVD或USB并从中启动。选择“尝试Ubuntu”,然后等待其返回桌面。

检查lauchers中有您家的磁盘。单击它会将其装入/ media /

打开一个终端并将其cd插入“下载”,然后将文件复制到您的家中。那将是:

cd /media/home/{your_username}/Downloads/
sudo cp .bashrc ../

并在没有DVD / USB的情况下重新启动。


我得到类似cp的内容:无法创建常规文件'../bashrc':权限被拒绝。:(
加密

啊,用须藤!:)
Rinzwind '16

这是一个la脚的问题。抱歉。学习到教训了!正如您所建议的,我接受Michal的回答。希望没事
加密

没问题,无论如何我都在200上> :)
Rinzwind

6

通过SFTP连接

从另一台Linux机器的内置sftp命令或具有WinSCP或FileZilla的PC 通过SFTP连接到系统,然后修复文件。该.bashrc文件通常不参与SFTP(可以对authorized_keys文件进行调整以使其参与其中,但您怀疑这样做是否可行)。


或者,类似地,与ssh dash(或任何其他非bash外壳)连接。
彼得·泰勒

5

我建议总是有两个sudo帐户。如果您为该帐户提供普通密码,这些帐户在所有情况下都可以充当ALMOST的根用户。您暂时成为root。

如果您搞砸了一个帐户,则可以与另一个帐户一起解决。

但是,如果您知道密码,则可以使用常规帐户和“ su screwed-up-sudo-account-name”。然后,您将充当搞砸的帐户,并且可以在“ dc / home / screwed-up-account”之后使用“ sudo cp backup .bashrc”,但现在可以不用搞砸了,但是不确定您的具体情况。


4

正如少数人所说,最好使用一个“ sudo”帐户。其次,如果您对.bashrc文件进行了大量修改,请在开始修补之前将其副本放到记忆棒上,然后不必从头开始,可以返回到上一个已知商品。 bashrc文件,而不会丢失以前的所有修改。修改.bashrc或.vimrc或。时,我做的第一件事。。。在开始之前,任何配置文件都会复制到我的随身记忆棒中。我是人类,我有孩子,我会分心。我的记忆棒中充满了bash,vim,conky,openbox,tint2等配置文件。


另一个技巧是使用RCS来对配置文件(例如bashrc,vimrc或/ etc中的任何文件)的历史记录进行版本控制。
ChuckCottrill

0

而是以root用户身份登录,然后像其他答案一样使用备份来修复.bashrc。

为了获得最佳安全性,请不要登录正常的X Windows环境。相反,请单击control-alt-F2以转到文本控制台并登录。解决问题后,请运行exit以从root Shell注销,然后单击control-alt-F7以返回至X Windows。(请注意,X Windows可能位于tty1而不是tty7上,因此您可能需要使用tty1 control-alt-F1或tty7。从历史上讲,它们是传统的,但是一些发行版将其转移到tty1上,因为人们很少使用ttys。Ubuntu可能有也可能没有为此,请尝试找出系统的配置方式。)


root帐户在Ubuntu中已禁用,因此除非启用它,否则无法以root身份登录。
赛斯

1
@Seth如果您有权访问引导加载程序,则可以引导进入恢复模式并在那里获得根shell。
鲍勃

@Bob是的,但这不是答案。那应该可以。
赛斯

1
@Seth是的,我已经在这里添加了自己的答案,并且有更多详细信息。哦,顺便说一句@ db48x,通常X11可以在tty7(Ctrl + Alt + F7)上运行,而不是tty1
鲍勃,

uch,我不知道他们禁用了根帐户。也许我毕竟不会升级我的一台Ubuntu计算机...
db48x 16/10/27

0

发生此事件后,每次打开PC时,都会看到通常的ubuntu登录屏幕,除了输入密码后,该屏幕闪烁一秒钟,然后再次显示登录屏幕。

我不知道这是否是您的问题,但这一次发生在我身上。如果在shell-start上加载的任何文件(.bashrc,.bash_profile,.profile)将文本输出到stdout,您将无法以图形方式登录。您仍然可以进入tty(ctrl + alt + f1),从那里登录,然后恢复文件。

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.