Linux系统--账号和权限管理
目录
一、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 命令只能显示当前登陆的用户信息,但无法知晓每个用户正在执行的命令。
6.4? users命令
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!