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

安全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
下一篇 2017-03-16

相關推薦

  • Acheng學習宣言

    我是Acheng,我參加了馬哥Linux運維網絡班,從2016年9月開始我將跟隨馬哥學習Linux技術。我的學習宣言是:再努力也不為過!朝著活學活用,做到做精的方向努力吧! 

    Linux干貨 2016-10-25
  • 8.3_Linux習題和作業

    課堂習題 1.當用戶xiaoming對/testdir 目錄無執行權限時,意味著無法做哪些操作? 答:不能cd進該目錄 2.當用戶xiaoqiang對/testdir 目錄無讀權限時,意味著無法做哪些操作? 答:不能查看目錄內的文件列表,不能cd,也不能查看目錄里面文件的元數據 3.當用戶wangcai 對/testdir 目錄無寫權限時,該目錄下的只讀文件…

    Linux干貨 2016-08-04
  • 如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果

    命令別名使用alias命令; ~]#alias NAME='COMMAND' 在一個命令中引用另一個命令的執行結果也是bash的特性之一,引用。 方法:$(COMMAND)

    Linux干貨 2016-11-06
  • 文件通配符練習

    課后資料補充 * : 通配符,代表任意字符(0到多個)? : 通配符,代表一個字符# : 注釋/ : 跳轉符號,將特殊字符或通配符還原成一般符號| : 分隔兩個管線命令的界定; : 連續性命令的界定~ : 用戶的根目錄$ : 變量前需要加的變量值! : 邏輯運算中的&q…

    Linux干貨 2016-08-08
  • Centos6上安裝cobbler及cobbler常見參數詳解

    前言 Cobbler是一個自動化和簡化系統安裝的工具,通過使用網絡引導來控制和啟動安裝。Cobbler的特性包括存儲庫鏡像、Kickstart模板和連接電源管理系統。使用Cobbler之前需要先了解下PXE和Kickstart的基本原理,文章包含了Cobbler工作原理和Cobbler部署實踐兩部分內容,交叉關聯性的內容還是蠻多的,遇到報錯也不要怕,都會一步…

    Linux干貨 2016-11-11
  • Python函數式編程指南:目錄和參考

    目錄: 概述 這一篇簡要地描述了函數式編程和一些相關的概念。 函數 這一篇展示了關于函數可能不常用到的部分特征并嘗試引導諸位使用函數式的思維解決問題,并介紹了諸多有用的內建函數。 迭代器 這一篇介紹了迭代器以及Python對迭代器的語法級的支持,還包括了內置模塊itertools的介紹。 生成器 這一篇介紹了自定義的迭代器——生成器,并展示了生成器的用途和使…

    Linux干貨 2015-03-11
欧美性久久久久