目录
一、Linux安全模型
二、用户账号和组账号
2.1 用户帐号类型
2.2 组账号
2.3 用户和组的关系
三、两个重要文件夹
3.1 用户账号文件/etc/passwd
3.2 /etc/shadow
四、用户命令
4.1 useradd命令——添加用户
4.2 passwd命令——密码管理
4.3 usermod命令——修改用户账号的属性
4.4 userdel——删除用户
4.5 用户账户的初始配置文件
五、组命令
5.1 groupadd命令——添加组
5.2 gpasswd 命令——添加、设置、删除组成员
5.3 groupdel命令——删除组账号
六、 查询命令
6.1 finger命令查询用户帐号的详细信息
6.2 w命令查询已登录到主机的用户信息
6.3 who 命令
6.4 users命令
一、Linux安全模型
Authentication | 认证,验证用户身份 (用户名和密码) |
Authorization | 授权,不同的用户设置不同权限 |
Accouting|Audition | 审计, 事后追责 |
二、用户账号和组账号
2.1 用户帐号类型
- Linux中每个用户是通过 User Id (UID)来唯一标识的
账户类型 | UID号 | 描述 |
管理员 | 0 | |
程序用户 | 1-499 (CentOS 6以前), 1-999 (CentOS 7以后) | 不登录的用户,系统默认的情况 |
普通用户 | 500+ (CentOS6以前), 1000+(CentOS7以后) | 不指定顺序,给用户进行交互式登录使用 |
2.2 组账号
基本组(私有组) |
|
附加组(公共组) |
|
组标识号:GID |
2.3 用户和组的关系
- 用户是员工 ,是职位
- 员工可以兼职多个岗位
- 总有一个最重要的身份 :主要组
- 主要组 必须要一个组 有且唯一
- 附加组 可有可无 有可以有多个
默认行为当你创建一个新用户时会自动创建一个和之同名的主组
用户的主要组(primary group):用户必须属于一个且只有一个主组,默认创建用户时会自动创建和用户名同名的组,做为用户的主要组,由于此组中只有一个用户,又称为私有组
用户的附加组(supplementary group): 一个用户可以属于零个或多个辅助组,附属组
三、两个重要文件夹
3.1 用户账号文件/etc/passwd
- 保存用户名称、宿主目录、登录Shell等基本信息
- 文件位置: /etc/passwd
- 每一行对应一个用户的帐号记录
limei 用户名称
3.2 /etc/shadow
- 存放密码,以及用户密码信息
第1字段 limei 用户名 第2字段 :!! 密码,:!!代表不可以登录;若该字段为空,则表示无需密码即可登录 第3字段 :19717 上次修改密码时间,最后一次修改密码的时间 1970 年 01 月 01 日这是linux诞生的第一年已他作为元年开始计算
date -d '1970-01-01 19717 days' #计算实际修改日期
第4字段 :0 最小修改密码间隔时间, 今天 下一次间隔天数,才能修改,频繁修改, 也就是说,该字段规定了从第 3 字段(最后一次修改密码的日期)起,多长时间之内不能修改密码。如果是 0,则密码可以随时修改;如果是 10,则代表密码修改后 10 天之内不能再次修改密码。此字段是为了针对某些人频繁更改账户密码而设计的安全性考虑 第5字段 :99999 密码有效期。经常变更密码是个好习惯,为了强制要求用户变更密码,这个字段可以指定距离第 3 字段(最后一次更改密码)多长时间内需要再次变更密码,否则该账户密码进行过期阶段,账户不能登录,被锁定。该字段的默认值为 99999,也就是 273 年,可认为是永久生效。 第6字段 :7 密码到期提醒(提示密码即将过期时间) 第7字段 : 密码过期后的宽限天数 (密码过期后多少天禁用此用户)
比如说,此字段规定的宽限天数是 10,则代表密码过期 10 天后失效;如果是 0,则代表密码过期后立即失效;如果是 -1,则代表密码永远不会失效。
第8字段 :19716 账号失效时间 同第 3 个字段一样,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间。该字段表示,账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用!该字段通常被使用在具有收费服务的系统中。账号无法登录生命值 第9字段 : 保留
四、用户命令
4.1 useradd命令——添加用户
- 添加用户:查看是否在 passwd和shadow文件中生成信息
在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录
若未明确指定用户的宿主目录,则在/home 目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。
若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group 和/etc/shadow 文件中。
选项
-u
指定uid
-M
不生成家目录
-s
指定用户的登录 shell环境 /sbin/nologin 这个shell比较奇怪,不让登录 -e
指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。 -d
指定家目录位置
-t
指定基本组
-g
指定用户的基本组名(GID)
-G
指定用户的附加组名(GID) -c
备注信息
-p
指定加密后的新账户密码
4.2 passwd命令——密码管理
- 为用户账号设置密码
不加选项 | 可以添加密码 |
-d | 清空指定用户的密码,仅使用用户名即可登录系统。 |
-l | 锁定用户账 |
-S | 查看用户账户的状态(是否被锁定) |
-u | 解锁用户账户。 |
4.3 usermod命令——修改用户账号的属性
- 常见选项
-
-l 更改用户账号的登录名称(Login Name)
-
-L 锁定用户账户
-
-u 修改用户的 UID 号
-
-U 解锁锁用户账户
-
-d:修改用户的宿主目录位置。
-
-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-
-g:修改用户的基本组名(或使用 GID 号)
-
-G:修改用户的附加组名(或使用 GID 号)
-
-s:指定用户的登录 Shell
4.4 userdel——删除用户
- -r 将宿主目录一起删除
4.5 用户账户的初始配置文件
文件来源
- 新建用户帐号时,从/etc/skel目录中复制而来
- cat /etc/default/useradd
主要的用户初始配置文件
- ~/.bash_profile
#此文件中的命令将在该用户每次登录时被执行,他会设置一些环境变量,并且会调用该用户的~/.bashrc文件
- ~/.bashrc
#此文件中的命令将在该用户每次打开新的bash shell时(包括登录系统)被执行(登录 切换 新的bash环境)
- ~/.bash_logout
#此文件中的命令将在该用户每次退出时bash shell时使用
五、组命令
组账号文件
与用户帐号文件相类似
/etc/group:保存组帐号基本信息
/etc/gshadow:保存组帐号的密码信息基本不使用
5.1 groupadd命令——添加组
- -g 指定组id
5.2 gpasswd 命令——添加、设置、删除组成员
-a | 向组内添加一个用户 |
-d | 从组内删除一个用户成员 |
-M | 定义组成员列表,以逗号分隔 |
5.3 groupdel命令——删除组账号
六、 查询命令
6.1 finger命令查询用户帐号的详细信息
6.2 w命令查询已登录到主机的用户信息
6.3 who 命令
- 相比较 w 命令,who 命令只能显示当前登陆的用户信息,但无法知晓每个用户正在执行的命令。