我遇到了一个问题,它“破坏”了我的用户,我们称之为olduser
。我卡在了登录屏幕,我试过任何方法都无法修复它。
幸运的是我有备份,但我不需要它们,因为文件仍然在那里。
登录的唯一方法是通过新用户newuser
。但我的所有别名和安装位置都在它上面olduser
或指向它(别名)。我的ssh
指向也是olduser
。
例如,我的其他分区在 上/media/olduser/
,别名指向/home/olduser/Desktop/
。
所以,
我的问题是:我怎样才能重命名olduser
为 foo 或其他什么,以便我可以重命名newuser
为olduser
?
如果您好奇,以下是我遇到的问题和我尝试过的一些解决方案:
答案1
- 在恢复模式下启动到 root shell
- 使用以下方式以读写模式挂载文件系统:
mount -o remount,rw /
- 删除您创建的新用户
/etc/passwd
在文件中更改您的用户名。- 重启。
如果需要撤消更改,请重复步骤 1-2/etc/passwd
答案2
如果您已为 root 指定密码,则无需重启至恢复模式即可执行此操作。否则,您必须sudo passwd root
在开始此过程之前为 root 指定密码(例如使用 )或重启。
按 Ctrl-Alt-F1 并以 root 身份登录。或重新启动到恢复模式并调出 root shell。
使用
vipw
和分别vipw -s
更改/etc/passwd
和中的用户名/etc/shadow
。例如,将olduser
两个文件中的更改为foouser
,然后更改newuser
为olduser
。- 请记住更改用户的主目录字段。
对和文件执行相同
vigr
操作。vigr -s
/etc/groups
/etc/gshadow
cd 到所有用户主目录所在的目录。这几乎肯定是
/home
。mv olduser/ foouser
mv newuser/ olduser
更改 中所有文件的所有权和组
olduser/
。chown -R olduser olduser/
chgrp -R olduser olduser/
更改所有文件的所有权和组
foouser/
chown -R foouser foouser/
chgrp -R foouser foouser/
如果你必须重新启动到恢复模式,请再次重新启动,然后以 身份登录
olduser
。否则,只需按 Ctrl-Alt-F7(或与 GUI 登录屏幕相对应的任何 Fn 键)并以olduser