如何重命名 Unix 用户?

如何重命名 Unix 用户?

我有一个名为的用户hedgehog,我想让他被命名squirrel,但我不想更改他的数字用户ID。

我怎样才能做到这一点?

答案1

在 Linux 下,该usermod命令会更改用户名。它会修改系统帐户文件以反映命令行上指定的更改。

仅更改用户名:

usermod --login new_username old_username

要更改用户名和主目录名称:

usermod --login new_username --move-home --home path_to_the_new_home_dir old_username

您可能还想更改与用户关联的组的名称:

groupmod --new-name new_username old_username

答案2

笔记:如果您的目录已加密,请不要尝试此操作!如果是这种情况,您可能需要先检查:https://askubuntu.com/questions/107410/can-you-unencrypt-remove-encryption-from-a-user-home-folder

最直接的方法是:

  1. 创建具有 sudo 权限的新临时帐户:

    sudo adduser temp
    sudo adduser temp sudo
    
  2. 退出当前帐户并使用临时帐户重新登录。

  3. 重命名您的用户名和目录:

    sudo usermod -l new-username -m -d /home/new-username old-username
    
  4. 重命名您的用户名默认的组:

    sudo groupmod -n new-username old-username
    
  5. 从临时帐户注销并使用新用户名重新登录您的帐户。

  6. 删除临时帐户:

    sudo userdel -r temp
    

否则,您只需 (1) 创建一个新用户,然后 (2) 将rsync旧用户主文件夹复制到新用户主文件夹,然后 (3)chown即可。

答案3

/etc/passwd通常,您可以通过在(和/etc/shadow,如果适用)文件中更改用户名来重命名用户。在大多数 unix 系统上,该vipw命令用于编辑这些文件(并且在许多系统上包含一些保护措施,以确保您不会把事情搞得太糟)。
请参阅手册页passwd(5)shadow(5), 和vipw(8)了解更多信息。

请注意,上述方法不会重命名可能带有原始用户名的其他内容(主目录是主要示例,每个用户的个人组(在使用它们的系统上)是另一个示例)。您可能希望通过更改 passwd 文件中的相应字段并重命名目录来清理这些内容,以保持一致性。


一些操作系统提供了系统特定的重命名用户的方法。例如,许多 Linux 系统包括usermod(8)命令,在 AIX 上,您可以使用以下方式更改帐户名称SMIT(或smitty在终端中)
如果您要求的话,这些命令通常会处理诸如重命名主目录之类的清理项目。

相关内容