共计 2753 个字符,预计需要花费 7 分钟才能阅读完成。
在上一章中,咱们理解到了 Linux 用户的每个配置文件的内容及作用,以及通过手动批改用户配置文件来手动增加一个用户。然而在理论工作过程中,咱们并不是通过手动批改配置来增加用户,而是通过用户治理的各种命令来治理用户。
一、增加用户命令:useradd
Linux 零碎中,能够应用 useradd
命令新建用户,此命令的根本格局如下:
useradd [选项] 用户名 - D 查看缺省参数
该命令罕用的选项及各自的含意如下:
u
:UID,指定用户的 UID,在上一章咱们理解到普通用户 UID 的范畴是 500-60000 之间d
:宿主目录c
:用户阐明,对应在/etc/passwd
文件中第 5 局部,输出便于了解的用户阐明即可g
:组名,指定用户所属的群组G
:组名,指定用户所属的附加群组s
:手工指定用户的登录 Shell,在上一章咱们理解到默认是/bin/bash
e
:指定用户的生效曰期,格局为 “YYYY-MM-DD”
比方当初要创立一个用户,所属 root
组,而后给这个用户增加一个用户阐明:
$ useradd -g root -c "this is my test user" testuser
执行完这条命令之后,咱们就在零碎中创立了一个名叫 testuser
的用户,咱们查看一下 /etc/passwd
文件,就发现外面曾经存在一条刚增加的用户信息:
如果想应用这个用户登录,咱们再给这个用户设置一个机密就能够了:
$ passwd testuser
个别状况下,咱们创立新用户能够不手工指定任何参数内容,因为应用 Linux 的默认值就能够满足咱们的要求。useradd
命令在增加用户时参考的默认值文件次要有两个,别离是 /etc/default/useradd
和 /etc/login.defs
。这两个文件上一章咱们曾经介绍了,这里咱们只简略回顾一下/etc/default/useradd
:
$ useradd -D
GR0UP=100
: 这个选项用于建设用户的默认组,也就是说,在增加每个用户时,用户的初始组就是 GID 为 100 的这个用户组。但 CentOS 并不是这样的,而是在增加用户时会主动建设和用户名雷同的组作为此用户的初始组。也就是说这个选项并不会失效。Linux 中默认用户组有两种机制:一种是公有用户组机制,零碎会创立一个和用户名雷同的用户组作为用户的初始组;另一种是公共用户组机制,零碎用 GID 是 100 的用户组作为所有新建用户的初始组。目前咱们采纳的是公有用户组机制。HOME=/home
: 指的是用户宿主目录的默认地位,刚刚新建的testuser
用户的主目录就为/home/testuser/
INACTIVE=-1
: 帐号是否过期,也就是 /etc/shadow 文件的第七个字段。这里默认值是 -1,永不过期。EXPIRE=
: 示意明码生效工夫,也就是 /etc/shadow 文件的第八个字段。默认值是空,代表所有新建用户没有生效工夫,永恒无效。SHELL=/bin/bash
: 示意所有新建设的用户默认 Shell 都是 /bin/bashSKEL=/etc/skel
: 在创立一个新用户后,该用户主目录并不是空目录,而是有 .bash_profile、.bashrc 等文件,这些文件都是从 /etc/skel 目录中主动复制过去的。CREATE_MAIL_SPOOL=yes
: 指的是给新建用户建设邮箱,默认是创立。也就是说,对于所有的新建用户,零碎都会新建一个邮箱,放在 /var/spool/mail/ 目录下,和用户名雷同。testuser 的邮箱位于 /var/spool/mail/testuser。
因而咱们能够了解 useradd
命令创立用户的零碎外部流程应该是这样的:
1、零碎首先读取 /etc/login.defs 和 /etc/default/useradd,依据这两个配置文件中定义的规定增加用户,也就是向 /etc/passwd、/etc/group、/etc/shadow、/etc/gshadow 文件中增加用户数据
2、接着零碎会主动在 /etc/default/useradd 文件设定的目录下建设宿主目录,最初复制 /etc/skel 目录中的所有文件到此目录中。至此,一个新的用户就创立实现了。
二、批改用户明码命令:passwd
在下面解说增加用户命令的时候,其实咱们曾经用到了 passwd
命令,接下来咱们具体详解一下这个命令。
此命令的根本格局如下:
passwd [选项] 用户名
该命令罕用的选项及各自的含意如下:
d
:删除明码信息w
:明码要到期提前正告的天数,对应于/etc/shadow
文件中各行的第 6 个字段S
:显示明码信息, 也就是 /etc/shadow 文件中此用户明码的内容,仅 root 用户可用l
:进行账号应用,也就是使明码生效,仅 root 用户可用u
:解锁用户,与下面的l
参数对应,仅 root 用户可用x
: 设置用户的明码有效期,对应/etc/shadow
文件中各行明码的第 5 个字段n
:设置该用户批改明码后,多长时间不能再次批改明码,对应于/etc/shadow
文件中各行明码的第 4 个字段
1、比方设置刚增加的用户 testuser
的明码:
$ passwd testuser
$ New password: #输出明码,这里不会明文显示
$ Retype new password: #再次输出明码
$ passwd:all authentication tokens updated successfully. #提醒明码批改胜利
2、显示用户的明码信息:
$ passwd -S testuser
#留神这里的参数S
是大写
testuser PS 2020-06-17 0 99999 7 -1 (Password set, SHA512 crypt.)
# 用户名:明码:设定工夫:明码批改间隔时间(0):明码有效期(99999):正告工夫(7):明码不生效(-1)
这里的明码批改间隔时间、明码有效期、正告工夫、明码宽限工夫其实来源于配置文件 /etc/shadow
的设置。这里显示明码加密形式为SHA512
,从 CentOS 6.3 加密形式曾经从 MD5
加密更新到 SHA512
。
3、锁定用户
$ passwd -l testuser
锁定该用户之后,咱们查看用户的明码信息,发现信息最初的提醒是 Password locked.
,很分明的显示明码曾经被锁定。零碎锁定用户的的解决形式是什么呢?咱们查看下 /etc/shadow
文件看下:
$ grep "testuser" /etc/shadow
大家认真看下,在明码位后面退出了 !!
让明码生效而已。
4、解锁用户
既然可能锁定用户,天然也能解锁用户:
$ passwd -u testuser
执行命令解锁用户之后,用户状态就恢复正常了。
明天为大家解说了 Linux 用户治理最根底的两个命令,一个是增加用户、一个是批改用户明码。下一章持续为大家解说 Linux 用户治理的其余命令。