用户与组治理

  1. 什么是用户,用户是人吗?
  2. 用户是干啥的?
  • 用户账号

    • 超级管理员: root
    • 普通用户: ruochen
    • 零碎/程序用户: 零碎中为某个程序而产生的用户,这类用户个别不容许登录操作系统
  • 组账号

    • 定义: 用户的汇合
    • 根本组: 与用户同名的一个组
    • 附加组: 将其余用户减少到某个组中,那么这个组称为其余用户的附加组
  • 用户作用

    • Linux 基于用户身份对资源进行访问控制
  • UID 和 GID 号

    • uid(user identity) : 用户标识号
    • gid(group identity): 组标识号
    • root用户uid号: 0
    • 普通用户uid号:1000-60000(rhel7) 500+(rhel6)
    • 零碎用户uid号: 1-999(rhel7) 1-499(rhel6)

用户相干文件

  • /etc/passwd 保留用户的账号信息

    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinruochen:x:1000:1000:ruochen:/home/ruochen:/bin/bash
    • 字段1: 用户账号名称
    • 字段2: 'x' 代表明码占位符 /etc/shadow
    • 字段3: 用户账号的uid号
    • 字段4: 用户根本组账号的gid号
    • 字段5: 用户的全名
    • 字段6: 宿主目录(用户的家目录)
    • 字段7: 用户登录shell信息

      • /bin/bash(默认登录shell)
      • /sbin/nologin(不容许用户登录零碎)
  • /etc/shadow 保留用户的明码信息

    root: 用户账号名称$6$3rb.lU2l/JOMd/T5$dwR0X/HIgpbHZtIqtWQbTYyB268B80nJAnXgQ8foZsOm8eRx7wynqTdZG485k8jKu5fnbEpHJOCChpWGndXHL1: 用户明码信息,采纳哈希算法加密18050: 上次批改明码的工夫(1970.1.1)0: 明码的最短无效天数99999: 明码的最长无效天数7: 明码过期正告工夫:  明码过期后是否还容许登录 0 不容许 10 容许十天 -1 长期:  明码过期工夫:  保留字段(未应用)

组账号相干文件

  • /etc/group 保留组账号根本信息
  • /etc/gshadow 保留组账号密码信息

用户和组管理软件:

  • yum install system-config-users -y
  • [root@localhost ~]# system-config-users
  • 查看用户信息

    • [root@localhost ~]# id ruochen # id username

基于命令行的用户和组治理

创立用户


  • useradd [选项] username

    • -u: 为账号指定 uid
    • -g: 指定用户 gid
    • -s: 为账号指定默认的登录shell
    • -G: 将用户增加到指定的从属组外面
    • -c: 为用户增加文本形容
    • -d: 为主目录指定不同于登录名的名称
    • -m: 创立用户的家目录(默认创立)
    • -M: 不创立用户的家目录
    • -p passwd: 为用户指定一个默认明码
    • -r: 创立一个零碎账号
    • -e: 指定用户账号的逾期工夫 YYYY-MM-DD
        [root@localhost ~]# useradd susa        [root@localhost ~]# useradd -u 3000 -s /sbin/nologin user 

查看用户信息


  • id username
    [root@localhost ~]# id user    uid=3000(user) gid=3000(user) groups=3000(user)

删除用户


  • userdel -r username
    [root@localhost ~]# userdel -r susa    [root@localhost ~]# id susa    id: susa: no such user    [root@localhost ~]# userdel -r user    [root@localhost ~]# id user    id: user: no such user    [root@localhost ~]# 

批改用户信息


  • usermod [选项] username

    • -u: 从新指定用户的 uid 号
    • -s: 从新指定用户的登录shell
    • -G: 将用户增加到附加组内
    • -L: 用于锁定账号,使用户无奈登录
    • -U: 用于解除账号锁定,使用户可能登录
                [root@localhost ~]# usermod -u 2000 -s /sbin/nologin harry         [root@localhost ~]# usermod -u 2000 -s /bin/bash  harry         [root@localhost ~]# id harry        uid=2000(harry) gid=1001(harry) groups=1001(harry)

为用户创立明码


  • passwd username
  • echo 'passwd' | passwd --stdin username
    [root@localhost ~]# passwd harry    Changing password for user harry.    New password:     Retype new password:     passwd: all authentication tokens updated successfully.    [root@localhost ~]# su - harry    [harry@localhost ~]$     [root@localhost ~]# usermod -L harry    [root@localhost ~]# su - harry    Last login: Sat May 16 22:17:41 EDT 2020 on pts/1    [harry@localhost ~]$ 
此处曾经锁定用户了,为何还能登录?
[root@localhost ~]# usermod -U harry[root@localhost ~]# su - harryLast login: Sat May 16 22:18:29 EDT 2020 on pts/1[harry@localhost ~]$ 

更改用户明码信息

  • chage -m 0 -M 90 -W 7 -I -1 username
  • -d 0: 强制用户下此登录批改明码
  • -E YYYY-MM-DD: 指定明码的过期工夫
  • -l username: 列出用户以后明码设置

创立组

  • groupadd [选项] groupname
  • -g: 指定组的 gid 号

删除组

  • groupdel groupname
    [root@localhost ~]# groupdel manager

创立下列用户、组和组的成员关系:

  • 一个名为 manager 的组
  • 一个名为harry 的用户,其属于 manager 组,这个组是该用户的隶属组
  • 一个名为natasha 的用户,其属于 manager 组,这个组是该用户的隶属组
  • 一个名为strlt 的用户,其在零碎中没有可交互的shell,并且该用户不是 manager 组的成员
  • 用户natasha、harry和strlt 的明码都要设置为 default
[root@localhost ~]# groupadd manager[root@localhost ~]# useradd -G manager harry[root@localhost ~]# useradd natasha[root@localhost ~]# usermod -G manager natasha[root@localhost ~]# useradd -s /sbin/nologin strlt[root@localhost ~]# echo 'default' | passwd --stdin harryChanging password for user harry.passwd: all authentication tokens updated successfully.[root@localhost ~]# echo 'default' | passwd --stdin natashaChanging password for user natasha.passwd: all authentication tokens updated successfully.[root@localhost ~]# echo 'default' | passwd --stdin strltChanging password for user strlt.passwd: all authentication tokens updated successfully.

查看以后登录到零碎的用户

  • users, w, who
    [root@localhost ~]# w

23:16:53 up | 2:23, | 3 users, | load average: 0.19, 0.17, 0.14

  • | - | - | - | - |

登录工夫 | 运行工夫 | 用户总数 |负载水平(1/5/15)

USER | TTY | LOGIN@ | IDLE | JCPU | PCPU | WHAT

  • | - | - | - | - | - | - |

登录用户 | 登录所用终端 | 登录工夫(LOGIN@ == LOGIN AT)| 用户闲暇工夫 | 耗费CPU工夫 | 工作执行后耗费工夫 | 工作是谁

root     :0        20:55   ?xdm?   7:03   0.16s gdm-session-worker [pam/gdm-pasroot     pts/0     21:09    1:18m  0.32s  0.32s -bashroot     pts/1     21:33    5.00s  0.22s  0.00s w
  • whoami

    • 显示以后用户下的用户名
  • who am i

    • 显示登录时用的用户名
  • who

    • 显示以后真正登录零碎的用户(不会显示su切换的用户)
            [root@localhost ~]# who        root     :0           2020-05-16 20:55 (:0)        root     pts/0        2020-05-16 21:09 (192.168.37.1)        root     pts/1        2020-05-16 21:33 (:0)        [root@localhost ~]# whoami        root        [root@localhost ~]# who am i        root     pts/0        2020-05-16 21:09 (192.168.37.1)        [root@localhost ~]# su - ruochen        [ruochen@localhost ~]$ who am i        root     pts/0        2020-05-16 21:09 (192.168.37.1)        [ruochen@localhost ~]$ whoami        ruochen