天天看點

Linux 使用者、組管理以及權限

資源配置設定

    Authentication  認證 →使用者名

    Authorization    授權 → 檔案或目錄的權限

    Accounting        審計 

Linux使用者                UID  → 計算機隻識别數字

    管理者:root  0

    普通使用者:1-65535

        系統使用者:1-499

            守護程序:擷取系統資源進行權限配置設定;

        登入使用者:500+

Linux組   GID  可以想象成一個容器

        管理者組:root  0

        普通組:1-65535

            系統組:1-499

            普通組:500+

Linux安全上下文

    運作中的程式:程序

    一般的可執行程式或軟體都是以執行者的身份運作的,能獲得什麼樣的資源取決于執行者的權限;

Linux組的類别

    基本組(主組):

        組名同使用者名,且僅包含一個使用者:私有組

    附加組(額外組):

    一個使用者可以屬于多個組;

Linux使用者群組的相關的配置檔案

    /etc/passwd:使用者及其屬性資訊

        使用者名,密碼,UID,基本組GID,家目錄,簡介,shell;

        檢視檔案格式:man 5 passwd

    /etc/shadow:使用者密碼及其屬性資訊

        使用者名,加密的密碼,最近修改密碼時間,密碼最小使用期限,密碼最大使用期限,密碼過期警告時間,寬限時間(密碼禁用期,隻有更改密碼後才能登陸),密碼過期時間,保留字段;

        檢視檔案格式:man 5 shadow

        加密機制:

            加密:明文→密文

            解密:密文→明文

            單向加密:

                md5sum

      sha1sum, sha224sum, sha384sum, sha512sum, sha256sum

                定長輸出                雪崩效應:一個微小的改變,就會對結果造成巨大的改變;

例子:$6$MA81A2EnrSQcJ4LX$sA8s8oZKmmD.WxDtSWKu3X.HkTnC7vdEN9Vym6mVhrYoFbiRrWKtYGNca/MLpmPsnzf1W27Y9Jv98DDJR6.wD/

以$為分隔符,6代表加密算法,MA81A2EnrSQcJ4LX為添加的雜質,為了讓相同的密碼有不同的輸出,每次輸入密碼是系統都會自動添加這個雜質,sA8s8oZKmmD.WxDtSWKu3X.HkTnC7vdEN9Vym6mVhrYoFbiRrWKtYGNca/MLpmPsnzf1W27Y9Jv98DDJR6.wD/真正的密碼;

    /etc/group:組及其屬性資訊

        組名,組密碼,GID,以目前組為附加組的使用者名(多個使用者名時以逗号隔開);

    /etc/gshadow:及其屬性資訊

        使用者管理類指令

            useradd:添加使用者

                /etc/default/useradd:可以檢視添加使用者的預設設定

                    # useradd defaults file

                    GROUP=100

                    HOME=/home

                    INACTIVE=-1

                    EXPIRE=

                    SHELL=/bin/bash

                    SKEL=/etc/skel 建立使用者的家目錄時,會将/etc/skel 目錄中的檔案複制到使用者的家目錄中(".","..",.bashrc等有關使用者環境的檔案)

                    CREATE_MAIL_SPOOL=yes

    /etc/login.defs:可以設定預設添加使用者時UID/GID的最小和最大ID;

        centos7是從1000開始;centos6是從500開始;

    useradd -u :添加使用者時指定UID;

    useradd -g :添加使用者時指定的基本組ID,可以是組名也可是GID号,此組必須事先已存在;

    useradd -c:設定使用者的注釋資訊;一般是設定全名;

    useradd -d:添加使用者時指定其家目錄;

    useradd -s:添加使用者時指定使用者的shell;

    useradd -r:添加一個系統使用者;

        /etc/shells:定義着支援的shell;

    useradd -G:添加使用者時指定使用者的附加組,添加多個附加組時用逗号隔開,組事先要存在;

    useradd -D:修改添加使用者時的預設屬性,實際上是修改/etc/default/useradd檔案;

    -s:修改預設shell

    -e:修改預設賬号過期時間

    -f:修改預設賬号寬限時間

        groupadd -g:添加組時指定GID;    groupadd:添加組

        groupadd -r:添加一個系統組;

    id:顯示使用者的uid,gid;

        id -u:顯示使用者的uid;

        id -g:顯示使用者的gid;

        id -G:顯示使用者的所有組資訊;

    su:切換使用者身份或以其他使用者的身份執行指令;

        su UserName:非登入式切換,即不會讀取目标使用者的配置檔案;

        su - UserName:登入式切換,會讀取目标使用者的配置檔案,完全切換;

        su - UserName -c "command options":以目标身份執行指令,而不切換;

    usermod:修改使用者資訊;

        usermod -d path/to/dir -m UserName:更改使用者的家目錄的同時把原本家目錄的内容移動到新家裡

        usermod -l:更改名字;

        usermod -L:lock指定使用者;

        usermod -U:unlock指定使用者;

    passwd:給使用者添加密碼;

        passwd UserName:修改指定使用者的密碼;僅root可用

        passwd:修改自己的密碼;

            echo "password" | passwd --stdin UserName:從标準輸入接收密碼;

    userdel:删除使用者;

        userdel -r:删除使用者的同時删除家目錄;

    groupmod:修改組的屬性;

        groupmod -n:修改組名;

        groupmod -g:修改GID;

    groupdel:删除組;

        groupdel GroupName;

    gpasswd:添加組密碼;

        gpasswd -a:向組中添加使用者;稱為使用者的附加組;

        gpasswd -d:從組中移除使用者;

        gpasswd -A user1,user2,…:設定有管理權限的使用者清單;

    newgrp:臨時更改指定使用者的基本組; exit指令可以退出,回到之前的基本組;

    pwck:檢查/etc/passwd和/etc/shadow格式是否正确,資料是否有效;

    chage:更改賬戶密碼期限;

        chage -l:顯示指定使用者時間期限資訊;

    chfn UserName:設定指定使用者的詳細資訊,可以再/etc/passwd中找到;

        finger:顯示指令;

權限管理

    檔案的權限主要針對三類對象:

        屬主:User:::4(二進制)

        屬組:Group:::2(二進制)

        其他人:Other:::1(二進制)

    每個檔案都定義了三種權限:可讀(r),可寫(w),可執行(x);

        - rw- r-- r--.  1  root  root   2277   Apr   29  20:55  initial-setup-ks.cfg    (644)

            對于檔案: 建立檔案時預設不具有可執行權限;

                可讀表示可以通過檔案檢視類指令檢視檔案内容;

                可寫表示可以通過檔案編輯類指令編輯寫入資料到檔案中;

                可執行是對于腳本程式的,一般情況下檔案不可執行;(可以把此檔案提請到核心啟動為一個程序)

        d rwx r-x r-x.  2  root  root     6  Apr  29  20:55   perl5

            對于目錄:建立目錄時一般具有可執行權限;

                可讀表示可以使用ls顯示目錄裡的檔案或子目錄;

               可寫表示可以在此目錄裡建立或删除檔案或子目錄;(隻要使用者具有目錄的可寫權限,就可以删除目錄内的任何内容,即使不具有檢視或修改裡面内容的權限)

                可執行表示可以使用ls -l檢視目錄中檔案清單,也可以使用cd指令進入到目錄裡;

    chmod:修改檔案權限;

        chmod [OPTION]... MODE[,MODE]... FILE...

        chmod -R:遞歸修改檔案或目錄的權限;

            MODE:

                修改一類使用者的權限;

u=rwx g=rwx o=rwx
u-rwx g-rwx o-rwx
u+rwx g+rwx o+rwx

                ugo=/-/+rwx;

                u=rwx,g=rw,o=r;

        參考某個檔案或目錄的權限來修改某檔案或目錄的權限;

            chmod [OPTION]... --reference=RFILE FILE...

    chown:修改檔案的屬主,屬組;

        chown [OPTION]... [OWNER][:[GROUP]] FILE…   ":"可用"."代替;

        chown -R:遞歸修改屬主或屬組;

        參考某個檔案或目錄的屬主或屬組來修改某檔案或目錄的屬主或屬組;

        chown [OPTION]... --reference=RFILE FILE...

    chgrp:修改檔案或目錄的屬組;

    umask(0022)         

        建立檔案時的預設權限為:666-umask;

            如果減後的權限位存在可執行權限,則結果加1;

        建立目錄時的預設權限為:777-umask;

注:根據馬哥視訊做的學習筆記,如有錯誤,歡迎指正;侵删

轉載于:https://www.cnblogs.com/guowei-Linux/p/9787345.html

繼續閱讀