zoukankan      html  css  js  c++  java
  • Linux用户和用户组管理

    参考学习 史上最牛的Linux视频教程—兄弟连


    用户管理路径:

    用户信息文件 :/etc/passwd
    (用户)影子(密码)文件:/etc/shadow
    组信息文件: /etc/group
    组影子(密码)文件: /etc/gshadow

    用户管理简介:
    1.越是对服务器安全性要求高的服务器,越是需要建立合理的用户权限等级制度和服务器操作规范.
    2.Linux 中主要是通过用户配置文件来查看和修改用户信息

    一、用户信息文件

    vim /etc/passwd
    

    使用查看帮忙命令man 如果提示找不到命令,需要联网使用

    yum install -y man-pages
    

      

    安装完后使用命令查看password 的文件解释

    man 5 passwd (5,代表配置信息)
    

     

    上图中用":"分开的七个字段,正好对应图一中用":"分开的内容分别是
    用户登录名称:密码标识:用户ID:组ID:备注:用户家目录:SHELL
    空格后下一页查看具体字段的解释,如下图


     翻译如下:

     


    第1个字段:用户名称(登录的用户名),不要使用特殊字符、不要使用无意义的(如aabb)

    第2个字段:密码标识

    第3个字段:UID 0 超级用户 1-999 系统用户(伪用户) 1000-65535:普通用户
    如果把普通用户的UID 改为0,那么该用户将会被系统认证为超级用户

    第4个字段:初始组ID
    初始组和附加组
    初始组:就是指用户一登录就立即拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是这个用户的用户名相同的组名作为这个用户的初始组。不建议修改初始组。
    附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。

    第5个字段:用户说明

    第6个字段:家目录
    普通用户:/home/用户名/
    超级用户:/root/

    第7个字段:登录之后的Shell
    Shell 是什么?
    Shell 就是Liunx 的命令解释器。在/etc/passwd 当中,除了标准的Shell 是/bin/bash 之外,还有:/sbin/nologin

    二、影子文件:/etc/shadow

    权限:000

    内容:

    vim /etc/shadow


     

    字段解释,共九个字段,用八个冒好分割。也可以使用 man 5 shadow 来查看


    第1个字段:login name 登录用户名

    第2个字段:encrypted password 加密的用户密码
    加密算法升级为SHA512 散列加密算法
    如果密码位是"!!"或者"*" 代表没有密码,不能登录

    第3个字段:date of last password change 密码最后一次修改的日期
    使用1970年1月1日作为标准时间,每过一天时间戳加1

    第4个字段:mininum password age 两次密码的修改间隔时间(和第3个字段相比)
    默认是0或者空白,代表立即可以更改密码,如果是1的话,代表第3个字段后加1天后才可以更改密码。

    第5个字段:maximum password age 密码有效期(和第3个字段相比)
    默认是99999或者空白,代表一直有效
    根据密码的三大原则(复杂性,时效性,易记性)中的时效性,每三个月就应该修改一次,最长不应该超过半年。即为了安全,该字段的值最好设置为90,最大不可以超过180。

    第6个字段:password waring period 密码修改到期的警告天数(和第5个字段相比)
    举例:如果第5个字段设置的是90,第6个字段设置的是7的话,那么在新密码使用的第83天就会开始在每次登录的时候提示用户修改密码。

    第7个字段:password inactivity period 密码过期后的宽限天数(和第5个字段相比)

    举例:如果第5个字段设置的是90,第7个字段设置的是3,那么在新密码使用的第93天后,该用户将无法登录。
    0或者空白代表密码过期后立即失效
    老师讲的是-1代表密码永远不会失效,权重大于第5个字段。也就是该字段如果为-1,则第5个字段为任何数都无意义。

    (笔者实际测试命令行模式下:
    情况一:登录的时候如果已经提示密码过期需要更改密码,此时使用超级用户登录更改该字段是无意义的。仍不可避免每次登录都要你更改密码,否则进不了系统,且更改后密码,该字段的-1会自动被清空。
    情况二:设置密码有效期为2,警告为1,过期后的宽限天数为-1,此时更改系统时间后,使用改账户登录,仍提示需要修改密码。
    测试完后记得同步硬件
    不晓得是不是centos5和centos7的差别,亦或者是图形界面和命令行的区别,后者可能性比较小)

    第8个字段:account expiration date 账号失效时间
    需要用时间戳标识(失效日期到1970年1月1日的天数),字段权重大于密码有效期的权重。即如果到达账号失效时间,则账号会被禁用,哪怕没有达到密码的有效期
    把时间戳换算为日期:date -d "1970-01-01 xxxxx(时间戳) days"
    把日期换算为时间戳:echo $(($(date --date="2021/12/13" +%s)/86400+1))

    第9个字段:reserved field 保留字段

    三、组信息文件/etc/group 和组密码文件/etc/gshadow

    1.组信息文件:/etc/group
    第一字段:组名
    第二字段:组密码标志
    第三字段:GID
    第四字段:组中附加用户

    2.组密码文件:/etc/gshadow
    第一字段:组名
    第二字段:组密码 默认没有组密码,组密码的作用是组管理员用来管理组内成员的密码,不建议使用,会降低系统的安全性。
    第三字段:组管理员用户名
    第四字段:组中附加用户


    扩展:可以通过vim 使用G 查看最后一行来查看有多少用户,或者使用wc /etc/passwd 来查看有多少行知道有多少用户。

  • 相关阅读:
    什么?Spring Boot CommandLineRunner 有坑!?
    关于 websocket 跨域的一个奇怪问题…
    电商金额计算的 4 个坑,千万注意了!
    微服务模块划分原则和接口定义原则
    tcp的三次握手(连接)与四次挥手(断开)
    二叉树遍历及算法实现
    elasticsearch搜索 倒排索引
    kubernetes落地-传统web服务迁移
    Docker核心技术-容器管理
    Docker核心技术-镜像管理
  • 原文地址:https://www.cnblogs.com/yungiu/p/15714694.html
Copyright © 2011-2022 走看看