文章目录
Linux账号和权限管理
1 账号
1.1 用户账号
- 超级用户
root用户是Linux操作系统中默认的超级用户账号
对本主机拥有最高的权限,系统中超级用户是唯一的
- 普通用户
由root用户或其他管理员用户创建
拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限
- 程序用户
在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号
一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如bin,daemon,ftp,mail等
1.2 组账号
- 基本组
基本组账号只有一个,一般为创建用户时指定的组
在/etc/passwd文件中第4字段记录的即为该用户的基本组GID号
- 附加组(公共组)
用户除了基本组以外,额外添加指定的组
1.3 UID & GID
-
UID
user identity 用户标识号1 -
GID
group identity 组标识号
1.4 用户账号文件
基于系统运行和管理需要,所有用户都可以访问/etc/passwd文件中的内容,但是只有root用户才能进行更改
vim /etc/passwd
各字段表示意义
1)用户账号名称
2)原密码字段不安全x为占位符
3)UID
4)GID
5)用户全名描述
6)代表用户的家目录宿主目录
7)用户登录shell信息(/bin/bash为可登录系统,/sbin/nologin有回复和/bin/false回复都没有 为禁止用户登录系统)
任何人都能查看 /etc/passwd ,导致各种安全问题
后来经过改进,密码转存入专门的shadow文件中,而passwd文件仅保留密码占位符"x"
/etc/shadow
用户密码文件
保存用户的密码、账号有效期等信息
每一行对应一个用户的密码记录
字段 | 意义 |
---|---|
1 | 用户账号名称 |
2 | 使用MD5加密的密码字串信息 当为"*“”!!"时表示此用户不能登录到系统,若该字段内容为空,则代表该用户无需密码即可登录 |
3 | 上次修改密码的时间 从1970年01月01日算起到最近一次修改密码时间隔的天数 |
4 | 密码的最短有效天数 子本次修改密码后,必须至少经过该天数才能再次修改密码 默认值为0表示不进行限制 |
5 | 密码的最长有效天数 自本次修改密码后,经过该天数以后必须再次修改密码 默认值为9999,表示不进行限制 |
6 | 提前多少天警告用户密码将过期,默认值为7 |
7 | 在密码过期之后多少天禁用此用户 |
8 | 账号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算) 默认值为空,表示账号永久可用 |
9 | 保留字段 |
例如我们vim /etc/passwd
转到最后几行可以看到新创建的用户raven
可以看到uid为1000 gid为1000
登录shell信息为/bin/bash 代表可以登录
2 用户账号管理
2.1 添加用户账号
在/etc/passwd文件和/etc/shadow 文件的末尾增加该用户账号的记录
为指明用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录若没有明确指定用户所属的组
则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group
- useradd [选项] …用户名
常用选项
-u | 指定用户的UID号,要求该UID号未被其他用户使用 |
---|---|
-d | 指定用户的宿主目录位置 只能用绝对路径指定目录,且不需事先创建目录 |
-e | 指定用户的账户失效时间 使用YYYY-MM-DD的日期格式 |
-g | 指定用户的基本组名 或使用GID号,对应的组名必须已存在 |
-G | 指定用户的附加组名 或使用GID号,对应的组名必须已存在 |
-M | 不建立宿主目录 M和d不能同时使用,d不会生效 |
-s | 指定用户的登录 shell /bin/bash为可登录系统 /sbin/nologin有回复 /bin/false回复都没有 为禁止用户登录系统 |
useradd -u 338 -e 2023/12/31 -s /bin/false bart
创建一个UID为338 失效时间为今年最后一天 禁止登录系统的名为bart 的用户
可以看到创建成功
2.2 设置&更改用户口令
2.2.1 设置密码
passwd [选项] …用户名
- passwd 直接修改自己的密码
- passwd 用户名 修改普通用户密码
普通用户只能修改自己的密码
- passwd 用户名 修改普通用户密码
常用选项
-d 清空指定用户的密码,仅适用用户名即可登录
-l 锁定用户账号,锁定的用户账号将无法再登录 无密码用户无法锁定
-S 查看用户账户的状态 是否被锁定
-u 解锁用户账户
2.2.2 修改密码
- echo “密码” | passwd --stdin 用户名
echo <用户名>:<密码> | chpasswd
2.2.3 修改用户账号属性
- usermod [选项] …用户名
常用选项
-l 修改账户名 新名字 旧名字
-L 锁定
-U 解锁-u -d -e -g -G -s与useradd命令的含义相同
2.3 删除用户账号
userdel [选项] …用户名
选项 -r 连家目录一起删除
3 组账号管理
3.1 组账号文件
- /etc/group 保存组账号基本信息
/etc/gshadow 保存组账号的密码信息
表示为组名+密码占位符+GID+附加组成员
3.2 添加组成员
groupadd [-g GID] 组账号名
-a 向组内添加一个用户
-d 从组内删除一个用户成员
-M 定义组成员列表 以逗号分隔2
3.3 其他相关命令
groupdel 删除组
groups 查询用户所属的组
group [用户名]查询用户身份标识
id [用户名]finger 默认没有,需要yum安装
查询用户账号的登录属性
4 文件&目录的权限归属
都知道总共有三种权限 r w x
对应的归属分配为 所有者 所属组 其他用户
数字表示
r w x r w x r w x 权限项
4 2 1 4 2 1 4 2 1 数字表示
0- - -
1- - x 执行
2- w - 写
3- w x 写执行
4r - - 读
5r - x 读执行
6r w - 读写
7r w x 读写执行
r w x r w x r w x 权限项
4 2 1 4 2 1 4 2 1 数字表示
0- - -
1- - x 执行
2- w - 写
3- w x 写执行
4r - - 读
5r - x 读执行
6r w - 读写
7r w x 读写执行