用户及组管理

2019-04-01  本文已影响0人  赛亚人之神

回顾:

  1. 文件管理命令、bash 的基础特性、文本处理命令
文件管理命令:cp,mv,rm
bash 基础特性:alias/unalias,glob(*, ?, [], [^]),快捷键
IO重定向、管道:
  标准输入重定向:>, >>
  标准输出重定向:>, >>
  
    &>, &>>
    COMMAND > /path/to/file 2>&1

  输入重定向:<
    显示使用:tr
    隐式使用:有些命令可以直接跟文件比如 cat, tac, less, more, head, tail 等
    管道: COMMAND1 | COMMAND2 | ...

  文本处理命令:wc, cut, sort ,uniq

用户和组管理

资源分派:
  Authentication:认证
  Authorization:授权
  Audition:审计 - 对授权的合规使用进行审计,不能随意使用

  token, identity(username/passwd)

Linux 用户:Username/UID
  管理员:root, 0
    系统用户: 1-499(centos6),1-999(centos7)
      对守护进程获取资源进行权限分配

    普通用户: 500+(centos6),1000+(centos7)
      交互式登录

Linux 组:Groupname/GID
  管理员:root, 0
    普通组:
      系统组: 1-499(centos6),1-999(centos7)
      普通组: 500+(centos6),1000+(centos7)

Linux 安全上下文:
  运行中的程序:进程(process)
    以进程发起者的身份运行:
      root: cat
      tom: cat
    进程所能够访问的所有资源的权限取决于进程的发起者的身份

Linux 组的类别:
  用户的基本组(主组):
    组名同用户名,且仅包含一个用户:私有组

  用户的附加组(额外组):

Linux 用户和租相关的配置文件
  /etc/passwd:用户及其相关属性(名称,UID,基本组ID等等)
  /etc/group:组及其相关属性

  /etc/shadow:用户密码及其相关属性
  /etc/gshadow:组密码及其相关属性

  1. /etc/passwd:
    name:password:UID:GID:GECOS:directory:shell
    grandkai:x:1000:1000:grandkai:/home/grandkai:/bin/bash
    用户名:密码:UID:GID:备注信息:家目录:默认shell

    GENCOS(General Electric Comprehensive Operating System)通用电气综合操作系统

  2. /etc/group
    group_name:password:GID:user_list
    grandkai:x:1000:grandkai
    组名:组密码:GID:以此组为附加组的用户列表(分隔符为逗号)

  3. /etc/shadow
    
    login name:用户名
    encrypted password:加密了的密码
    date of last password change:最近一次修改密码的日期,last password change
    minimum password age:密码的最小年龄,days until change allowed. 0 或者空 表示没有最小密码年龄
    maximum password age:密码的最大年龄(99999 表示永久有效)
    password warning period:密码警告时间段(0 或者空 表示没有密码警告期)
    account expiration date:账号过期时间(空字段表示没有强制密码过期)
    reserved field:保留字段
      
      加密机制:
        加密:明文 --> 密文
        解密:密文 --> 明文
        
        单项加密:提取数据指纹
          md5:message digest, 128 bits
          sha1: secure hash algorithm, 160 bits
          sha224: 224 bits
          sha256: 256 bits
          sha384: 384 bits
          sha512: 512 bits
          
          雪崩效应:初始条件的微小改变,将会引起结果的巨大改变
          定长输出:
          
          grandkai:$6$0cXxvl9zOAp/IlRK$nq8SKo3divnjV5Y0MBTlV/EXpmjbwTzrMZqg0AAMNCqoznnw7bJyVVobdat4nTwQQ6Q8qb/ihd5.gMI93cXc41::0:99999:7:::

          6:表示使用了 sha512 算法
          0cXxvl9zOAp/IlRK:表示添加的杂质
          nq8SKo3divnjV5Y0MBTlV/EXpmjbwTzrMZqg0AAMNCqoznnw7bJyVVobdat4nTwQQ6Q8qb/ihd5.gMI93cXc41:这里才是密码
用户和组相关的管理命令
  用户创建:useradd [options] LOGIN
    -u: UID:[UID_MIN, UID_MAX],定义在 /etc/login.defs
    -g: GID:指明用户所属基本组,可以为组名,也可以是 GID
    -c: COMMENT:用户注释信息
    -d: HOME_DIR:指定用户默认的家目录
    -s: SHELL,指定用户默认的 shell 程序,可用列表在 /etc/shells 文件中
    -G: GROUP1[,GROUP2,...[,GROUPN]]],为用户指明附加组,组必须事先存在
    
    默认值设定: /etc/default/useradd 文件中
    useradd -D
       -s SHELL:更改默认 shell

练习:创建用户 gentoo,附加组为 distrolinux,默认 shell/bin/bash,注释信息为“Gentoo Distribution”

useradd gentoo -G distro,linux -s /bin/bash -c "Gentoo Distribution"
组创建:
  groupadd [option]... group_name
    -g: GID:指明 GID 号:[GID_MIN, GID_MAX]
    -r: 创建系统组:
      CentOS 6: ID < 500
      CentOS 7: ID < 1000

查看用户相关的 ID 信息:
  id [OPTION]... [USER]
    -u: UID
    -g: GID
    -G: Groups
    -n: Name(配合 -ugG 其中的一种联合使用),显示名称而不是id

【切换用户】或【以其他用户的身份执行命令】
  su [options...] [-] [user [args...]]
    切换用户的方式:
      su Username:非登录式切换,即不会读取目标用户的配置文件(切换后还是在当前目录而不是 Username 的家目录)
      su - Username:登录式切换,会读取目标用户的配置文件,完全切换

    换个身份执行命令:
      su [-] Username-c "COMMAND"

    选项:
      -, -l, --login
      su -l Username 相当于 su - Username

用户属性修改:
   usermod [OPTION] login
    -u: UID:新UID
    -g: GID:新基本组
    -c: COMMENT:用户新注释信息
    -d: HOME_DIR:新的家目录,原有家目录中的文件不会同时移动到新的家目录,若要移动需要配合 -m 选项,表示 --move-home
    -s: SHELL:新的默认 shell
    -G: GROUP1[,GROUP2,...[,GROUPN]]],新附加组,原来的附加组会被覆盖,如果想保留,配合 -a 选项,表示 --append

    -e, --expireddate YYYY-MM-DD:用户账号的过期日期
    -f, --inactive:密码过期之后,账号被彻底禁用之前的天数
    -L, --lock:锁定用户的密码,会在用户的密码前加一个感叹号 ! 表示禁用
    -U, --unlock:解锁用户的密码,移除禁用符号 !


给用户添加修改密码
  passwd [OPTIONS] Username:修改指定用户的密码,仅 root 用户权限
  passwd:修改自己的密码
    常用选项:
      -l: 锁定指定用户
      -u: 解锁指定用户
      
      -n, --minimum DAYS:最短使用期限
      -x, --maximum DAYS:最大使用期限
      -w, --warning DAYS:提前多少天开始警告
      -i, --inactive DAYS:非活动期限
      
      --stdin: 从标准输入读取新密码,可以是管道
        echo "new passwd" | passwd --stdin Username

      Note:/dev/null, bit buckets
            /dev/zero

  例子:修改用户 gentoo 账号密码,并输出信息不能显示在控制台或者文件中
    echo "redhat" | passwd --stdin  gentoo &> /dev/null

删除用户
  userdel [OPTION]... login
    -r, --remove:删除用户家目录

组属性修改:  
  groupmod [OPTION]... group
    -n, --new-name:新组名
    -g, --gid:新 GID

组删除:
  groupdel GROUP

组密码:
  gpasswd [OPTION] GROUP
    -a user:将 user 添加至指定组中
    -d user:删除用户 user 的以当前组为组名的附加组
     
    -A user1,user2...:【设置有管理权限的用户列表】

  newgrp 命令:临时切换基本组
    如果用户本不属于此组,则需要组密码

修改用户密码过期信息
  chage [OPTION]... LOGIN
    -d, --lastday
    -E, --expiredate
    -I, --inactive
    -m, --mindays
    -M, --maxdays
    -W, --warndays

其他命令:
  chfn:修改指纹信息 (/etc/passwd 中的 GENCOS)

  chsh:修改登录默认 shell
    chsh [OPTION] username
      -l, --list-shells:打印所有 shells(/etc/shells 中列出的所有的shell)
      -s, --shell:指定用户登录的默认 shell

  finger:查看指纹信息)

命令总结:

useradd, groupadd, usermod, groupmod, userdel, groupdel, id, passwd, gpasswd, pwck, su, newgrp, chage, chfn, chsh, finger

上一篇 下一篇

猜你喜欢

热点阅读