1. 程式人生 > >Centos7.1使用者基本許可權輕鬆管理篇

Centos7.1使用者基本許可權輕鬆管理篇

    如果只是個人PC,是不是大家和我一樣都不喜歡花太多心思去管理使用者和許可權的,因為沒多大意義偷笑。但是如果在企業或事業單位中使用者群體較多,所涉及的資訊的安全等級具有一定影響範圍的時候就得要好好done了,不然到時候有砸鍋的人可怎麼辦丫,還不得自己含著淚也要補完了。

    使用者許可權管理的意義在於:安全、方便。

     首先,使用者也是以群居的方式進行分組的,根據需求分為多個組(group),而且每個group都有唯一的組名(groupname),以及每個groupname都對應唯一個id,叫GID。接著每個組(group)下面有不同成員,稱之為使用者(user),同樣的,每個使用者都擁有自己的唯一使用者名稱以及對應的唯一的id,叫UID。如果要指定組名的話,要先有組,而後再有使用者;如果直接建立使用者賬戶不指定組名的話,那樣也沒有關係,最終組名將會為與賬戶同名。

     一、   使用者組分類:管理員組和普通組

            管理員組(root,gid為0)

              普通組:gid範圍:1-65535,分為系統組和登入組,

                      系統組(gid範圍:1-999)和登入組(gid範圍:6000-10000)

    二、    使用者的分類:

        使用者分為:管理使用者和普通使用者。

         (1)管理使用者root(uid為0),權利最大的管理員,所有的許可權對它來說幾乎是形同虛設的,它的存在就是為了管理其它使用者的,於是普通使用者都得由它來建立。

          (2)普通使用者分為登入使用者和系統使用者。uid的範圍也和group相似,uid範圍:1-65535,登入使用者(uid範圍:1-999)可以用來登入,可以通過不同驗證方式登入,但是對於新手來說,剛開始接觸大多數都是密碼驗證登入。系統使用者(6000-10000)。

    三、使用者即使用者組的建立:

            一個使用者從建立到使用,通常經過的流程為:

                建立使用者組——使用者組密碼——建立使用者——設定密碼。

                  翻譯成命令,即:

                  groupadd——gpasswd——useradd——passwd。

                但是前面有提到過,如果對使用者組沒要求,可以不用建立使用者組的,而直接建立user,會生成相應的組的。一般來說,gpasswd不是必須的,因此最簡單的useradd-passwd,就可以使用了,請注意我使用的是root賬號:

                     wKiom1Z2IsqCmUUkAAAwTdGGVaA236.png

    可能有人會問,咦,我怎麼檢視自己已經建立成功了?很簡單,用id這個命令就可以了,截圖如下,user1已經分配相應的uid了,說明已經建立成功

      wKiom1Z2ItngE3qTAAARQPX4qsU214.png 

            通常習慣性更容易接受user的使用,反正我個人是這麼覺得的,那麼group參照user的使用可能更好理解,但是下面都只是命令的解釋了,反正多記多敲命令就是了。先說說user相關命令的使用吧;

        1.使用者的建立

        useradd使用者建立,passwd密碼設定,userdel刪除,usermod使用者相關屬性修改以及chage直接修改密碼屬性。

            useradd:使用者建立

                       語法規則:useradd [options] username

       不要為這幾個單詞難為情了,翻譯過來,就是在useradd和username之間按照我們想設定指定引數OPTION而已,而[]則是表示可以設定或者可以不設定,就是說可以省略掉啦。

       option:可以有以下幾個引數:

        -u,--uid UID: 指定UID

        -g,--gid GROUP:指定基本組id,此組得事先存在

        -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明使用者所屬的附加組,多個組之間用逗號分隔

        -c, --comment  COMMENT :指明註釋資訊

        -d,--home HOME_DIR:以指定的路徑為使用者的家目錄,通過複製/etc/skel此目錄並重命名實現,指定的家目錄路徑如果事先存在,則不會為使用者複製環境配置檔案

        -s,--shell SHELL:指定使用者的預設shell,可用的所有shell列表儲存在/etc/shells檔案

        -r,--system:建立系統使用者

        useradd -D,顯示建立使用者的預設配置,

        useradd -D -s /bin/csh username

        useradd -D [OPTIONS] user  修改建立使用者的預設配置 修改的結果保存於/etc/default/useradd檔案中

    eg1:指定附加組,一個使用者只能擁有一個基本組,也稱之有效組,或者說主組,但是卻可以屬於多個附加組,而一個組可以有多個使用者,是多對多的關係,如果有的命令還沒熟悉,沒關係,可以往下面繼續檢視,如何為使用者指定附加組(useradd -G),以及後面追加附加組(usermod -aG)如下,:  

      wKiom1Z2L7HgKDZqAABKZIrfz9w257.png

    passwd:修改密碼,

            passwd的語法略羅嗦了,就不貼上佔空間了,可以man passwd自己檢視。

(1)passwd:修改使用者自己的密碼

(2)passwd USERNAME:修改指定使用者的密碼,但僅root有此許可權,

    -l,-u:鎖定和解鎖使用者

    -d:清除使用者密碼串

    -e DATE:過期期限,日期

    -i DAYS:非活動期限

    -n DAYS:密碼的最短使用期限

    -x DAYS:密碼最長使用期限

    -w DAYS:警告期限

    另外:passwd還可以直接賦密碼

        echo "passwd" | passwd --stdin username

    chage命令:更改密碼的過期資訊,主要是對應修改/etc/shadow裡面的資料

    -l:列出密碼的詳細引數

    -d  :修改建立密碼的距離19700101那天的秒數,即將最近一次密碼設定時間設為“最近日期”    chage -d "487208" centos

    -E:修改過期時間

    -W:指定警告時間

    -m:密碼最短可修改天數

    -M:密碼最長必須修改天數

            userdel命令:刪除使用者

    userdel [選項] username

    -r:刪除使用者時一併刪除其家目錄

            usermod命令;修改使用者屬性

    usermod [option] username

    -u,--uid UID:指定新的UID

    -g:--gid GROUP:修改使用者所屬的基本組:

    -G,   --groups GROUP1[,GROUP2,...[,GROUPN]]]修改附加組,原來的附加組會被覆蓋

    -a:--append,與-G一同使用,用於為使用者追加新的附加組

    -c, --comment  COMMENT :指明註釋資訊-d,--home HOME_DIR:修改使用者的家目錄,使用者原有的檔案不會被移置新位置   預設修改是不建立新的檔案位置的

    -m,--move-home,只能與-d選項一同使用,用於將原來的家目錄移動為新的家目錄

    -l,--login NEW_LOGIN:修改使用者名稱

    -s,--shell SHELL:修改使用者預設的shell

    -L;--lock 鎖定使用者密碼

    -U,--unlock;解鎖使用者的密碼

    eg2:修改使用者名稱(usermod -l)以及修改使用者家目錄並移除原來目錄(usermod -md)如下:

wKiom1Z2McbheAxaAABN1Ty3P-c100.png

    2.使用者組的建立

                涉及命令:groupadd,groupdel,groupmod,gpasswd

             groupadd命令:新增組

        groupadd [option] group_name

        -g GID:指定GID,預設是上一個組的GID+1

        -r:建立系統組

              groupmod命令:修改組屬性

        groupmod [option] groupname

        -g GID:修改gid

        -n newname:修改groupname

groupdel命令:

        groupdel [option] group

              gpasswd:修改組密碼,並且設定user

gpasswd [option] group

        -a USERNAME:向組中新增使用者

        -d USERNAME:從組中移除使用者

    3.檢驗以及檢視使用者即使用者組

      我們知道系統關機後,記憶體裡面的資料是不會存在的,而且像賬號密碼這麼重要的資料當然是需要寫到磁碟上面去了,而且應該是寫到某個固定的文件中去了,對吧。下面我想介紹兩種檢視使用者及使用者組方法:通過命令檢視和通過文件檢視

   (1)通過命令檢視:id     

     id命令:顯示使用者的真實和有效ID

        id [option]... [user]

        -u:僅顯示有效的UID

        -g:僅顯示使用者的基本組

        -G:僅顯示使用者所有的組

        -n:顯示名字而非ID,和上面的引數可以搭配使用

   (2)通過文件檢視:tail -n /etc/passwd | /etc/shadow | /etc/group

       這仨文件有什麼關係呢:當我們登入到系統時,輸入賬號密碼後,系統會根據你輸入到賬戶到/etc/passwd搜尋看有沒有這個賬戶,即/etc/passwd裡面的name,沒有則退出,有的話,再去/etc/shadow裡面去核對密碼,當所有都無誤了

           /etc/passwd:主要是存放user資訊的庫

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

           /etc/shadow:單獨存放user的密碼

           使用者名稱:加密的密碼:最近一次修改密碼的時間:最短使用期限:最長使用期限:警告期限:過期期限:保留欄位

           /etc/group:存放group資訊的庫

           group_name:password:GID:user_list

              注意user_list只顯示附加組

          提示:當然也有/etc/gpasswd,不過看需求設定了,這裡不闡述了

    總結:

    1.檢視系統支援的shells:  cat /etc/shells

    2.使用者新增附加組有三種方法:第一:usermod -aG  username ,第二: gpassword -a username groupname,第三:vi /etc/group,在最後一項新增username

    刪除附加組: gpasswd  -d  USERNANME,vi /etc/group

    3./etc/passwd,/etc/shadow,/etc/group的預設設定是在 /etc/login.defs

    4.我想也有人好奇過系統passwd的加密究竟用的哪種加密演算法,在/etc/shadow裡面的第二欄位就有據可查,總共由3個$符隔開,第一和第二個$之間表示加密的演算法,為6表示sha512,第二個$和第三個$之間表示的是salt,最後一段就是真正的加密資料了。

        passwd --status  USERNAME ,或者 passwd -S USERNAME 可以也可以檢視賬戶的屬性以及使用的什麼加密演算法

    ​5.為何只有root賬戶有建立使用者的許可權:

    ​    ​

    ​    ​    ​    ​如上,root組雖有執行useradd的許可權,但是隻有root賬戶有/etc/passwd的寫(w)許可權,因此只有root可以新增使用者。

其他:

        加密演算法到處都能搜到,以下零碎不用管了,僅作為提醒自己記憶:

            加密演算法 對稱和非對稱 

                公式:s={p,c,k,e,d}, p=Ek(c),c=Dk(p) 

                對稱 DES,3DES,RC2 RC4 

                非對稱 RSA DSA 

                單向加密 md5 sha base64 hmac

        加密演算法代號:    

            1     md5:message digest,128bits  訊息摘要

    2  sha:secure hash algorithm   安全的雜湊演算法,160bits

    3  sha224

    4  sha256

    5  sha384

    6  sha512

   passwd