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

    • 用户配置文件

      • 用户信息文件 /etc/passwd

        • man 5 passwd查看帮助

        • 每一行代表一个用户 7个字段各自含义,用冒号分割

        • 1.用户名称

        • 2.密码标志 密码文件其实是shadow passwd中x表示用户有密码

        • 3.用户ID就是UID root 0 普通用户500 500以内系统用户

        • 4.用户初始组ID GID

          • 初始组就是用户一登录就立刻拥有这个用户组的相关权限 每个用户的初始组只能有1个 一般是和这个用户的用户名相同的组名作为这个用户的初始组
          • 附加组是指用户可以加入多个其他的用户组 并拥有这些组的权限 附加组可以有多个
        • 5.用户说明

        • 6.家目录

        • 7.登陆以后的shell 就是命令解释器 在passwd中,除了标准shell是/bin/bash之外,还可以写如/sbin/nologin

          • root用户和普通用户是标准shell
          • 伪用户的解释器 /sbin/nologin
          • 理论上shell可以有多个 可以更改
          • 简单说所有用户都必须写成/bin/bash 写到nologin下用户就失效
      • 影子文件 /etc/shadow

        • shadow文件权限是000
        • 它有9个字段
        • 1.用户名
        • 2.经过加密后的真正密码
          • sha512散列加密
          • !!或者*表示没有密码 不能登陆
          • 密码前边加一个感叹号 可以临时禁用密码
        • 3.密码最后一次修改日期 事件戳表示
        • 4.两次密码修改间隔 如果写10 表示10天后才能改密码
        • 5.密码有效期
        • 6.密码修改到期前的警告天数
        • 7.密码国企后的宽限天数
          • 0 代表密码过期后立即失效
          • -1 代表密码永远不会失效
        • 8.账号失效时间 要用时间戳表示
          • 把日期换算成时间戳 echo $(($(date --date="2020/01/01" +%s)/86400+1))
          • 把事件戳换算成日期 date -d "2020-01-01 15600 days"
        • 9.保留字段
      • 组信息文件 /etc/group

        • 1.组名 默认情况下每个用户都有一个跟自己名字相同的组
        • 2.组密码标志
        • 3.GID groupid 靠组ID识别用户
        • 4.组中附加用户
      • 组密码文件 /etc/gshadow

        • 1.组名
        • 2.组密码
        • 3.组管理员用户名
        • 4.组中附加用户
      • 用户家目录

        • 普通用户 /home/用户名/ 所有者和所属组都是此用户 权限700
        • 超级用户 /root/ 所有者和所属组都是root用户 权限是550
        • 更改权限的话 是把用户权限改成对应的用户权限 就是修改的UID 用户家目录不会变
      • 用户的邮箱

        • 系统会给用户在 /var/spool/mail/下创建同名邮箱文件
      • 用户模板目录

        • /etc/skel/
        • 进入 /home/用户名 文件夹下 ls -a 有隐藏文件 是从模板里导入到这里的
        • 如果在/etc/skel/下创建文件 会在/home/用户名 下出现这个文件
    • 用户管理命令

      • 添加用户 useradd

      • 执行命令后到底干了哪些操作

        • 用户的两个文件 组的两个文件 还有家目录里的用户模板 以及邮箱
      • 常用选项

        • -u 手工指定用户的UID
        • -d 家目录
        • -c 用户说明
        • -g 组名 手工指定用户的初始组
        • -G 组名 指定用户的附加组
        • -s shell 手工指定用户的登陆shell 默认是/bin/bash
        • 实例 usradd -u 555 -G root,bin -c "test user" -d /smitty -s /bin/bash smitty
          • 1.不要用g加组,尤其是root组,不会创建相应目录 会很麻烦
          • 2.可以直接放在根目录下
          • 3.如果指定shell 不要写错了
      • 用户默认值文件 /etc/default/useradd

        • GROUP=100 用户默认组

        • HOME=/home 用户家目录

        • INACTIVE=-1 密码过期宽限天数(shadow文件第7字段)

        • EXPIRE= 密码失效时间(8)

        • SHELL=/bin/bash 默认shell

        • SKEL=/etc/skel 模板目录

        • CREATE_MAIL_SPOOL=yes 是否建立邮箱

        • 在/etc/login.defs下有其他东西

      • 简单练习

        • passwd -S 用户名 查看用户密码信息
        • passwd -l 用户名 锁定用户 -u解锁用户
        • echo "mima" | passwd --stdin 用户名 手工设置用户密码 主要是用来shell编程的时候使用
    • 修改用户信息

      • usermod和useradd选项是一样的,这个是给已存在用户操作的
      • usermod是用L和U锁定和解锁用户的
      • chage 【选项】 用户名
        • -l 列出用户的详细密码状态
        • -d 修改密码最后一次更改日期
        • -m 两次密码修改间隔
        • -M 密码有效期
        • -W 密码过期前警告天数
        • -I 密码过后宽限天数
        • -E 账号失效时间
      • chage 最经常用就是 chage -d 0 用户名 意思就是让用户登陆先修改密码
    • 删除用户userdel

      • -r 删除用户的同时删除用户家目录

      • 删除用户相当于执行了下边6个操作

        • /etc/passwd
        • /etc/shadow
        • /etc/group
        • /etc/gshadow
        • rm -rf /var/spool/mail/用户名
        • rm -rf /home/用户名
      • id 用户 查看用户id

      • 用sudo 切root 环境变量不会换 必须用 su - root 用env查看

      • su - root -c useradd user3 用管理员身份执行一条命令

    • 用户组管理

      • groupadd 【选项】 组名
      • -g GID 指定组ID
      • -n 新组名 老组名 改名
      • groupdel 组名
        • 如果有初始用户 删不了组
        • 如果没有初始用户 可以删组
      • 把已有用户添加到组或删除 是作为附加用户添加的
        • gpasswd -a 用户名 用户 把用户加入组
        • gpasswd -d 用户名 用户 把用户从组删除
  • 相关阅读:
    Spring5源码分析之Bean生命周期
    关系图
    Spring5源码分析之AnnotationConfigApplicationContext
    Spring中好玩的注解和接口
    MyBatis使用总结
    设计模式的应用
    C#:网络传输问题
    工具软件:
    Rar安装包
    C#:注册组件 (cmd)
  • 原文地址:https://www.cnblogs.com/FGdeHB/p/15538267.html
Copyright © 2011-2022 走看看