Linux 是一个多用户、多任务的服务器操作系统。Linux 用户是根据角色定义的,具体分为三种角色:
超级用户:拥有对系统的最高管理权限,默认是 root 用户。
普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限。
虚拟用户:也叫“伪”用户,这类用户最大的特点是不能登录系统,它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。
**主要组(主组):**每个用户有且只有一个主要组,创建用户时默认创建。
**附属组(补充组):**用户可以是零个或多个附属组成员。一般用于帮助确保用户具有对系统中文件及其他资源的访问权限。
(1)用户配置文件/etc/passwd,在 passwd 配置文件中,从左到右各个字段的含义如下:
**用户名:**用户登录系统时使用的用户名。
**口令:**存放加密的口令,被/etc/shadow 文件保护。
**用户标识号(UID):**系统内部用它来标识用户,每个用户的 UID 都是唯一的。
用户组标识号(GID):系统内部用它来标识用户所属的组,这里的 GID 是主组 GID。
**注释性描述:**为了方便管理和记忆该用户而添加的信息。
**用户主目录:**也称家目录,用户登录系统后所进入的目录。
**命令解释器:**指示该用户使用的 Shell,CentOS Linux 7 默认的是 bash。如果指定 Shell为/sbin/nologin,则代表用户无法登录系统。
(2)用户密码配置文件/etc/shadow
**用户名:**用户账户名。
**密码:**用户的加密密码。
**最后一次修改的时间:**从 1970 年 1 月 1 日起,到用户最后一次更改密码的天数。
**最小时间间隔:**从 1970 年 1 月 1 日起,到用户可以更改密码的天数,(0 表示随时可以变更)。
**最大时间间隔:**从 1970 年 1 月 1 日起,到必须更改密码的天数,否则密码将过期,(99999 表示永远不过期)。
**警告时间:**在密码过期之前多少天提醒用户更新,默认值是 7 天。
**不活动时间:**在用户密码过期之后到禁用账户的天数
**失效时间:**从 1970 年 1 月 1 日起,到账户被禁用的天数。
**标志:**保留位。
(1)用户组配置文件/etc/group,文件中各字段的含义从左到右分别是:
**组名:**组的名称。
**组口令:**用户组的口令,用 x 表示口令是被/etc/gshadow 文件保护的。
**组标识号(GID):**系统内部用它来标识用户组,每个用户组的 GID 都是唯一的。
**组成员:**该组的成员。
(2)用户组密码配置文件/etc/gshadow,文件中各字段的含义从左到右分别是:
**组名:**组的名称。
**组口令:**用户组的口令,保存已加密的口令。
**组的管员帐号:**组的管理员帐号,管理员有权对该组添加、删除帐号。
**组成员:**该组的成员,多个用户用“,”分开。
(1)用 useradd 命令创建用户
命令格式:useradd [选项] 用户名
选项 | 功能说明 |
---|---|
-d | 指定用户主目录 |
-g | 指定用户组 |
-m | 若主目录不存在,则创建 |
-M | 不创建主目录 |
-s | 指定登录时使用的 Shell 类型,默认为/bin/bash,如果为/bin/nologin 就是虚拟用户 |
-c | 设置对该账号的注释说明文字 |
-r | 创建系统账号(用户 ID 小于 1000,从 999 起按照递减的顺序创建),默认不创建对应的主目录 |
-u | 手工指定新用户的 ID 值,该值必须唯一,且大于 999。 |
举例:
新建一个名为 stu1 的用户
[root@myhost ~]#useradd stu1
(3)用 passwd 命令管理用户登录密码
root 用户可以为任何用户设置密码,普通用户默认情况下只能为自己设置密码。
命令格式:passwd [选项] [用户名称]
选项 | 功能说明 |
---|---|
-l | 锁定用户密码 |
-u | 解锁用户密码 |
-S | 查询用户密码状态 |
-d | 删除用户密码 |
【举例 1】创建用户 zhangsan,指定登录类型为/bin/bash;用户 lisi,登录类型为/sbin/nologin。并测试两个用户能否登录系统。
[root@myhost ~]#useradd -s /bin/nologin lisi
[root@myhost ~]#useradd -s /bin/bash zhangsan
【举例 2】创建用户 tom,并设置 tom 的真实姓名为:tom-sing,家庭电话:123,公司地址:tf5jie,公司电话:028-123。
[root@myhost ~]#useradd -c "tom-sing 123 tf5jie 028-123" tom
(3)用 usermod 命令修改用户属性
命令格式:usermod 选项 用户名
选项 | 功能说明 |
---|---|
-l | 修改用户名 |
-c | 修改用户描述信息 |
-d | 修改主目录 |
-L | 锁定帐号,临时禁止用户登录 |
-U | 对帐号解锁 |
-g | 修改用户所属组 |
-G | 修改用户附加组 |
-s | 修改用户登录的 shell 类型 |
-u | 修改用户 ID 号 |
-e | 修改用户有效期 |
-f | 修改用户密码在多少天后过期 |
【举例 1】修改用户 tom 的名字为 jack
[root@myhost ~]#usermod -l jack tom
【举例 2】修改用户 jack 的注释名为 jack-sing
[root@myhost ~]# usermod -c jack-sing jack
(4)用 userdel 命令删除用户
命令格式:userdel [-r] 用户名
[root@myhost ~]#userdel stu8 只删除用户,但不删除主目录
[root@myhost ~]#userdel -r stu8 连同主目录一起删除
(5)用于修改用户口令有效期限的 chage 命令
命令格式:chage [选项] 用户名
选项 | 功能说明 |
---|---|
-m | 密码可更改的最小天数。为零时代表任何时候都可以更改密码 |
-W | 用户密码到期前,提前收到警告信息的天数 |
-M | 密码保持有效的最大天数 |
-E | 账号到期的日期。过了这天,此账号将不可用 |
-d | 上一次更改的日期 |
-I | 停滞时期。如果一个密码已过期这些天,那么此账号将不可用 |
-l | 列出当前的设置。由非特权用户来确定他们的密码或账号何时过期 |
【举例】设置 jack 用户的密码最大有效期为 30 天,提前 9 天警告,失效时间 40 天。
[root@myhost ~]#chage -M 18054 -W 9 -E 18064
(6)修改用户注释信息的 chfn 命令
命令格式:chfn [选项] [用户名]
选项 | 功能说明 |
---|---|
-f | 设置真实姓名。 |
-h | 设置家中的电话号码。 |
-o | 设置办公室的地址。 |
-p | 设置办公室的电话号码。 |
(7)修改用户 Shell 类型的 chsh 命令
命令格式:chsh [-s] [用户名]
(1)用 groupadd 命令创建用户组
命令格式:groupadd [r] 用户组名称
(2)用 groupmod 命令修改用户组属性
命令格式:groupmod 选项 组名
选项 | 功能说明 |
---|---|
-n | 修改组名 |
-g | 修改组标识号 GID |
(3)用 groupdel 命令删除用户组
命令格式:groupdel 组名
(4)用 gpasswd 命令维护组中成员
命令格式:gpasswd 选项 用户名 组名
[root@myhost student]#gpasswd stu1 为 stu1 组设置密码
选项 | 功能说明 |
---|---|
-a | 添加用户到组。 |
-d | 将用户从组中删除。 |
-A | 设置用户为组管理员。 |
【举例】新建 yanyan、yuanyuan、lili 三个用户和 teacher 组将 lili 设置为 teacher组的管理员,那么 lili 就具有向该组添加用户和移除用户的权限。也可以为该组设置密码,其他用户就可以通过 newgrp 命令切换成该组的成员身份,否则只有本组成员才能使用该组身份。
[root@myhost ~]#useradd yanyan
[root@myhost ~]#useradd yuanyuan
[root@myhost ~]#useradd lili
[root@myhost ~]#gpasswd -a lili teacher
[lili@myhost ~]#gpasswd -A lili teacher
[lili@myhost ~]#gpasswd teacher
[yuanyuan@myhost ~]#newgrp teacher
[yanyan@myhost ~]#newgrp teacher
(1)查看用户信息的 id 命令
(2)输出指定用户所在组 groups 命令
[root@myhost ~]#groups stu1
(3)查看当前登录用户 who am i 命令
(4)查看当前用户 w 命令
(5)查看登录用户 who 命令
(6)查看登录用户历史 last 命令