我有一个用户名为 jsmith,她最近结婚了,希望她的登录名反映她的新婚姓名:jdoe。我知道 usermod 会做出改变,但我担心我没有想到的影响。我想做以下事情:
mkdir /home/jdoe chown jdoe:jdoe /home/jdoe
usermod -l jdoe -m /home/jdoe jsmith cp -rp /home/jsmith/* /home/jdoe
该用户属于一个公共组,因此应该没有 GID 问题,并且我运行了 find 命令但没有结果来查找她的 GID 拥有的文件。
根据我的实验: usermod 命令将所有具有 jsmith 的 UID 的文件的所有权更改为 jdoe。没有她的 GID 文件,所以这没有实际意义。我必须手动进入 /etc/group 并在她所属的任何组中更改她的用户名。
基本上我的问题是: /etc/shadow 和 /etc/gshadow 需要手动修改吗?我错过了什么吗?
假设这是一个经过本地身份验证的用户(听起来像这样),您应该只能更改 /etc/passwd、/etc/shadow 和 /etc/group,然后将她的旧主目录名称更改为新的目录名称。
这将确保她拥有与以前相同的 UID,因此不会出现文件权限错误。她旧登录的唯一残余将存在于日志文件中。
用户名更改不会更改 uid 或 guid - 所以这样做应该没有问题:
如果确实需要更新用户 ID,可以使用 find 来完成。例如,如果旧的 UID 是 500,而新的 UID 是 600: