在Ubuntu 14.04上更改UID / GID会破坏对Unity / XFCE的登录

我正试图升级到14.04,但是一个难题让我无法做到这一点,我坚持Lucid直到支持结束。

我读了这个如何更改自己的用户ID?
但显然在我的Ubuntu 14.04上它不起作用。

如果我尝试通过命令行(usermod等)或系统>用户组>高级设置来更改现有用户的UID / GID,我最终会处于死胡同状态:用户存在于可疑项目中,UID和GID是我设置的,我可以使用ssh ,文件所有权还可以……但是我无法从Unity / XFCE GUI登录。

修改后的用户只是从用户列表中“消失”,它也会从系统>用户组中消失。

当然用户在那里,但不知何故,它已经瘫痪了。

谢谢,

逻辑简单就像一个魅力。 如果你足够聪明,那么一个好的词汇usermod可以让你的一天成为你的一天,并且不要停留在你的每一个死胡同里 ……

需要说明由于通用解决方案不存在而必须单独决定改变用户安全性的每个解决方案。

是的,这可能看起来像一个错误。

好的,请阅读Ubuntu Manpages for usermod来定义更改UID的参数:

-u, – uid UID

用户ID的新数值。

除非使用-o选项,否则此值必须是唯一的。 该值必须是非负的。

用户的邮箱以及用户拥有且位于用户主目录中的任何文件都将自动更改文件用户ID。

必须手动修复用户主目录之外的文件所有权。

不会对UID_MINUID_MAX执行任何检查,
来自/etc/login.defs SYS_UID_MINSYS_UID_MAX

死胡同

CAVEATS

如果正在更改用户的数字用户ID用户名用户的主目录,则必须确保在执行此命令时,指定用户未执行任何进程。

usermod在Linux上对此进行检查,但仅检查用户是否根据其他体系结构上的utmp登录。

您必须手动更改任何crontab文件的所有者或作业。

您必须在NIS服务器上进行涉及NIS的任何更改。

另请阅读有关groupmod

当然,如果您需要修复“仍然”,您必须至少修复HOME文件夹之外的文件和目录的所有权:

 sudo chown -R username /path/to/directory 

最好的祝愿,