在不使用usermod在用户主目录上执行耗时的chown的情况下,更改一组用户UID的好方法是什么?

高利叶

我的情况

我继承了四个Linux盒的集合,其中没有注意保持UID在整个系统中的唯一性。有大约40个用户,这些用户共同拥有超过7TB的数据。

为了在这四个框之间的NFS安装/数据卷时保持理智,我需要获取匹配的UID。我还希望尽量减少执行此更改时要求用户保持注销状态的时间。

由于用户数量和数据量的原因,我编写了一个程序来对所有40个用户从当前状态UID转换为固定状态UID的文件(约7TB)。最后,我需要更改/ etc / passwd,以便用户名与新的固定状态UID匹配。

如果我只有一个用户要修复和/或要爬网和穿梭的数据较少,这将更简单。

我以为在运行程序以更改文件权限后,我只会运行

usermod -u fixedUID jsmith -o

对于40个用户中的每个用户。但是,usermod手册建议这样做是由/ home / jsmith中的文件自己完成的(因此不适合尝试通过简单的通过修复)。我无法弄清楚如何禁用此功能,我担心最后的usermod步骤会将我的1次通过修复变为41次通过修复。

我的问题

在将文件系统上的所有内容都扔掉之后,您将如何更改用户的UID?有没有比“ vipw”更好的方法?

案子

尝试临时更改用户的主目录(例如/tmp/home/username),更改uid,然后将homedir改回原来的目录。

例如:

# mkdir -p /tmp/home/jsmith  ## uncomment if required.
usermod -d /tmp/home/jsmith jsmith
usermod -u fixedUID jsmith -o
usermod -d /home/jsmith jsmith

如果用户的主目录不是/home/username,则可以使用以下命令提取真实的主目录getent

# mkdir -p /tmp/home/jsmith  ## uncomment if required.
homedir=$(getent passwd jsmith | awk -F: '{print $6}')
usermod -d /tmp/home/jsmith jsmith
usermod -u fixedUID jsmith -o
usermod -d "$homedir" jsmith

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档