在Linux中更改用户ID

32

这是我想做的事情的简短描述:

用户tom的ID为1000。我正在调用usermod -u 2000 tom

除了tom的ID更改为2000之外,到底会发生什么?由该用户拥有的文件和文件夹是否仍然由该用户拥有,还是我必须显式设置所有者?

谢谢您的帮助!

1个回答

28

usermod 命令将修改用户在其个人目录下的文件权限。在个人目录之外的文件需要手动修改。

man usermod 列出了以下警告:

如果正在更改用户的数字用户ID、用户名或用户主目录,则必须确保命名用户在执行任何进程时都不会执行此命令。usermod 在 Linux 上检查此项,但只会根据 utmp 在其他架构上检查该用户是否已登录。

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

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


有没有简单的方法可以遍历所有文件(不仅限于主目录),检查它们是否具有旧的UID并将其更改为新的UID? - mryvlin
7
“find / -uid 1000 -exec chown -R tom {} ;”足够了吗?还需要做更多的工作吗? - mryvlin
17
你可能想要移除 find 命令中的 -R,因为这会使得 chown 命令变成递归执行。通常情况下,文件的所有者和包含这些文件的目录的所有者可能是不同的用户。 - Dennis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接