如何在Linux中更改或重命名用户名和UID?
如何在Linux操作系统下使用命令行工具更改用户名(重命名用户名)或UID?如何在Linux下更改或重命名用户名?
在Linux操作系统下,你需要使用usermod命令来更改用户名。该命令会修改系统账户文件,以反映在命令行中指定的更改。不要用手或使用vi等文本编辑器编辑/etc/passwd文件。本页介绍了如何在Linux系统中使用usermod命令修改或重命名用户名。
按用户名重命名语法如下:
usermod -l login-name old-name
我们在Linux中使用usermod命令来重命名用户账户。用户的名字将从原来的名字改为login_name。其他的内容都不会改变。特别是,用户的主目录名可能应该被改变以反映新的登录名。
通过UID(用户ID)重命名语法如下:
usermod -u UID username
其中:
用户ID(UID)的数值。这个值必须是唯一的,除非使用-o选项。该值必须是非负数。0到99之间的值通常是为系统账户保留的。任何用户拥有的、位于以用户主目录为根的目录树中的文件都会自动改变文件用户ID。用户主目录之外的文件必须手动更改。
一、列出Linux系统中的所有用户
输入以下cat命令。
cat /etc/passwd
我们可以使用grep命令来过滤掉用户名称。
grep -w '^username' /etc/passwd
grep -w '^jerry' /etc/passwd
另一个选择是使用 cut 命令。
cut -d: -f1 /etc/passwd
二、如何在Linux中更改或重命名用户名和UID?
让我们看看如何重命名用户登录。首先,确保用户名没有登录服务器,并且任何其他进程没有以同一用户名运行。我还建议你在更改用户名之前备份任何数据或服务器文件。
1、查看名为tom的用户的当前用户和组成员信息
首先使用id命令获取用户身份。
id tom
接下来使用grep命令从/etc/passwd文件中抓取名为tom的用户的登录信息。
grep '^tom:' /etc/passwd
使用 groups 命令查看名为tom的用户的组信息。
grep 'tom' /etc/group
groups tom
查找用户tom的主目录权限,运行以下ls命令。
ls -ld /home/tom/
最后,使用ps命令查看名为tom的用户和组拥有的所有Linux进程。
ps aux | grep tom
ps -u tom
2、在Linux上将用户名从Tom改成Jerry。
输入usermod命令如下。
# id tom
# usermod -l jerry tom
## Verify ###
# id tom
# id jerry
# ls -ld /home/tom
关于运行过程的说明
如果 tom 登录并运行工作,你可能会看到如下错误。
# usermod -l jerry tom
usermod:用户Tom目前被6886进程使用。
你需要结束所有名为tom的用户所拥有的Linux进程,并强制将其退出系统。
# pkill -u tom pid
# pkill -9 -u tom
# usermod -l jerry tom
重命名并将主组名从Tom改为Jerry。
输入usermod命令如下。
# id tom
# groupmod -n jerry tom
## Verify it ###
# id tom
# ls -ld /home/tom
3、如何将用户主目录从/home/tom/改为/home/jerry?
语法如下:
# usermod -d /home/jerry -m jerry
# id jerry
# ls -ld /home/jerry
输出:
uid=1001(jerry) gid=1001(jerry) groups=1001(jerry)
drwxr-xr-x 2 jerry jerry 4096 Apr 21 15:53 /home/jerry/
4、如何将用户tom UID从5001改为10000?
输入usermod命令如下:
# id tom
# usermod -u 10000 tom
# id tom
5、获取关于usermod命令的帮助
你可以给usermod命令传递--help选项。例如,在Linux的shell提示符下键入以下命令。
usermod --help
在本文中,你了解了如何在Linux中使用usermod命令更改或重命名用户名和UID。