Linux用戶及權限管理

Linux用戶,組以及權限管理

基礎概念和工作機制:

  1. 安全3A
    資源分派
    Authentication 認證
    Authorization 授權
    Accouting,Audition 審計
    用戶user ,用戶有令牌 token, identity ,組:用戶組,用戶容
    Linux中有存放用戶名和密碼的數據庫,用戶名和成對的密碼判定用
    是否登錄成功。每個用戶登錄時都在數據庫裏驗證用戶名和密碼是否正確,如果正確會頒發令牌,當用戶訪問文件時會提交令牌給資源,資源根據提交的令牌判斷用戶是否有權限訪問此文件,用戶要想得到最新令牌必須重新登錄。
  2. Linux上的用戶即Username/UID分爲以下類別:
    管理員:root,0
    普通用戶:1-65535
    普通用戶分爲:系統用戶和登錄用戶:
    系統用戶:1-499(Centos6) 1-999(Centos7)對守護進程獲取資源進行權限分配。
    登錄用戶:500+(Centos6) 1000+(Centos7)通過交互式方式登錄。
  3. Linux組:Groupname/GID
    管理員組:root,0
    普通組:1-65535
    普通組又分爲系統組和非系統組,非系統組又叫做普通組
    系統組:1-499(Centos6),1-999(Centos7)
    非系統組:500+(Centos6),1000+(Centos7)
    :對於一個用戶而言可以有多個不同的組,分別稱之爲用戶的基本組(主組)和附加組;基本組組名和用戶名相同,且僅包含一個用戶,也叫做私有組。基本組以外的組屬於用戶的附件組(或者額外組 )

linux用戶和組相關配置文件:

  1. /etc/passwd:名稱解析庫,該文件通過名稱解析記錄了用戶及其屬性信息
    通過whatis passwd來查看其對應的配置文件的幫助信息
    name:password:UID:GID:GECOS:directory:shell
    用戶名:密碼:UID:GID:詳細說明:用戶的家目錄:默認shell
  2. /etc/group:組及其屬性信息:
    group_name:password:GID:user_list
    組名:組密碼:組ID:以當前組爲附件組的用戶列表(如有多個,用逗號隔開)
  3. /etc/shadow:用戶密碼及其相關屬性(9個字段)
    login name:用戶名
    encrypted password:加了密的密碼
    date of last password change:最近一次修改密碼的日期:從1970年1月1日起到密碼最近一次被修改的時間 值爲0第一次登錄必須修改密碼
    minimum password age: 密碼的最小使用期限:密碼必須使用多長時間 值爲0隨時更改
    maximum password age:密碼的最大使用期限:密碼可以使用多長時間(密碼有效期),使用多少天后必須更改 99999永久有效
    password warning period:密碼的警告時間段:密碼過期前幾天提醒用戶
    password inactivity period:密碼禁用期:密碼過期後還可以使用幾天
    account expiration date:賬戶的過期日期:從1970年1月1日算起,多少天后帳號失效
    reserved field:預留
  4. 密碼的加密解密機制:
    加密:明文-->密文
    解密:密文-->明文
    對稱加密:加密和解密使用同一密碼
    非對稱加密:加密和解密使用同一對密鑰,密鑰對:公鑰,私鑰
    單向加密:只能加密,不能解密,提取數據特徵碼,相同算法定長輸出,獲得密文不可逆推出原始數據
    雪崩效應:初始條件的微小改變,引起結果巨大改變

        密碼用策略:
            使用隨機密碼
              最短長度不要低於8位
              應該使用大寫字母,小寫字母,數字和標點符號四類字符中至少三類
              定期更換
        算法:md5,sha1,sha224,sha256,sha384,sha512

    用戶和組的相關命令:
    1.groupadd:添加組 groupadd [options] group
    -g GID:手動指定GID,默認是上一個組的GID+1
    -r:創建系統組
    安全上下文:進程以發起者的身份進行,進程對文件的訪問權限,取決於發起此進程的用戶權限
    2.groupmod:修改組屬性:groupmod [options] GROUP
    -g GID:修改組ID
    -n name:修改組名
    3.groupdel:刪除組 groupdel [options] GROUP
    4.useradd:創建用戶 useradd [options] LOGIN
    -u,UID,指定uid
    -g ,GROUP,指定基本組id,此組得事先存在
    -G ,爲用戶指定附加組
    -c,指明註釋信息
    -d:指明用戶家目錄:通過複製/etc/skel此目錄並重命名實現,指定的家路徑,如果事先存在,則不會爲用戶複製環境配置文件
    [[email protected] etc]# ls -al skel/
    total 24
    drwxr-xr-x. 3 root root 78 Aug 1 2018 .
    drwxr-xr-x. 141 root root 8192 Jul 3 21:24 ..
    -rw-r--r--. 1 root root 18 Aug 3 2017 .bash_logout
    -rw-r--r--. 1 root root 193 Aug 3 2017 .bash_profile
    -rw-r--r--. 1 root root 231 Aug 3 2017 .bashrc
    drwxr-xr-x. 4 root root 39 Aug 1 2018 .mozilla
    -s,--shell,指明用戶默認shell,可用shell列表(/etc/shells):
    [[email protected] etc]# cat shells
    /bin/sh
    /bin/bash
    /sbin/nologin
    /usr/bin/sh
    /usr/bin/bash
    /usr/sbin/nologin
    /bin/tcsh
    /bin/csh
    -r,--system:創建系統用戶
    -D:顯示創建用戶的默認配置:
    [[email protected] etc]# useradd -D
    GROUP=100
    HOME=/home
    INACTIVE=-1
    EXPIRE=
    SHELL=/bin/bash
    SKEL=/etc/skel
    CREATE_MAIL_SPOOL=yes
    useradd -D [options]:修改默認值
    注:創建用戶時諸多默認設定配置文件/etc/login.defs,修改結果保存於/etc/default/useradd文件中
    5.usermod:修改用戶屬性:usermod [options] LOGIN
    -u UID:修改用戶的ID
    -g GROUP:修改用戶所屬的基本組
    -G,:修改用戶所屬的附加組,原來的附加組會被覆蓋
    -a,與-G一同使用,用於爲用戶追加新的附件組
    -c:修改註釋信息
    -d:修改用戶的家目錄,用戶原來的文件不會被轉移至新的家目錄,若要移動,則要同時使用-m選項
    -l,--login:修改用戶名
    -s,--shell:修改用戶的默認shell
    -L,--lock:鎖定用戶密碼,即在用戶原來的密碼字符串之前添加一個“!”
    -U,--unlock,解鎖用戶密碼
    6.userdel:用戶刪除用戶:userdel [options] LOGIN
    -r:刪除用戶家目錄
    7.passwd:修改用戶自己的密碼
    passwd USERNAME:修改指定用戶密碼,僅root有權限
    -L:鎖定用戶
    -U:解鎖用戶
    -d:清除用戶密碼
    -e:過期期限,日期DATE
    -i:非活動期限,DAYS
    -n:密碼的最短使用期限
    -x:密碼的最長使用期限
    -w:密碼的警告期限
    --studin:標準輸入
    echo "password" | password --studin root &> /dev/null
    8.gpasswd:用戶切換基本組
    gpasswd [option] group
    -a user:將user添加指定組中
    -d user:將user從指定組中國刪除
    -A userlist:設置有組管理權限的用戶列表
    9.newgrp:臨時切換基本組:
    如果用戶本不屬於此組,則需要組的密碼
    10.chage:修改用戶密碼屬性
    chage [options] LOGIN
    -d LAST_DAY:修改用戶最近一次修改密碼的時間
    -I INACTIVE:修改用戶的非活動期限

    11.id:顯示用戶真實和有效ID
    -u:僅顯示有效的UID
    -g:僅顯示用戶的基本組ID
    -G:僅顯示用戶所屬的所有組的ID
    -n:顯示名字而非ID
    12.su:switch user
    登錄式切換:會通重新讀取用戶的配置文件來重新初始化
    非登錄式切換:不會讀取目標用戶配置文件進行初始化
    登錄式切換: su -, -l, --login
    非登錄式切換:su
    注:管理員可無密碼切換其他任何用戶
    -c "COMMAND":僅以指定用戶的身份運行此處命令
    文件權限管理:

    1. 權限表示方法:
      rwxrwxrwx:
      左三位:定義ower權限,
      中三位:定義group權限,
      左三位:定義other權限
      進程運行上下文:進程對文件的訪問權限應用模型
      進程的屬主與文件的屬主是否相同,如果相同則應用屬主權限,否則,則檢查進程的屬主是否屬於文件的屬組,如果是,則應用屬組權限,否則就只能應用other權限
      權限:r:read讀,w:write寫,x:excute執行

          文件:r:可獲取文件的數據
                       w:可修改文件的數據
                       x:可將此文件運行爲進程
          目錄:r:可使用ls命令獲取其下的所有文件列表
                     w:可修改此目錄下的文件列表,即創建或刪除文件
                     x:可cd至此目錄中,且可使用ls -l來獲取所有文件的詳細屬性信息
      
              權限、二進制表示、八進制表示對應的表示方法:
                      ---:000     0
                      --x:001     1
                      -w-:010    2
                      -wr:011    3
                      r--:100     4
                      r-x:101     5
                      rw-:110    6
                      rwx:111    7

      2.文件權限修改命令:
      chmod:文件權限修改:
      chmod [OPTION]... MODE[,MODE]... FILE...
      chmod [OPTION]... OCTAL-MODE FILE...
      -R:表示遞歸
      MODE:
      修改一類用戶的所有權限:u=,g=,o=,ug=,a=
      修改一類用戶的某位或某些位權限:u+,u-
      chmod [OPTION]... --reference=RFILE FILE...
      參考RFILE文件的權限,將FILE的修改爲同RFILE的權限

    文件的屬主和屬組修改:chown,chgrp:
    注:文件的屬主屬組僅root可以使用
    修改文件的屬主:chown
    chown [OPTION]... [OWNER][:[GROUP]] FILE...有三種表示方法:
    (1)OWNER:只修改屬主
    (2)OWNER,GROUP修改屬主和屬組
    (3)GROUP:只修改屬組
    修改文件的屬組:chgrp
    -R:遞歸
    文件或目錄創建時的遮罩碼:umask
    所謂遮罩碼是指在創建一個文件或目錄時的默認權限:
    文件:666-umask
    注:之所以文件是666,是因爲表示文件默認不能擁有執行權限,如果減得的結果存在x權限,則需要+1
    目錄:777-umask
    umask命令:
    umask:查看umask
    umask UMASK:設定umask的值
    注:此類設置僅對當前shell進程有效

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章