1. 程式人生 > >Linux 用戶和組

Linux 用戶和組

筆記

Linux用戶和組
  1. 資源分派(3A):
    Authentication 認證
    Authorization 授權
    Accouting|Audition 審計

  2. 用戶:(系統通過UID來判斷用戶信息)
    令牌token identity:用於驗明身份
    Linux用戶:username/UID
    管理員:root 0
    普通用戶:1-65535
    系統用戶:1-499(6) 1-999(7)
    對守護進程獲取資源進行權限分配
    登錄用戶:500+(6) 1000+(7)
    交互式登錄

  3. 組 group
    linux組:GroupID /GID
    管理員組: root 0
    普通組:
    系統組:1-499 1-999(7)
    普通組:500+ 1000+(7)

  4. 安全上下文:

    linux安全上下文
    運行中的程序:進程
    以進程發起者的身份運行
    root:/bin/cat
    mage: /bin/cat
    進程所能訪問資源的權限取決於進程運行者的身份

  5. 組的類別
    用戶的主要組(primary group)
    用戶必須屬於一個且只有一個主組
    組名同用戶名,且僅包含一個用戶。私有組
    用戶的附加組
    一個用戶可以屬於0個或者多個輔助組

  6. 用戶和組的配置文件
    /etc/passwd 用戶以及其屬性信息(名稱 UID 主組ID)
    name 用戶名
    passwd 密碼(pwunconv可以恢復口令到passwd pwconv恢復到shadow)
    UID
    GID 主組
    gecos 描述信息 chfn命令 change finger (finger可以直接看描述)

    家目錄 /etc/skel 在創建用戶時系統會復制這個文件下的的文件到用戶目錄
    shell類型 cat /etc/shell 顯示系統支持的shell類型 shsh -s 改shell類型
    /sbin/nologin 不允許登陸
    /etc/group 組及其屬性信息
    組名:
    組口令:普通用戶可以通過獲取組口令自己主動加入組(不建議)

    組ID
    組成員:,分割不同成員 一般是附加組

    /etc/shadow 用戶密碼及其相關屬性
    login name
    密碼字段 $$之前的salt字段,隨機字段保證相同口令加密之後結果不同
    最近改口令時間 距離1970 1.1計算天數,當設為0必須下次登陸更改口令
    最短密碼使用時間
    最長密碼使用時間(改口令之後計算,不能超過這個時間)

    提前通知密碼更改時間
    密碼寬限期 超過寬限期則密碼鎖定
    賬號使用有限期
    保留字段

    ###################################
    沒有口令的賬號顯示!!賬號鎖定
    5的系統使用 usermod -U 可以解鎖賬號,取消一個!
                        -L 加鎖
    6之後不允許這樣操作,不能登錄,但是可以su
    ##################################
    
    passwd -e username 選項可以實現下次登陸必須改口令
    chage username 直接進行修改用戶的口令配置信息
          -d 0 username 同理
          -l  username 顯示用戶口令策略
          -I --inactive INACTIVE  
          -m --mindays MIN_DAYS  
          -E --expiredate EXPIRE_DATE
          -M --maxdays MAX_DAYS  
          -W --warndays WARN_DAYS 
            ps:chage -m  -M 12 -W 14 -I 17 username

    vim /etc/login.defs 文件進行修改默認系統配置密碼,郵件等信息
    /etc/default /useradd 創建用戶的默認配置信息

    /etc/gshadow 組密碼及其相關屬性
    組名
    組口令 通常也是!!
    組內成員關系 可以設置多個組管理員
    組成員 和group相同

  7. 密碼加密
    加密機制:
    加密: 明文-->密文
    解密: 密文-->明文
    單項加密:哈希算法,原文不同,密文必不同
    相同算法定長輸出,獲得密文不可逆推出原始數據
    雪崩效應:初始條件的微小改變會引起結果的巨大改變

    更改加密算法:authconfig --passalgo=sha256 --update

  8. 密碼的復雜性策略:
    使用數字,大寫字母,小寫字母及特殊字符中的至少3種
    足夠長
    使用隨機密碼
    定期更換,不要使用最近曾經使用過的密碼

    可以采用分級方式去設置密碼難度

  9. 命令:
    id username 顯示用戶id 主組id 附加組id 這個是讀取配置文件的
    不加username的話,一般是顯示舊信息,當重新登錄才會刷新信息
    -u: 顯示UID
    -g: 顯示GID
    -G: 顯示用戶所屬的組的ID
    -n: 顯示名稱,需配合ugG使用
    groups username 顯示用戶的組信息 主組 附加組

    ################################
    id不變用戶權限不變
    ################################

    gpasswd username 給組加口令
    -a user 將user添加到指定的組中
    -d user 從指定組中移除用戶
    -A user1 user2 。。。 設定有管理權限的用戶列表哦
    newgrp gname 主動加入組 要輸入組密碼
    這種方式會改變自己的主組
    newgrp也可以用來臨時切換主組,若已經是組成員則無需輸入口令

    useradd
    -u UID 可以超過60000
    -o 配合-u 選項,不檢查UID的唯一性
    -g GID:指明用戶所屬基本組,可為組名,也可以GID
    -c "COMMENT":用戶的註釋信息
    -d HOME_DIR: 以指定的路徑(不存在)為家目錄
    -s SHELL: 指明用戶的默認shell程序
    可用列表在/etc/shells文件中
    -G GROUP1[,GROUP2,...]:為用戶指明附加組,組須事先存在
    -N 不創建私用組做主組,使用users組做主組
    -r: 創建系統用戶 家和郵箱都不創建 CentOS 6: ID<500,CentOS 7: ID<1000
    -m 創建家目錄,用於系統用戶
    -M 不創建家目錄,用於非系統用戶

    修改默認配置設置 /etc/default/useradd文件 
         useradd -D(default) 顯示默認配置選項 
            useradd –D -s SHELL  
            useradd –D –b BASE_DIR  
            useradd –D –g GROUP

    newusers passwd格式的文件,可以實現批量創建文件
    chpasswd 批量實現用戶口令的更改

    usermod 用戶屬性修改
    -u UID: 新UID
    -g GID: 新主組
    -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加組,原來的附加組將會被覆蓋;
    若保留原有,則要同時使用-a選項
    -s SHELL:新的默認SHELL
    -c ‘COMMENT‘:新的註釋信息
    -d HOME: 新家目錄不會自動創建;若要創建新家目錄並移動原家數據,同時使 用-m選項
    -l login_name: 新的名字;
    -L: lock指定用戶,在/etc/shadow 密碼欄的增加 !
    -U: unlock指定用戶,將 /etc/shadow 密碼欄的 ! 拿掉
    -e YYYY-MM-DD: 指明用戶賬號過期日期
    -f INACTIVE: 設定非活動期限 賬號寬限期
    userdel
    -r 刪除用戶家目錄
    ps:正在登錄的用戶無法刪除
    passwd 修改指定用戶的密碼
    -d:刪除指定用戶密碼
    -l:鎖定指定用戶
    -u:解鎖指定用戶
    -e:強制用戶下次登錄修改密碼
    -f: 強制操作
    -n mindays: 指定最短使用期限
    -x maxdays:最大使用期限
    -w warndays:提前多少天開始警告
    -i inactivedays:非活動期限
    --stdin:從標準輸入接收用戶密碼
    echo "PASSWORD" | passwd --stdin USERNAME

    groupadd 添加用戶組
    -g GID
    -r 創建系統組
    6 ID<500
    7 ID<1000
    groupmod 修改組的屬性
    -n new_groupname
    -g new_GID
    groupdel
    刪除主組之前要先將組內用戶移動到其他組

    groupmems
    -g, --group groupname 更改為指定組 (只有root)
    Actions:
    -a, --add username 指定用戶加入組
    -d, --delete username 從組中刪除用戶
    -p, --purge 從組中清除所有成員
    -l, --list 顯示組成員列表 ?

    groups [OPTION].[USERNAME]... 查看用戶所屬組列表

  10. 文件操作:不推薦改配置文件
    vipw vigr 在編輯passwd 和group文件時候具有語法格式檢測功能
    pwck grpck 用於檢測語法

  11. 切換用戶或者以其他用戶身份執行命令
    su username:以非登錄方式去切換,不會讀取目標用戶的配置文件,不改變當前的工作目錄
    su - username:登錄式切換,會讀取目標用戶的配置文件,切換至家目錄,可以實現完全切換。

    root用戶在su其他用戶時候不需要輸入密碼,但是非root用戶su要密碼
    換身份執行指令
    su [-] username -c ‘指令‘

    su -l username 相當於su - username

Linux 用戶和組