![在 Ubuntu 14.04 上更改 UID/GID 导致 Unity/XFCE 登录失败](https://linux22.com/image/978026/%E5%9C%A8%20Ubuntu%2014.04%20%E4%B8%8A%E6%9B%B4%E6%94%B9%20UID%2FGID%20%E5%AF%BC%E8%87%B4%20Unity%2FXFCE%20%E7%99%BB%E5%BD%95%E5%A4%B1%E8%B4%A5.png)
我正在尝试升级到 14.04,但有一个难题阻止我这样做,我会坚持使用 Lucid 直到支持结束。
我读过这个我如何更改自己的用户ID?
但显然在我的 Ubuntu 14.04 上它不起作用。
如果我尝试更改现有用户的 UID/GID,无论是通过命令行(usermod 等)还是通过系统 > 用户和群组 > 高级设置我最终陷入了死胡同:用户存在于系统中,UID 和 GID 是我设置的,我可以使用登录ssh
,文件所有权或 OK……但我无法从 Unity/XFCE GUI 登录。
修改后的用户只是从用户列表中“消失”,它也会从系统 > 用户和群组。
当然,用户在那里,但是不知为何却变得无能为力。
谢谢,
答案1
逻辑简单得像一个魔咒。一句好话usermod
可以让你开心一整天,如果你足够聪明,并且不会停留在你的每一句话上。死胡同...
需要说每个解决方案关于改变用户的安全由于不存在通用的解决方案,因此您必须单独决定。
是的,这看起来像是一个错误。
好的,阅读Ubuntu 上 usermod 的手册页定义改变UID的参数:
-u, --uid UID
用户ID的新数值。
除非使用该选项,否则此值必须是唯一的
-o
。该值必须是非负数。用户的邮箱以及用户拥有的位于用户主目录中的任何文件的文件用户 ID 都将更改 自动地。
必须手动修复用户主目录之外的文件的所有权。
不会对UID_MIN,UID_MAX,
系统用户识别号最小值, 或者SYS_UID_MAX从/etc/login.defs
。
还死胡同:
注意事项
如果出现以下情况,您必须确保在执行此命令时,指定用户没有执行任何进程用户的数字用户 ID,用户姓名, 或者用户的主目录正在被改变。
usermod
在 Linux 上检查这一点,但在其他架构上仅根据 utmp 检查用户是否登录。您必须手动更改任何 crontab 文件或作业的所有者。
您必须在 NIS 服务器上进行涉及 NIS 的任何更改。
另请阅读关于groupmod
。
当然,如果你需要修理你的“尽管如此”,你必须至少修复 HOME 文件夹之外的文件和目录的所有权:
sudo chown -R username /path/to/directory
最好的祝愿,