Linux命令賬號(用戶、用戶組)控制(五)

基於賬號的訪問控制

  • 基於賬戶身份對資源訪問進行控制
    • 賬戶類別:用戶賬戶、組賬戶
    • 識別方式:UID、GID
  • 用戶賬號
    • 超級用戶root、系統用戶、普通用戶
  • 組賬號(組賬號用來區分權限,不用於登錄)
    • 基本組(私有組)
    • 附加組(公共組)

賬號的存放類別

  • 賬號數據的存放
    • 存儲在本機磁盤中(本地賬戶)
    • 存儲在網絡上的專門的服務器(網絡賬戶)
  • 本地賬戶的數據文件
    • /etc/paawd、/etc/shadow
    • /etc/group、/etc/gshadow
  • 解析用戶賬號文件
  • /etc/passwd,保存用戶賬號的基本信息
    • 每個用戶記錄一行,以:分割爲7個字段
      – 1、用戶賬號的名稱
      – 2、密碼字串或佔位符
      – 3、用戶賬號的UID號
      – 4、所屬基本組的GID號
      – 5、用戶全名
      – 6、宿主目錄
      – 7、登錄shell程序的路徑
示例代碼:
#head -n 1 /etc/passwd(取出該文件中第一行的數據)
  • /etc/shadow,保存密碼字串/有效期等信息
  • 每個用戶記錄一行,以:分割爲9個字段
    – 1、用戶賬號的名稱
    – 2、加密後的密碼字符串
    – 3、上次修改密碼的時間
    – 4、密碼的最短有效天數,默認0
    – 5、密碼的最長有效天數,默認99999
    – 6、密碼過期前的警告天數,默認7
    – 7、密碼過期後多少天警用此用戶賬號
    – 8、賬號失效時間,默認值爲空
    – 9、保留字段,未使用
示例代碼:
#head -n 1 /etc/shadow

添加用戶賬號

useradd 添加用戶

  • useradd 命令
    • 格式:useradd [選項]… 用戶名
  • 常用命令選項
    • -u:指定UID標記號
    • -d:指定宿主目錄,缺省爲 /home/用戶名
    • -e:指定賬號失效時間
    • -g、-G:指定所屬的基本組、附加組
    • -M:不爲用戶建立並初始化宿主目錄
    • -s:指定用戶的登錄shell
示例:
添加一個名爲restart1025的用戶賬號
#useradd restart1025
#grep restart1025 /etc/passwd /etc/shadow

添加用戶stu01,宿主目錄設爲/opt/stu01
#useradd -d /opt/stu01 stu01
#ls -ld /opt/stu01/

添加用戶stu02,指定基本組爲users
#useradd -g users stu02
#grep stu02 /etc/passwd

添加用戶sys01,不建宿主目錄,不用於登錄
#useradd -M -s /sbin/nologin sys01
#grep sys01 /etc/passwd
#ls -ld /home/sys01

passwd 設置口令

  • passwd命令
    • 格式:passwd [選項]… 用戶名
    • 常用命令選項
      – -d:清空用戶的密碼,使之無需密碼即可登錄
      – -l:鎖定用戶賬號
      – -S:查看用戶賬號的狀態(是否被鎖定)
      – -u:解鎖用戶賬號
      – –stdin:從標準輸入(比如管道)取密碼
#passwd stu01(然後輸入兩次密碼)
#echo 123456 | passwd --stdin stu02(直接修改密碼)

通過 --stdin設置密碼,免除交互過程

用戶初始配置

useradd行爲設置

  • 默認配置文件:/etc/default/useradd
    • 對新創建的賬號起作用
  • login.defs登錄定義文件:默認配置文件:/etc/login.defs
    • 對新創建的賬號起作用
#grep -vE '^#|^$' /etc/login.defs(獲取該文件中不是以$和#開頭的行)

grep -E擴展自定義正則表達式

用戶初始配置文件

  • 配置文件來源
    • 新建用戶時,根據/etc/skel模板目錄複製
  • 主要的初始配置文件
    • ~/.bash_profile:每次登錄時執行
    • ~/.bashrc:每次進入新的Bash環境時執行
    • ~/.bash_logout:每次退出登錄時執行
    • 全局配置文件:/etc/bashrc、/etc/profile
  • 用戶初始文件會調用全局初始文件
#cat ~/.bashrc
~ 代表 /root 目錄

用戶的刪改查

usermod 修改用戶

  • usermod命令
    • 格式:usermod [選項]… 用戶名
    • 常用命令選項
      – -l:更改用戶賬號的登錄名稱
      – -L:鎖定用戶賬戶
      – -U:解鎖用戶賬戶
      – -u、-d、-e、-g、-G、-s:與useradd相同
示例代碼:
將用戶stu01設爲2018-07-12過期
#usermod -e 2018-07-12 stu01
#grep -E "root|stu01" /etc/shadow

將用戶sys01的登錄shell改爲/bin/bash
#usermod -s /bin/bash sys01
#grep sys01 /etc/passwd

chage 密碼有效控制

  • 管理工具chage命令
    • 格式:chage [選項] 用戶名
    • 常用命令選項
      – -l:列出密碼有效期信息
      – -E:指定賬號過期時間,YYYY-MM-DD
      – -m:指定密碼的最小天數
      – -M:指定密碼的最大天數

userdel 刪除用戶

  • userdel 命令
    • 格式:userdel [-r] 用戶名
    • 添加 -r 選項,宿主目錄/用戶郵件也一併刪除
#ls -ld /home/stu02
#userdel -r stu02
#ls -ld /home/stu02

使用id查詢賬號

  • id命令:Identity
    • 格式:id [選項]… 用戶名
#id root

組賬號基本操作

解析組賬號文件

  • /etc/group:保存組賬號的基本信息
    • 每個組記錄一行,以:分割爲4個字段
      – 1、組賬號的名稱
      – 2、密碼佔位符
      – 3、組賬號的GID號
      – 4、本組的成員用戶列表
#head -1 /etc/group(獲取組賬號文件中的第一行數據)
  • /etc/gshadow:保存組賬號的管理信息

    • 每個組記錄一行,以:分割爲4個字段
      – 1、組賬號的名稱
      – 2、加密後的密碼字符串
      – 3、本組的管理員列表
      – 4、本組的成員用戶列表
  • groupadd 添加組賬號

    • groupadd命令
    • 格式:groupadd [-g GID] 組名
#groupadd -g 600 stugrp
#grep stugrp /etc/group /etc/gshadow
  • gpasswd 管理組成員
    • gpasswd命令
    • 格式:gpasswd [選項]… 組名
    • 常用命令選項
      – -A:定義組管理員列表
      – -a:添加組成員,每次只能加一個
      – -d:刪除組成員,每次只能刪一個
      – -M:定義組成員用戶列表,可設置多個
示例代碼:
#gpasswd -A stu01 stugrp
#grep stugrp /etc/gshadow

#gpasswd -M restart1025,stu01,sys01 stugrp
#grep stugrp /etc/gshadow

#gpasswd -d sys01 stugrp
#grep stugrp /etc/gshadow
  • groupdel 刪除組
    • groupdel命令
    • 格式:groupdel 組名
    • 刪除的目標組不能是用戶的基本組
#grep stugrp /etc/group
#groupdel stugrp
#grep stugrp /etc/group
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章