用戶,組和權限管理 基礎命令整理

安全3A任何一個安全策略都應該有Authentication(認證)、Authentication(授權)、Accouting|Audition(審計)這三個措施。

用戶(User)Linux用戶是安全3A中的Authentication(認證)措施。用戶在登錄時,系統會檢查用戶輸入的用戶名和密碼。如果用戶輸入的用戶名和密碼匹配,會根據用戶信息給用戶分配一個令牌token;如果用戶輸入的用戶名和密碼不匹配,直接拒絕用戶登錄。

用戶類型      人識別用戶是靠用戶名,識別用戶是靠UID

管理員: root用戶,UID為0。
普通用戶: UID范圍1-65535。

  • 系統用戶: 用于對守護進程獲取資源進行權限分配。Centos6系統的UID范圍1-499,Centos7系統的UID范圍1-1000。
  • 登錄用戶: 用于用戶的交互式登錄。Centos6系統的UID范圍500-65536,Centos7系統的UID范圍1000-65535。

組(Group)Linux組是用戶權限分配的容器,同一個組內的用戶都能夠獲得這個組擁有的權限。

站在系統管理的角度

管理員組: root用戶組,GID為0。                 普通用戶組: UID范圍1-65535。

  • 系統用戶: Centos6系統的GID范圍1-499,Centos7系統的GID范圍1-1000。
  • 登錄用戶: Centos6系統的GID范圍500-65536,Centos7系統的GID范圍1000-65535。

站在用戶的角度

主要組(主組):

  • 用戶必須屬于一個主組,且只能有一個
  • 組名和用戶名同名,且該組成員只有用戶一個,那么這個組是用戶的私有組

附加組(輔助組): 一個用戶可以屬于零個或多個輔助組

進程的安全上下文

進程的安全上下文是保障系統運行安全的一個非常重要的技術

進程是運行中的程序。每個進程都必須以一個特定的用戶身份運行,即進程是有屬主的。當用戶運行一個程序時,這個程序運行起來的進程的屬主就是該用戶。以進程訪問系統上的文件為例: 系統檢查進程的屬主是不是這個文件的屬主,如果是,進程以文件的屬主權限訪問該文件;否則,系統再檢查進程的屬主所在的組里(包括附加組)有沒有該文件的屬組,如果有,進程以文件的屬組權限訪問該文件;如果沒有,進程以文件的其他者的權限訪問該文件。

用戶相關的文件

/etc/passwd——存放用戶及其屬性信息

name : password : UID : GID : GECOS : directory : shell

  • name: 用戶登錄名
  • password: 早期用來存放用戶加密過后的密碼
  • UID: 用戶的身份編號
  • GID: 用戶的主組編號
  • GECOS: 用戶的全名或注釋
  • directory: 用戶的家目錄
  • shell: 用戶默認使用的登錄shell

/etc/shadow ——存放用戶密碼及其相關屬性

name : password : last change : minimum age : maximum age : warning period : inactivity period : expiration date : reserved field

  • name: 用戶的登錄名
  • password: 用戶密碼。centos5采用md5加密方法,centos6/7采用sha512加密方法。
  • last change: 密碼上一次修改距1970.1.1所經過的天數
  • minimum age: 密碼的最短使用天數,(0表示密碼可隨時變更)
  • maximum age: 密碼的最長使用天數,(9999表示密碼永不過期)
  • warning period: 密碼的警告期限,用戶登錄時提示用戶修改密碼
  • inactivity period: 非活動期限,用戶密碼過期超過此時間將被禁用
  • expiration date: 從1970.1.1開始算,超過此時間帳號失效

組相關配置文件

/etc/group ——存放用戶組及其相關屬性信息

group_name : password : GID : user_list

  • group_name: 組名
  • password: 組密碼, 組密碼通常是記錄在/etc/gshadow文件中
  • GID: 組ID
  • user_list: 以當前組為附加組的用戶列表(以逗號分隔)

gshadow ——用戶組的shadow文件

group_name : encrypted_password : administrators : members

  • group_name: 組名
  • encrypted_password: 加密過后的密碼
  • administrators: 組管理員密碼
  • user_list: 以當前組為附加組的用戶列表(以逗號分隔)

用戶管理相關命令

useradd 創建用戶并設置相關屬性

useradd [options] LOGIN

  • -c, –comment COMMENT: 用戶的注釋信息
  • -d, –home-dir HOME_DIR: 指定用戶家目錄。家目錄中的內容默認是從/etc/skel復制過去的,當用戶家目錄已經存在時不會復制。
  • -e, –expiredate EXPIRE_DATE: 指定用戶過期時間(格式: YYYY-MM-DD)
  • -f, –inactive INACTIVE: 指定賬戶的非活動期限
  • -g, –gid GROUP: 指定用戶的基本組id或組名。
  • -G, –groups GROUP1[,GROUP2,…[,GROUPN]]]: 指定用戶的附加組,多個用, 逗號分隔
  • -s, –shell SHELL: 指定用戶的默認shell
  • -o, –non-unique: Allow the creation of a user account with a duplicate (non-unique)UID。This option is only valid in combination with the -u option。
  • -u, –uid UID: 指定用戶的UID
  • -r: 創建系統用戶
  • -D: 列出/改變創建用戶的默認值, useradd創建用戶的默認值存儲在/etc/default/useradd和/etc/login.defs文件中
  • usermod 用戶屬性修改

    usermod [OPTION] login

    • -a, –append: 配合-G選項給用戶添加附加組
    • -u, –uid UID: 修改用戶的UID
    • -g, –gid GROUP: 修改用戶的基本組ID
    • -G, –groups GROUP1[,GROUP2,…[,GROUPN]]]: 修改用戶的附加組列表,常配合-a選項給用戶添加附加組
    • -s, –shell SHELL: 修改用戶的默認登錄shell
    • -c, –comment COMMENT: 修改用戶的注釋信息
    • -d, –home HOME_DIR: 修改用戶的家目錄,配合-m選項移動或重命名用戶的家目錄
    • -l, –login NEW_LOGIN: 修改用戶的登錄名
    • -L, –lock: 鎖定用戶,在/etc/shadow 密碼欄的增加 !
    • -U, –unlock: 解鎖用戶,將 /etc/shadow 密碼欄的 ! 拿掉
    • -e, –expiredate EXPIRE_DATE: 修改用戶的過期時間(格式: YYYY-MM-DD)
    • -f, –inactive INACTIVE: 修改用戶的非活動期限
    • -o, –non-unique: When used with the -u option, this option allows to change the user ID to a non-unique value
    • userdel 刪除用戶
    • 用戶已經登錄時無法刪除

      userdel [options] LOGIN

      • -r, –remove: 刪除用戶、用戶家目錄和用戶郵箱
      • id 查看用戶的相關信息

        當id命令后面不跟用戶時顯示當前登錄用戶的相關信息

        id [OPTION]… [USER]

        • -g, –group: 只顯示用戶的基本組ID
        • -G, –groups: 只顯示用戶所有的附加組ID, 用空格分割
        • -u, –user: 只顯示用戶的UID
        • -n, –name: 使用名稱代替數字ID信息

      su 切換用戶或以其他用戶身份執行命令

      切換用戶的方式:

      • su UserName:非登錄式切換,即不會讀取目標用戶的 配置文件,不改變當前工作目錄
      • su – UserName:登錄式切換,會讀取目標用戶的配置 文件,切換至家目錄,完全切換
        root su至其他用戶無須密碼;非root用戶切換時需要密碼

      su [options…] [-] [user [args…]]

      • -l: 相當于su – user
      • -c: 換個身份執行命令

    passwd 修改用戶密碼和密碼相關屬性信息

    passwd [OPTIONS] [UserName] (不指定UserName是修改自己的密碼,只有root用戶才能指定UserName)

    • -l, –lock: 鎖定指定用戶
    • -u, –unlock: 解鎖指定用戶
    • -e, –expire: 強制用戶在下一次登錄必須更改密碼
    • -n, –minimum DAYS: 修改指定用戶密碼的最短使用期限
    • -x, –maximum DAYS: 修改指定用戶密碼的最長使用期限
    • -w, –warning DAYS: 修改指定用戶密碼的警告期限
    • -i, –inactive DAYS: 修改指定用戶密碼的非活動期限
    • –stdin: 從標準輸入接收用戶密碼

    chage 設置用戶密碼策略

    chage [OPTION]… LOGIN

    • -d, –lastday LAST_DAY: 設置指定用戶密碼上一次修改時間(格式: YYYY-MM-DD)
    • -E, –expiredate EXPIRE_DAT: 設置指定用戶的過期時間(格式: YYYY-MM-DD)
    • -I, –inactive INACTIVE: 設置指定用戶密碼的非活動期限
    • -m, –mindays MIN_DAYS: 設置指定用戶密碼的最短使用期
    • -M, –maxdays MAX_DAYS: 設置指定用戶密碼的最長使用期
    • -W, –warndays WARN_DAYS: 設置用戶密碼的警告期限
    • -l, –list: 顯示指定用戶的密碼策略

    用戶管理的其他命令

    • chfn-69806: 修改用戶的注釋信息
    • chsh: 修改用戶使用的默認shell
    • finger: 查看用戶的注釋信息

    組管理相關命令

    groupadd 創建組并指定相關信息

    groupadd [options] group

    • -g, –gid GID: 創建用戶組并指定其組id
    • -r, –s

      groupmod 修改組信息

      groupmod [options] GROUP

      • -g, –gid GID: 修改指定用戶組的GID
      • -n, –new-name NEW_GROUP: 指定組的組名

    groupdel 刪除組

    如果某個用戶以這個組為主組,那么這個組將無法被刪除

    gpasswd 更改組密碼和組的成員信息

    gpasswd [option] GROUP gpasswd命令后面不跟選項直接跟組名是修改指定組的密碼

    • -a, –add USER: 將指定用戶添加到組里面
    • -d, –delete user: 將指定用戶從組中刪除
    • -A, –administrators user,…: 設置該組的管理員列表, 多個用逗號隔開

    groupmems 查看或管理組中成員

    groupmems [options] [action]

    Option:

    • -g, –group groupname: 指定需要查看或操作的對象

    action:

    • -a, –add username: 向指定組中添加用戶
    • -d, –delete username: 刪除組中的指定用戶
    • -p, –purge: 清空指定組中的組中的所有用戶
    • -l, –list: 查看指定組的所有用戶

    groups 查看組信息

    newgrp 臨時切換基本組

    當用戶的基本組和附加組中已經包含了要切換的目標組,則用戶使用newgrp切換基本組時不需要輸入密碼

    其他相關命令

    • vipw、vigr 編輯用戶和組相關文件,帶語法檢查功能
    • pwck、grpck 檢查用戶和組相關文件。
    • openssl rand -base64 20 生成20位的隨機數
    • newuser FILE: 批量創建用戶,要求FILE文件的格式和/etc/passwd文件的格式一樣
    • cat passwd.txt | chpasswd: 批量更改用戶密碼,passwd.txt文件格式: Username: passwd

原創文章,作者:island,如若轉載,請注明出處:http://www.www58058.com/69806

(0)
islandisland
上一篇 2017-03-16 16:27
下一篇 2017-03-16 19:54

相關推薦

  • awk與systemd

    GNU awkGNU awk 文本處理三工具:grep,sed,awk    grep,egrep,fgrep:文本過濾工具    sed:行(流)編輯器    awk:報告生成器,格式化文本輸出 awk awk: Aho, Weinberger, Kerni…

    Linux干貨 2016-09-22
  • lvs集群搭建

    Linux Cluster: Cluster:計算機集合,為解決某個特定問題組合起來形成的單個系統; Linux Cluster類型:LB:Load Balancing,負載均衡;HA:High Availiablity,高可用;A=MTBF/(MTBF+MTTR)(0,1):90%, 95%, 99%, 99.5%,  99.9%, 99.99%…

    2017-05-09
  • 關于大型網站技術演進的思考(十四)–網站靜態化處理—前后端分離—上(6)

    原文出處: 夏天的森林  前文講到了CSI技術,這就說明網站靜態化技術的講述已經推進到了瀏覽器端了即真正到了web前端的范疇了,而時下web前端技術的前沿之一就是前后端 分離技術了,那么在這里網站靜態化技術和前后端分離技術產生了交集,所以今天我將討論下前后端分離技術,前后端分離技術討論完后,下一篇文章我將會以網站 靜態化技術的角度回過頭來…

    Linux干貨 2015-02-26
  • sed 文本處理工具介紹

    sed簡介: 文本處理三劍客之一的sed sed是一種行編輯器,它一次處理一行內容,本身是一個管道命令,對行的數據進行 替換 增加 刪除 選取的工作 sed的命令為:sed[opition] ‘script’ inputfile…             &nbs…

    2017-06-24
  • Linux 第九天: 練習和作業

    Linux 第九天: 練習和作業       編寫腳本/root/bin/systeminfo.sh 顯示當前主機系統信息 包括主機名 ipv4地址 操作系統版本 內核版本 CPU信號 內存大小 硬盤大小 server_ip=`ifconfig|grep'inet\b'|grep -v '…

    Linux干貨 2016-08-15
  • 第九周

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash for i in `cut -d':' -f7 /etc/passwd`;do &n…

    Linux干貨 2016-09-26
欧美性久久久久