Linux创建修改和删除用户(useradd | usermod | userdel)
Posted Xavier Jiezou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux创建修改和删除用户(useradd | usermod | userdel)相关的知识,希望对你有一定的参考价值。
摘要
本文将讨论如何在 Linux 中创建、修改和删除用户。
用法
创建用户
useradd
考虑到登录系统时仅需要用户名和密码,因此我们创建用户至少得需要这两个数据。还需要注意的是,只有根用户才能创建用户,非根用户没有该权限。
- 创建用户很简单,仅需要将要创建的用户名跟在
useradd
后面即可(下方示例中创建了一个名为stu
的用户)
[root@centos]# useradd stu
- 接下来,使用
passwd
命令为新用户stu
设置密码(注意:1. 密码不能过于简单;2. 同样也只有根用户才能设置和修改其它用户的密码,普通用户只能修改自己的密码)
[root@centos]# passwd stu
Changing password for user stu.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
- 用户至此创建完毕!使用
id
或finger
(需要安装:yum install finger
或apt 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,sgpShell 类型
: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
用户的用户名修改为 stu02
,UID
修改为 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
参考
以上是关于Linux创建修改和删除用户(useradd | usermod | userdel)的主要内容,如果未能解决你的问题,请参考以下文章