Linux创建修改和删除用户(useradd | usermod | userdel)

Posted Xavier Jiezou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux创建修改和删除用户(useradd | usermod | userdel)相关的知识,希望对你有一定的参考价值。

摘要

本文将讨论如何在 Linux 中创建、修改和删除用户。

用法

创建用户

useradd

考虑到登录系统时仅需要用户名密码,因此我们创建用户至少得需要这两个数据。还需要注意的是,只有根用户才能创建用户,非根用户没有该权限。

  1. 创建用户很简单,仅需要将要创建的用户名跟在 useradd 后面即可(下方示例中创建了一个名为 stu 的用户)
[root@centos]# useradd stu
  1. 接下来,使用 passwd 命令为新用户 stu 设置密码(注意:1. 密码不能过于简单;2. 同样也只有根用户才能设置和修改其它用户的密码,普通用户只能修改自己的密码)
[root@centos]# passwd stu
Changing password for user stu.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
  1. 用户至此创建完毕!使用 idfinger(需要安装:yum install fingerapt install finger)命令查看该用户的基本信息
[root@centos]# id stu
uid=1003(stu) gid=1003(stu) groups=1003(stu)
[root@centos]# finger stu
Login: stu                              Name:
Directory: /home/stu                    Shell: /bin/bash
Never logged in.
No mail.
No Plan.

默认情况下,新建用户的基本信息如下:

  • UID:上一个用户 UID 加一
  • 家目录:/home/用户名
  • 用户备注:无
  • 主用户组:新建与用户同名的用户组(组 GID 默认是上一个组 GID 加一)
  • 从属用户组:无
  • Shell 类型:bash

当然,创建用户时也可以指定上述信息。如这里要创建一个基本信息如下的用户:

  • UID:601
  • 家目录:/tmp/stu01
  • 用户备注:临时学生用户01
  • 主用户组:class2022
  • 从属用户组:stu,sgp
  • Shell 类型:tcsh
[root@centos]# groupadd class2022 # 创建用户组 class2022
[root@centos]# groupadd stu # 创建用户组 stu
[root@centos]# groupadd sgp # 创建用户组 sgp
[root@centos]# useradd -c 临时学生用户01 -u 601 -d /tmp/stu01 -g class2022 -G stu,sgp -s /bin/tcsh stu01
[root@centos]# passwd stu01 # 为 stu01 用户设置密码
Changing password for user stu01.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@centos]# id stu01
uid=601(stu01) gid=1004(class2022) groups=1004(class2022),1003(stu),1005(sgp)
[root@centos]# finger stu01
Login: stu01                            Name: 临时学生用户01
Directory: /tmp/stu01                   Shell: /bin/tcsh
Never logged in.
No mail.
No Plan.

新建用户时,我们特别需要注意三点:

  • 创建用户后一般是要给那个用户使用的,因此需要修改家目录的权限为用户自己而不是 root:chown user:user /home/user
  • -u 选项为新用户指定 UID 时,必须得确保这个 UID 未被使用过,因为必须要保证 UID 得唯一性
  • -g-G 指定用户组时,必须得确保这些用户组确实存在。如果不存在,你可以使用 groupadd 命令后跟用户组名来创建,否则会报错

修改用户

usermod

user modify 的缩写,usermod 能够修改用户的名称、UID、主用户组、从属的组、备注、家目录和默认 Shell 等属性。其所带的选项集合和 useradd 一模一样。唯一不同的就是 -l 选项是用来修改登录用户名的。

例如,将上述创建的 stu01 用户的用户名修改为 stu02UID 修改为 602

[root@centos]# usermod -u 602 -l stu02 stu01
[root@centos]# id stu02
uid=602(stu02) gid=1004(class2022) groups=1004(class2022),1003(stu),1005(sgp)

当然也可以修改备注、家目录和默认 Shell 等属性:

[root@centos]# usermod -c 临时学生用户02 -d /tmp/stu02 -g sgp -G class2022 -s /bin/bash stu02
[root@centos]# finger stu02
Login: stu02                            Name: 临时学生用户02
Directory: /tmp/stu02                   Shell: /bin/bash
Never logged in.
No mail.
No Plan.

值得注意的是,在用户登录系统时,无法修改用户名和 UID。

删除用户

userdel

user delete 的缩写。将要删除的用户的用户名跟在命令后面就可以删除用户。

例如,删除之前创建的 stu02 用户:

[root@centos]# userdel stu02
[root@centos]# id stu02
id: stu02: no such use

需要注意的是,虽然用户被删除了,但用户的家目录仍然存在。你可以确认其中没有重要文件后,使用 rm -rf /home/user/ 手动删除该目录。当然,你也可以在使用 userdel 命令时加上 -r 参数,这样删除用户的同时也把家目录一并删除了。虽然,这样做很方便,但却不推荐,很容易误删用户文件。最后要提到的是,目前已经登录的用户是无法删除的。

提示

Linux 没有提供专门地列出所有已创建的用户的命令,不过我们可以在 /etc/passwd 文件中查看:

[root@centos]# tail /etc/passwd
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
syslog:x:996:994::/home/syslog:/bin/false
lighthouse:x:1000:1000::/home/lighthouse:/bin/bash
www:x:1001:1001::/home/www:/sbin/nologin
mysql:x:1002:1002::/home/mysql:/sbin/nologin
stu:x:1003:1003::/home/stu:/bin/bash

可以看到最后一个是我们之前创建的 stu 用户。

总结

  • 创建用户:useradd
  • 修改用户:usermod
  • 删除用户:userdel

参考

中国大学 MOOC | Linux 系统管理 | 主题 06 管好用户 | 小节 4 创建、修改和删除用户

以上是关于Linux创建修改和删除用户(useradd | usermod | userdel)的主要内容,如果未能解决你的问题,请参考以下文章

Linux中添加修改删除用户和用户组

Linux中添加修改和删除用户和用户组

Linux指令详解useradd groupadd passwd chpasswd chage 密码修改

如何添加、修改和删除ubuntu用户和用户组

linux用户和组的创建与管理!

Linux基础学习-用户的创建修改删除