Linux账号与权限管理
账号管理
- Linux系统中基于用户身份来控制对资源的访问,通过表现形式及分别在细节方面存在的差异分为了用户账号和组账号。
管理用户账号
用户账号的介绍
-
用户账号
1、超级用户 root :Linux系统中默认的超级用户账号,对本机拥有最高管理的权限,类似于 windows系统中的 Administrator。可以在进行系统管理、维护任务时用。2、普通用户 :需要由 root 用户或其他管理员用户创建,拥有的权限受到一定的限制,一般只在用户自己的宿主目录中拥有完整的全向。
3、程序用户 :这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行。
-
UID号
1、Linux系统中的每个用户账号都有一个数字形式的身份标志,称为 UID,即用户标识号
2、原则上每个用户的UID号应该是唯一的
3、 root 用户的UID 号为固定值 0
4、程序用户账号的UID号默认为 1~999
5、普通用户默认分配了 1000~60000 的UID号
用户账号文件
在这两个配置文件中,没一行对应一个用户账号,不同的配置选之间使用冒号":"进行分隔
- /etc/password :用于保存用户名称、宿主目录、登录shell等基本信息
- 该文件任何用户都能读取文件中的内容,该文件每一行的内容包含了七个用冒号“:”的配置段,从左往右的含义分别为:
第1字段 | 用户账号的名称,也是登录系统时使用的识别名称 |
---|---|
第2字段 | 经过加密的用户密码字串,或者密码占位符“x” |
第3字段 | 用户账号的UID号 |
第4字段 | 所属基本组账号的GID号 |
第5字段 | 用户全名,可填写与用户相关的说明 |
第6字段 | 宿主目录,即该用户登录后所在的默认工作目录 |
第7字段 | 登录shell等信息,用户完成登录后后使用的shell |
- /etc/shadow :用于保存用户的密码、账号有效期等信息
- 该文件默认只有root用户才能够读取到文件中的内容,该文件每一行的内容包含了九个用冒号”:“分隔的配置字段,从左往右的含义分别为
第1字段 | 用户账号名称 |
---|---|
第2字段 | 使用MD5加密的密码字串信息,当为“*” 或 “!!” 时表示此用户不能登录到系统。若该字段为空,则该用户无需密码即可登录系统 |
第3字段 | 上次修改密码的时间,从某日算起到最近一次修改密码时间隔的天数 |
第4字段 | 密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制 |
第5字段 | 密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制 |
第6字段 | 提前多少天警告用户口令将过期,默认值为7 |
第7字段 | 在密码过期之后多少天内禁用此用户 |
第8字段 | 账号失效时间,此字段指定了用户作废的天数,默认值为空,表示账号永久可用 |
第9字段 | 保留字段,目前没有特定用途 |
用户账号管理命令
- 添加用户账号 —— useradd
语法格式:
useradd [选项] 用户名
选项:
-u :指定用户的UID号,要求该UID号未被其他用户使用
-d :指定用户的宿主目录位置(当与 -M 一起使用时,不生效)
-e :指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式
-M :不建立宿主目录
-s :指定用户的登录shell
-g :指定用户的基本组
-G :指定用户端附加组(既可以属于用户组,也可以属于附加组)
示例:
创建一个bbbs的账号,禁止它在终端登录,于2020-8-8失效
useradd -e 2020-8-8 -s /sbin/nologin bbbs
- 用户账号的初始配置文件
●用 useradd 命令添加一个新用户账号时,会在该用户的宿主目录中建立一些初始配置文件。
●这些初始配置文件是从 “/etc/skel” 目录中复制而来。
●较常用的初始配置文件包括“.bash_logout” 、“.bash_profile” 、“.bashrc”
其中:
.bashrc_profile :文件中的命令将在该用户每次登陆时被执行;
.bashrc :文件中的命令将在每次加载 “/bin/bash”程序时执行
.bashlogout :文件中的命令将在用户每次退出登陆时被执行
- 设置、更改用户密码 —— password
语法格式:
password [选项] 用户名
选项:
-d :清空密码
-I :锁定用户账户
-S :查看用户账户的状态
-u :解锁用户账户
- 修改用户账户的属性 —— usermod
语法格式:
usermod [选项] 用户名
选项:
-I :更改用户登录的名称
-L :锁定账号
-U :解锁用户账户
-u :修改用户ID
-d :修改用户的宿主目录的位置
-e :修改用户账户失效时间,可使用YYYY-MM-