是否可以重命名 Unix 用户帐户?

Yan*_*dal 48 users administration

我在一台现在被其他人使用的计算机上安装了 Ubuntu。我用她的名字重命名了帐户,但它只更改了全名,而不是用户名,该用户名仍显示在右上角(在 中fast-user-switch-applet)。是否有重命名 Unix 用户帐户的命令?

我想过用新名称创建一个新用户帐户,然后将“旧”家中的所有内容复制到新帐户的家中。就够了吗?但后来我认为这些文件将拥有旧帐户的权限所有者?那我应该怎么做chown -R newuser ~

有没有更简单/推荐的方法来做到这一点?

gvk*_*vkv 54

尝试

usermod --move-home --login <new-login-name> --home <new-home-dir> <old-login-name>
Run Code Online (Sandbox Code Playgroud)

--move-home选项将旧主目录的内容移动到由该--home选项指定的新目录中,如果该目录尚不存在,则创建该选项。

如果您希望主用户组与 匹配new-login-name,请添加--gid <new-login-name>到上面的命令中,但该组必须预先存在。

有关更多信息,请参阅手册页:

man usermod
Run Code Online (Sandbox Code Playgroud)

  • 请注意`usermod --home` 必须包含完整路径,例如`/home/user.name` - 否则将在当前工作目录中创建新的主目录。 (3认同)
  • 由于您使用的是 Ubuntu 并且无法以 root 身份登录,因此我将创建另一个名为 admin 的帐户,您仅将其用于此类任务。临时帐户也可以正常工作,但您最好保留它,因为您将来可能会做类似的事情。 (2认同)

Gil*_*il' 22

虽然可以重命名用户并usermod完成一些工作,但这很可能会引起麻烦。这是用户名可能出现的地方的列表;我并不声称这份清单是详尽无遗的。

  • 用户输入/etc/passwd和相关文件(例如/etc/shadow/etc/master.passwd)。
  • /etc/group(和/etc/gshadow)中的条目分组。
  • 中的可能条目/etc/sudoers
  • 系统邮箱,通常为/var/mail/$USER/var/spool/mail/$USER
  • crontab,通常 /var/spool/cron/crontabs/$USER
  • at工作 ( /var/spool/cron/atjobs/*)

主目录可能会出现在更多地方。许多应用程序在各种点文件中写入绝对路径。如果您决定也重命名主目录(虽然没有要求用户alice的主目录是/home/alice,但如果是/home/bob这样会让人感到困惑),您需要处理这些。全局替换适用于大多数应用程序,但我不作任何承诺。如果可能,将旧的主目录名称保留为指向重命名目录的符号链接。