Linux用戶及權限管理

用戶和組管理 :
    注 : 實現資源分配的機制 
    Authentication : 認證,驗證用戶身份是否合法或者驗證用戶是否有權使用資源,但並不能具體肯定用戶可使用那些資源以及可使用多少資源
    Authorization : 受權,Linux中一切皆文件,而正是經過文件上某些元數據的修改,以實現對用戶的受權
    Audition/Accounting : 審計,審覈用戶權利的使用是否合理
    屬主(owner) : 即文件歸誰全部
    屬組(group) : 爲linux上一組類似用戶建組,並以組爲單位進行受權
                  1,將屬組所擁有的權限與屬組內的用戶創建關聯
                  2,爲數組添加新的用戶
    Linux用戶(Username)
        UID : linux以數字標識和追蹤用戶身份
        管理員用戶 : root,0
        普通用戶 : 1-65535
            系統用戶 : CentOS 6 : 1-499;CentOS 7 : 1-999,對守護進程獲取資源進行的權限分配
            普通用戶 : CentOS 6 : 500+;CentOS 7 : 1000+,交互式登錄
        linux的安全上下文 :
            進程 : process,運行中的程序
            注 : 某個進程是在以發起者的身份在運行,所以發起者的身份決定了進程所可以訪問的資源的權限,進程做爲發起者的動做,其自己並無任何區別,區別在於發起者的身份
                 決定了動做可否執行以及執行的程度
        linux組的類別 :
            用戶的基本組(主組) : 即用戶的基本或主要身份,用戶擁有的大部分或主要權限都集中在在這個組中
            用戶的額外組(附加組) : 用戶的額外身份,主要集中了用戶的少有的特殊權限
            私有組 : 組名同用戶名,且組中只有一個用戶,建立新用戶時,未指定用戶的基本組,均默認爲用戶建立私有組
        linux用戶和組的相關配置文件 :
            /etc/passwd : 用戶及其屬性信息
                文件組織格式 :
                    name : password : UID : GID : GECOS : directory : shell
                    用戶名 : 密碼 : UID : GID : 用戶的完整信息(如家庭住址,電話號碼等,信息多元時,以","分隔) : 用戶的家目錄 : 爲用戶指定的默認shell
                    注: 密碼字段中,並未真正存儲用戶密碼,而僅僅只是以一個佔位符佔位而已
            /etc/group : 組及組屬性信息
                文件組織格式 :
                    group_name : password : GID : user_list
                    組名 : 組密碼 : GID : 以該組爲附加組的用戶列表(用戶多元時,以","分隔)
                    注 : 組密碼字段中,並未真正存儲密碼,僅僅只是以一個佔位符佔位而已
            /etc/shadow : 用戶密碼及其相關屬性信息
                文件組織格式 :
                    用戶名 : 加密後的密碼 : 最近一次更改密碼的時間 : 密碼的最小使用期限 : 密碼的最大使用期限 : 密碼的警告時間段 : 密碼的禁用期 : 帳號的過時日期 : 保留字段
                加密機制 : 
                    加密 : 明文 -> 密文
                    解密 : 密文 -> 明文
                    單向加密 : 提取數據指紋,數據與數據指紋之間一一對應,數據不變,數據指紋就不會變,但沒法根據數據指紋還原數據
                    加密算法 :
                        md5 : message digest(摘要),128bits
                        sha1 : secure hash algorithm,160bits
                        sha224 : 224bits
                        sha384 : 384bits
                        sha256 : 256bits
                        sha512 : 512bits
                    雪崩效應: 明文的微小改變,就會致使密文的巨幅改變,目的在於防止根據密文的類似度逆推明文的類似度
                    定長輸出 : 只要加密算法同樣,最終輸出的密文長度就不會改變
                    注 : 爲避免多個用戶輸入的密碼相同,致使一個用戶能夠根據本身的密文推出其餘用戶的密碼,所以系統會自動在用戶密碼的後面加入一串隨機數,聯合用戶密碼生成密文
                         每次在用戶登錄時,都會在用戶密碼後,加入該隨機數,完成用戶的認證
                    密碼結構 : $加密方法及版本$雜質$密碼密文
                    密碼的複雜性原則 : 
                        1,至少要使用數字,小寫字母,大寫字母,特殊字符中的三種
                        2,要足夠長
                        3,使用隨機密碼
                        4,按期更換,不要使用最近使用過的密碼
         =======================================================================================================================================================================
         用戶和組相關的管理命令 :
             用戶建立 : useradd 
                 useradd login_name
                     -u UID : 指定用戶UID,[UID_MIN,UID_MAX],定義在/etc/login.defs文件中,默認建立的用戶UID爲最近一次建立的用戶UID加一
                     -g GID/group_name : 指定用戶所屬的基本組,可爲基本組的組名,也可爲基本組的GID,但組必須事先存在
                     -G GID : 爲用戶指定附加組,組多元時,以都「,」隔開
                     -c,--comment 「COMMENT」 : 爲用戶指定詳細信息,信息多元時,以「,」,分隔
                     -d /path/to/home_dir : 指定用戶家目錄
                     -s SHELL : 爲用戶指定默認shell,/etc/shells:保存有可用shell列表
                     -r : 建立系統用戶,CentOS 6 : 1-499,CentOS 7 : 1-999
                     useradd -D : 配合上述選項使用,修改不給任何選項,建立用戶時的默認設置,僅對當前shell進程,當前會話有效
                     
             組建立 :groupadd
                 groupadd group_name
                     -g GID : 指定組ID,[GID_MIN,GID_MAX],定義在/etc/login/defs文件中
                     -r : 建立系統組,CentOS 6:1-499;CentOS : 1-999
                =====================================================================================================================================
                id : 顯示用戶的id信息
                    -u : 僅顯示用戶UID
                    -g : 僅顯示基本組GID
                    -G : 顯示用戶基本組和附加組信息
                    -n : name,顯示用戶及組名,而非組或用戶id
                =========================================================================================================================================
                su : 以另外一個用戶身份執行命令或實現用戶之間切換
                    切換用戶的方式 : 
                        不徹底切換 : 即暫時得到其餘用戶權限,但同時用戶當前用戶的權限,並不會讀取目標用戶的配置文件
                            su user_name
                        徹底切換 :即完全變成另一個用戶,取得另一個用戶的權限,但僅擁有另外一個用戶的權限,再也不擁有當前用戶的權限,會讀取目標用戶的權限
                             su - user_name
                        注 : root用戶切換到其餘用戶不須要密碼,但普通用戶切換到其餘用戶須要密碼
                    以其餘用戶身份執行命令 : 
                        su [-] -c 'COMMAND'
                     選項:
                         -l : 登陸式切換,即徹底切換
                ============================================================================================================================================
                usermod : 修改用戶屬性
                    usermod [option]... user_name
                        -u UID : 新的UID
                        -g GID : 新的基本組
                        -G GROUP,... : 新的附加組,用戶原有的附加組將會覆蓋,若是要保留原有附加組,可符合選項-a一塊兒使用
                        -s SHELL : 新的默認shell
                        -c 'COMMENT' : 新的用戶基本信息
                        -d DIRECTORY : 新的用戶家目錄,但僅使用該選項,系統並不會將用戶原目錄下的文件移至新的家目錄下,也不會爲用戶建立新的家目錄,但若要將用戶本來家目錄下的
                                       文件移至新的家目錄下,需配合-m選項一塊兒使用
                        -e : 指定用戶帳戶的過時日期
                        -f : 指定用戶密碼的非活動期限
                        -l : 修改用戶登陸名
                        -L : 鎖定指定用戶
                        -U : 解鎖指定用戶
               ===================================================================================================================================================
               爲指定用戶添加或修改密碼 : passwd
                   passwd user_name : 修改指定用戶的密碼,僅root權限
                   passwd : 修改用戶本身的密碼,不容許前提是用戶有密碼,不然用戶添加密碼或修改密碼
                       -l : 鎖定指定用戶
                       -u : 解鎖指定用戶 
                       -n MIN_DAYS : 指定密碼的最小使用期限
                       -x MAX_DAYS ; 指定密碼的最大使用期限
                       -w WARN_DAYS : 指定密碼的警告期限
                       -i INACTIVE_DAYS : 指定密碼的非活動期限
                       --stdin : 從標準輸入接受用戶密碼,如echo 'passwd' | passwd --stdin user_name
                   ======================================================================================================================================================
                   刪除用戶 : userdel
                       userdel [option]... user_name
                       -r : 刪除用戶家目錄
                   ===========================================================================================================================================================
                   組屬性修改 : groupmod
                       groupmod [option]... group_name
                           -n : 指定新組名
                           -g GID : 執行新的組ID
                   ======================================================================================================================================================
                   組刪除 : groupdel
                       groupdel GROUP
                   ===========================================================================================================================================================
                   組密碼添加 :gpasswd
                       組密碼做用 : 當本用戶既非某組的基本組用戶,又非某組的附加組用戶,但有須要取得該組的權限時,此時須要組密碼,臨時成爲該組用戶
                        gpasswd GROUP : 添加或修改組密碼
                            -a USER : 將user添加至指定組
                            -d user : 從該組中刪除指定用戶
                            -A user1,user2,.... : 添加具備管理權限的用戶列表
                   ============================================================================================================================================
                   newgrp : 爲用戶臨時切換基本組
                       注 : 若是但前用戶不屬於該組,則須要組密碼
                   =============================================================================================================================================
                   pwck : 檢查密碼文件的完整性,即檢查用戶及其認證信息的完整性,檢查/etc/passwd,/etc/shadow格式是否正確,數據是否有效
                   ==========================================================================================================================================
                   修改用戶屬性 : chage
                       chage [option]... login_name
                           -d last_day : 修改用戶最近一次修改密碼的時間
                           -E expire_date : 修改用戶帳戶過時日期
                           -I inactive : 修改用戶密碼禁用期
                           -m min_days : 修改用戶密碼的最小使用期限
                           -M max_days : 修改用戶密碼的最大使用期限
                           -W warn_days : 修改用戶密碼的提醒警告期
                   =================================================================================================================================================
                   其餘命令 : 
                       chfn ; 修改用戶的詳細信息(即家庭住址,電話號碼等信息)
                       finger : 查看用戶的詳細信息
                       chsh ; 修改用戶的默認shell
                   =================================================================================================================================================
    權限管理: 
        文件的權限主要針對三類用戶: 
            屬主 : owner,u
            屬組 : group,g
            其餘 : others,o
        每一個文件對每一個用戶都定義了三種權限 :
            r : readable
            w : writable
            x : excutable
            文件 : 
                r : 可以使用文件查看類工具查看文件內容
                w ; 可修改文件內容
                x : 可將文件提交內核啓動爲一個進程,但爲避免文件被惡意利用,任何文件在建立時,都默認沒有執行權限
            文件夾 :
                r : 可以使用ls命令查看此目錄中的文件列表
                w : 可在此目錄中建立文件,也可在此目錄中刪除文件
                x : 可以使用ls -l查看此目錄中的文件列表,也可以使用cd命令進入此目錄,默認建立目錄時,均有此權限
        權限的另外表示方法 : r---w---x -> 100010001 -> 421
    修改文件權限 : chmod
        chmod [option]... OCTAL_MODE(八進制) FILE...
            -R : 遞歸修改權限,當修改目錄權限時,目錄中文件的權限也會跟着一塊兒改變
        chmod [option]... mode,... FILE...
            mode :
                修改某一類用戶的權限 : 
                    u=r
                    ug=rw
                    u=r,g=w
                    注:沒有寫出的權限,均默認沒有該權限
                修改某一類用戶的某一位權限 :
                    u+r
                    ug+r
                    u+r,g+r
                    增長某用戶在某一位的權限
                    u-r
                    ug-w
                    u-x,g-x
                    去除某類用戶在某一位的權限
         chmod [option]... --reference=RFILE FILE...
             參考RFILE文件的權限,將FILE文件的權限修改的和RFILE文件的權限如出一轍
      =================================================================================================================================================
      修改文件的屬主和屬組,僅root用戶權限
          chown [option][:[GROUP]] FILE...
          注: 命令中的「:」可用「.」替代
              -R :遞歸修改文件的屬主
          chown [option]... --reference=RFILE FILE,.....
              參看RFILE修改FILE的屬主
      ===========================================================================================================================================
      修改文件的屬組 :chgrp
          chgrp [option]... GROUP FILE...
          chgrp [option]... --reference=RFILE FILE...
              -R : 遞歸修改文件的屬組
      =======================================================================================================================================
      文件或目錄建立時的遮罩碼 : umask
          注 : 遮罩碼用戶建立文件或文件夾時,爲文件或文件夾指定默認權限
              FILE : 666 - umask
                  注 : 當某類用戶建立文件時,權限減得的結果中包含x權限,則結果加一,直至無x權限
              DIR : 777 - umask
              umask : 查看umask的值
              umask # : 修改umask的值,僅對當前用戶有效
相關文章
相關標籤/搜索