Linux 用户和组,/etc/passwd,/etc/shadow,/etc/group,密码管理

Linux 用户和组及权限管理

基本命令

文件

/etc/passwd                 存储用户信息的文件
/etc/shadow                 存储用户密码信息文件
/etc/group                  存储了组信息
/etc/sudoers                sudo 命令配置文件

  • 添加组

    groupadd                    添加组
        -g                      指定组ID
    
  • 修改组属性

    groupmod                    修改组的属性
    
  • 删除组

    groupdel                    删除组
    

用户

  • 添加

    useradd                     添加用户
        -u                      指定uid 号
        -g                      指定基本组
        -G                      指定附加组
        -s                      指定用户登录的命令解释器
                                -s  /sbin/nologin
                                -s  /bin/bash
        -M                      不创建家目录
    
  • 更新用户信息

    usermod                     更新用户信息
    
  • 删除用户

    userdel                     删除用户
        -r                      删除用户时,同时删除家目录
    
  • 用户密码/锁定

    passwd                      修改用户密码
        -S                      查看用户密码状态
        -l                      锁定用户
        -u                      解锁用户
    
    chage                       修改密码过期时间
        -M                      修改密码最长有效期为多少天
    
  • root

    sudo                        以其他用户身份执行命令
    su                          切换用户
    
  • 查看系统进程及所属的 user 等信息

    ps aux                      
    

文件/权限

ln -s /tmp/ajest.txt /root/Desktop/ajest.txt
                            将/tmp/ajest.txt 文件创建快捷方式到/root/Desktop/ajest.txt

chmod                       修改文件或者目录的权限
    u-r                     撤销读权限
    u-w                     撤销写权限
    o=---                   其他用户权限全部撤销
    o-r                     撤销其他用户列出目录的权限
    o=rwx                   修改其他用户的权限
    g=---                   修改所属组的权限
chmod 1777 /tmp/            对目录设置粘滞位
chmod 2777 /tmp/rootDir     对目录设置sgid 标识

chown root /tmp/ajestDir/ajest.txt 
                            修改文件所属者为root

ls -ld /tmp/rootDir/        查看目录的权限

用户和组

基本原理

  • 计算机使用者(人,正常用户,黑客)扮演 账户(用户,角色)拥有 权限
    执行程序或打开文件,都必须以某一个用户的身份,以某一个权限来动作

  • 用户必须属于某一个组

  • 加密

    • 对称加密

      DES、3DES、AES

    • 非对称加密

      RSA

    • hash 单向散列

      md5、sha-256、sha-512

用户分类

用户分类UID
普通用户> 1000
程序用户1 - 1000
超级管理员用户0
  • 程序用户

    程序用户不可登录,专门用于运行程序或服务的用户账户,具有较低的权限,只能访问和执行与其任务相关的文件和资源

    程序用户的作用是提供一种安全、隔离和可管理的环境来运行程序,以确保系统的稳定性、安全性和性能

    root 启动了apache httpd 服务,为了安全, root 会将进程转交给 daemon 用户

  • 分为基本组和附加组

  • 先有组,再有用户:

    • 用户必须有且只有一个基本组。
    • 当创建一个用户时,如果没有指定基本组,会先创建一个与该用户同名的组,再创建用户。
  • 一个用户可以有多个附加组

  • 基本组内没有任何用户时才可以被删除

/etc/passwd 文件

  • 存放用户名和其他信息

  • 7 个字段

    冒号:隔开

    rootx00root/root/user/bin/zsh(或/usr/sbin/nologin)
    用户名口令,x 为占位符(为空则代表无密码)UIDGID(组id)备注家目录登录shell/命令解释器(命令或 shell (/bin/bash) 的绝对路径)
  • 超级管理员 UID=0,系统用户 UID 1-999,普通用户 UID 1000以后

  • 普通用户 UID 改为 0 后即可获得 root 权限

  • shell

    • /bin/bash
    • /bin/sh
    • zsh

    echo $0查看命令解释器

/etc/shadow 文件

  • 存放密码信息

  • 9 个字段

  • 格式

    root:$y$j9T$jOd7E6DLFdmgM3x6gciyA/$KHsDhTVufiVEc0ACIUAcrk9N8pPJpYv5ZGPOMtI3mY9:19404:0:99999:7:::
    #用户名:!!代表这个用户没有密码
    #用户名:*代表这个用户的密码是被锁定的
    # $算法$盐值$密码密文
    
    root y y yj9T~3mY919404390710
    用户名密码密文上次密码修改日期密码最短有效期密码的最长有效期密码过期时间密码的不活跃期账户失效时间保留参数
    hash 加密
    $算法$盐值$密码密文
    距1970.1.1多少天修改密码后不可再次修改的时间99999 表示不到期有效期前提醒的天数0表示过期后立即失效自1970 年 1 月 1 日以来的总天数作为账户失效时间,在此规定时间之外,无论过期与否,账号均无法使用。
    |                正常登录系统              |      仍然可以登录系统     |   无法登录
    0   用户不能修改密码    3  用户可以修改密码 83 提示修改密码  90  登录   100  密码锁定
    |----------------------|------------------|---------------|----------|-------------->
    ^                      ^                  ^               ^          ^
    密码修改时间      密码最短有效期         密码过期时间    密码最长有效期   密码不活跃期
    

    显示出具体日期

    date -d "1970-01-01 <数字> days"
    

/etc/group 文件

  • 存放组信息

  • 格式

    gjl:x:1000:gjl
    
    gjlx1000gjl
    组名密码GID群组用户
    用户组的名称,由字母或数字构成。x 是密码标识,
    组密码默认保存在 /etc/gshadow 文件中。
    Group ID

用户和组管理

创建组和用户

  • 创建用户

    useradd <用户名>
    	-u <uid>,指定uid 号
    	-g <gid><组名>,指定基本组
    	-G <gid><组名>,指定附加组
    	-s,指定用户登录的命令解释器,如-s /sbin/nologin,-s /bin/bash
    	-M,不创建家目录
    

    查看日志

    tail -10 /var/log/secure
    	-f 查看变动
    # 先自动创建组,再创建用户
    

    image-20230928092745868

  • 创建组

    groupadd 组名
    	-g <gid>
    # -g 指定组 id
    

    创建组后可直接查询组文件的最后一行

    tail -1 /etc/group
    

删除组和用户

  • 删除用户

    userdel <用户名>
    	-r
    # -r 同时删除家目录
    
  • 删除组

    groupdel 组名
    

修改组和用户

  • 修改用户

    usermod
    	-u <uid> 修改uid
    
  • 修改组信息

    groupmod
    # 如 将 bk2304 组 id 修改为2000
    groupmod bk2304 -g 2000
    

密码管理

  • 查看用户密码状态

    passwd -S <用户名>
    

    image-20230928094516678

    用户名密码状态密码最后一次修改时间密码最短有效期最长有效期警告时间失效时间
    rootPS1969-12-310999997-1
    LK,密码锁定
    NP,没有密码
    PS,有可用密码
    创建时间
    密码最近一次修改时间
    密码过期前7 天警告-1 表示没有失效时间
  • 删除用户密码

    passwd -d <用户名>
    
  • 设定用户密码

    passwd <用户名>
    # 根据提示输入密码和确认密码
    
  • 用户锁定

    passwd -l <用户名>
    # 用户密码状态显示 LK,/etc/shadow 中密码显示为 "!!"
    

    image-20230928102912388

  • 解锁用户

    passwd -u <用户名>
    
  • 修改密码最长有效期

    passwd -x <用户名>
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gjl_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值