Linux账号和权限管理

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 用户名 修改普通用户密码
      普通用户只能修改自己的密码

常用选项

-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 读写执行


  1. 程序用户账号的UID和GID号 默认为CentOS5,6 :1~499 CentOS7:1-999 root用户账号的UID和GID号固定值为0 ↩︎

  2. 因为是定义所有不是添加,所以得跟上所有组成员名称,不然会覆盖掉原先的组员 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值