Linux 用戶與組管理詳解(system-config-users && 命令行)

用戶與組管理

  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/nologin
      ruochen: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 - harry
Last 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 harry
Changing password for user harry.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo 'default' | passwd --stdin natasha
Changing password for user natasha.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo 'default' | passwd --stdin strlt
Changing 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-pas
root     pts/0     21:09    1:18m  0.32s  0.32s -bash
root     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
      
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章