如何在Linux上为所有拥有的文件更改USER和GROUP ID
时间:2020-01-09 10:41:17 来源:igfitidea点击:
如何在Linux操作系统上更改UID(用户ID)/GID(组ID)和所有附属文件。
如何在Linux上将UID从1005更改为2005,将GID从1005更改为2005。
如何对所属文件和目录进行此类更改?
该过程非常简单:
- 使用sudo命令/su命令成为超级用户或获得等效角色
- 首先,使用usermod命令为用户分配一个新的UID。
- 其次,使用groupmod命令为组分配一个新的GID。
- 最后,使用chown和chgrp命令分别更改旧的UID和GID。您可以在find命令的帮助下使其自动化。
- 使用ls命令验证文件的组所有者是否已更改
在Linux上更改USER和GROUP ID
在执行此操作之前,对系统进行备份有多么重要,这已经足够强调了。
进行备份。
假设我们的示例用户名为foo
- 旧版UID:1005
- 取消新的UID:2005
- 我们的示例组名称:foo
- 旧版GID:2000
- 取消新GID:3000
让我们看一些示例和命令来更改Linux中的用户和组ID:
Linux命令更改UID和GID
要为名为foo的用户分配新的UID,请执行:
# usermod -u 2005 foo
要将新的GID分配给名为foo的组,请执行:
# groupmod -g 3000 foo
借助ls命令,验证是否已更改给定用户的UID和GID:
# ls -l
请注意,只要您在上面的两个命令中执行,位于用户主目录中的所有文件的文件UID就会自动更改。
但是,用户主目录外部的文件需要手动更改。
要分别手动更改具有旧GID和UID的文件,请执行:
# find / -group 2000 -exec chgrp -h foo {} \; # find / -user 1005 -exec chown -h foo {} \;
-exec命令在每个文件上执行chgrp或chmod命令。
传递给chgrp/chmod命令的-h选项会影响每个符号链接,而不是任何引用的文件。
使用以下命令进行验证:
# ls -l /home/foo/ # id -u foo # id -g foo # grep foo /etc/passwd # grep foo /etc/group # find / -user foo -ls # find / -group sales -ls