更改密码后无法使用 sudo su

更改密码后无法使用 sudo su

我正在运行 Ubuntu 14.04 LTS。

昨天,我更改了我的用户帐户(管理员帐户)的密码。今天早上,我发现我无法再使用sudo su切换到root。我知道 sudo 使用我的用户帐户的密码,而不是 root 帐户的密码,但它不允许我使用任一密码转到 sudo su 。

然后,重新启动后,当我登录用户帐户时,它会在屏幕上短暂闪烁一条消息,然后再次询问我的用户名和密码。昨天我还更改了主目录的权限,因此我以 root 身份登录并chmod 777针对我的主目录发出命令。现在我可以使用该用户帐户登录,但我的目录结构已被替换,就像我是新用户一样。如果我以 root 身份从终端查看目录,我会看到以下内容而不是以前的目录结构:

root@CLM1001-Ubuntu:/home/stephen# whoami
root
root@CLM1001-Ubuntu:/home/stephen# ls
Access-Your-Private-Data.desktop  Documents  Music     Public      Templates
Desktop                           Downloads  Pictures  README.txt  Videos
root@CLM1001-Ubuntu:/home/stephen# 

我之前在尝试删除后就见过这种行为.ecryptfs,然后我唯一的办法就是从系统备份中恢复。

除了从备份中进行另一次完整系统恢复之外,我还能做些什么来让该用户帐户再次正常工作吗?

我看了看/var/log/syslog/var/log/auth.log但没有看到任何对我来说显而易见的东西。如果需要,我可以从这些日志中添加转储,但它们很大。

添加更多信息:我注意到我的用户帐户无法再执行 mysqldump - 它出现特权被拒绝错误。虽然我能够进入phpmysql。 (我知道这是另一个问题,所以除了第一个问题的附加信息之外,请尽可能忽略它。)

好的,这里有更多关于这个问题的信息(如果我能让我的 iMac 配合的话)。我执行了一个“脚本”会话,并尝试立即发布捕获的文本:

Script started on Sun 31 May 2020 03:51:24 PM PDT  
  stephen@CLM1001-Ubuntu:~$ whoami  
stephen  
  stephen@CLM1001-Ubuntu:~$ pwd  
/home/stephen  
  stephen@CLM1001-Ubuntu:~$ hostname  
CLM1001-Ubuntu  
  stephen@CLM1001-Ubuntu:~$ uname -a  
Linux CLM1001-Ubuntu 3.13.0-93-generic #140-Ubuntu SMP Mon Jul 18 21:21:05  UTC 2016 x86_64 x86_64 x86_64 GNU/Linux  
  stephen@CLM1001-Ubuntu:~$ passwd  
Changing password for stephen.  
(current) UNIX password:   
Enter new UNIX password:   
Retype new UNIX password:   
passwd: password updated successfully  
  stephen@CLM1001-Ubuntu:~$ sudo su  
[sudo] password for stephen:   
  root@CLM1001-Ubuntu:/home/stephen# whoami  
root  
  root@CLM1001-Ubuntu:/home/stephen# exit  
exit  
  stephen@CLM1001-Ubuntu:~$ whoami  
stephen  
  stephen@CLM1001-Ubuntu:~$ ./SQLbackup  
./SQLbackup  
Sun May 31 15:57:06 PDT 2020  
/dev/sdb5 on /media/stephen/Hitachi72101Ptn5 type ext4 (rw)  
/media/stephen/Hitachi72101Ptn5 is mounted  
-- Warning: Skipping the data of table mysql.event. Specify the --events  option explicitly.  
<snip> [note: SQLbackup is my script that runs mysqldump.]  
  stephen@CLM1001-Ubuntu:~$ echo "Ok, it looks like mysqldump is working."  
Ok, it looks like mysqldump is working.  
  stephen@CLM1001-Ubuntu:~$ exit  
exit  
Script done on Sun 31 May 2020 03:57:35 PM PDT  

然后

  1. 我登录为stephen

    1. 我可以看到我的主目录完好无损
    2. 我可以sudo su毫无问题
    3. 我可以mysqldump毫无问题地运行。
  2. passwdstephen我更改了帐户的密码

  3. 我可以sudo su毫无问题

  4. mysqldump没有问题
  5. 通过Firefox浏览器,尝试登录phpmyadmin,但无法登录phpmyadmin stephen(无论我使用哪个密码)
  6. ls仍然显示我的主目录,没有问题
  7. 重新启动系统
  8. 无论我使用哪个密码都无法以斯蒂芬身份登录
  9. 使用不同的用户帐户登录系统
  10. sudo su(至根)
  11. passwd Stephen
  12. 我再次将stephen账户的密码设置为原来的密码
  13. 注销
  14. 以斯蒂芬身份再次登录:屏幕上有东西闪烁,然后直接返回登录屏幕
  15. 再次重新启动系统
  16. 以 Stephen 身份登录:屏幕闪烁并再次直接返回登录屏幕
  17. 使用第二个用户帐户登录
  18. su Stephen

    Signature not found in user keyring
    Perhaps try the interactive 'ecry0tfs-mount-private'
    

因此,机器此时已死机,直到我再次找到修复或从备份恢复为止。


好的,所以我使用第二个用户帐户再次登录到问题计算机。然后我sudo su(以 root 身份)以 root 身份执行了以下步骤:(第二个用户是 rootytooty。)

root@CLM1001-Ubuntu:/home/rootytooty# whoami
root
root@CLM1001-Ubuntu:/home/rootytooty# cd /
root@CLM1001-Ubuntu:/# pwd
/
root@CLM1001-Ubuntu:/# su stephen
Signature not found in user keyring
Perhaps try the interactive 'ecryptfs-mount-private'
stephen@CLM1001-Ubuntu:/$ man ecryptfs-mount-private
stephen@CLM1001-Ubuntu:/$ ecryptfs-mount-private
Enter your login passphrase:
Error: Unwrapping passphrase and inserting into the user session keyring failed [-5]
Info: Check the system log for more information from libecryptfs
ERROR: Your passphrase is incorrect
Enter your login passphrase:
Error: Unwrapping passphrase and inserting into the user session keyring failed [-5]
Info: Check the system log for more information from libecryptfs
ERROR: Your passphrase is incorrect
Enter your login passphrase:
Error: Unwrapping passphrase and inserting into the user session keyring failed [-5]
Info: Check the system log for more information from libecryptfs
ERROR: Your passphrase is incorrect
ERROR: Too many incorrect password attempts, exiting
stephen@CLM1001-Ubuntu:/$ whoami
stephen
stephen@CLM1001-Ubuntu:/$ ecryptfs-mount-private stephen
Enter your login passphrase:
Error: Unwrapping passphrase and inserting into the user session keyring failed [-5]
Info: Check the system log for more information from libecryptfs
ERROR: Your passphrase is incorrect
Enter your login passphrase:
Error: Unwrapping passphrase and inserting into the user session keyring failed [-5]
Info: Check the system log for more information from libecryptfs
ERROR: Your passphrase is incorrect
Enter your login passphrase:
Error: Unwrapping passphrase and inserting into the user session keyring failed [-5]
Info: Check the system log for more information from libecryptfs
ERROR: Your passphrase is incorrect
ERROR: Too many incorrect password attempts, exiting

我想我会再次进行恢复。

顺便说一句:/var/log/syslog只显示我们在终端中看到的相同消息。

答案1

好吧,这是我恢复的方法:

  1. 使用第二个管理员帐户登录 [我的第二个帐户是rootytooty]
  2. 更改为 root 帐户:sudo su

  3. 查看受损帐户的主目录的内容,ls /home/stephen并注意该目录包含Access-Your-Private-Data.desktopREADME.txt文件,但不包含本应存在的文件。

  4. 删除受损帐户的主目录:rm -r stephen

  5. 删除 ecryptfs 包

    apt-get remove ecryptfs-utils libecryptfs0
    
  6. 为损坏的帐户创建一个新的空主目录

    mkdir /home/stephen
    
  7. 设置新的主目录的权限

    chown stephen /home/stephen
    chgrp stephen /home/stephen
    chmod 777 /home/stephen
    
  8. 从受损帐户主目录的备份副本中删除.Private和子目录。 .ecryptfs您确实在外部磁盘上备份了该目录的副本,不是吗?

    cd /externaldrive/Backups/stephen-home
    rm -r .ecryptfs
    rm -r .Private
    
  9. 将文件从备份驱动器恢复到您创建的新主目录。

    cp -pvr /externaldrive/Backups/stephen-home/* /home/stephen/
    

    注意:在此复制活动期间,我的显示器变黑,然后显示一条消息“无信号”,红色磁盘活动指示灯熄灭,我只能听到主板风扇转动的声音。因此,我从活动磁盘(重做备份磁盘)重新启动。我安装了包含备份文件的驱动器和包含 /home/stephen 目录的驱动器,然后使用活动 CD 继续复制文件。

    cp -vprf /externaldrive/Backups/stephen-home/* /home/stephen/
    
  10. 重新启动系统并以 登录stephen。我的隐藏目录不存在(.mozilla.firefox.local等),因此我必须从备份中复制隐藏目录。

    cp -pvr /externaldrive/Backups/stephen-home/.[^.]* /home/stephen/
    

    几个启动器图标丢失,用户设置消失(窗口背景图像等)。我的 ftp 软件保存的设置消失了。对于其他应用程序也是如此。所以我不得不再次设置我的应用程序。但我的电子邮件历史记录都在那里。

感谢 Nikos Alexandris 在 2012 年 12 月 25 日发表的帖子如何停止使用内置主目录加密感谢 AB、pLumo 和 roaima 的调查。他们查明了问题的原因:自 Ubuntu 10.04 以来一直存在的错误。

因此,如果您正在运行 ecryptfs,请不要更改密码。我希望这可以帮助下一个遇到这个问题的人。我不知道它在 Ubuntu 的后续版本中是否仍然存在,但在 Ubuntu 14.04 LTS 中它仍然存在。

感谢 StackExchange 提供这个场地。

答案2

因此,如果您在更改密码之前拥有 root 帐户,则可以使用用户名:root 和未更改的密码登录,因为sudo su这是为用户帐户创建 root 登录。如果您使用sudo su,它将在用户帐户登录后起作用,因此在输入sudo su并更改密码后。我希望这将是 root 访问权限。

相关内容