溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

學習Linux用戶和組管理權限對其的一些認知

發(fā)布時間:2020-07-24 00:12:25 來源:網(wǎng)絡 閱讀:138 作者:wx5dbc5b45355b0 欄目:系統(tǒng)運維

第一次寫博客因培訓老師建議寫博客增強自己的學習能力,我也覺得有些道理,及開通博客,嘗試寫一下。
也希望大??吹讲灰獓姽?,歡迎指導,謝謝。

1、用戶
每個用戶即為每個使用者,對應的一組用戶標識碼、密碼 從而識別為一個用戶。
而組即為用戶的一個容器,讓用戶裝在里面。
用戶類別分為兩種:管理員與普通用戶。
普通用戶有:
系統(tǒng)用戶
登錄用戶
用戶標識:userID,UID:
因為機器需要識別用戶 但是機器只認數(shù)字所以有了UID
UID由16位二進制數(shù)字組成表示0-65535 共65536個
其中管理員為0
普通用戶為1-65535
其中普通用戶中的系統(tǒng)用戶在centos6中為1-499,centos7中為1-999
登錄用戶在centos6中為500-60000,centos7中為1000-60000
但是這個不利于人的記憶,人容易記住的是字符串,但是機器識別不了所以有了名稱解析用來轉換username與uid,所以linux有個解析庫就用來查找username與uid之間的轉換,/etc/passwd
2、組
同樣的組也分兩類:管理員組和普通用戶組
普通用戶組也分:
系統(tǒng)組
登陸組
組標識:groupID,GID
與用戶標識相同
同樣的也有名稱解析,解析庫為/etc/group
第二種組類別分法,即用戶的基本組和附加組,一個用戶可以在多個組里面,但有個最主要的組就叫基本組,在的其他組就是附加組。就如同你本身在這個1部門工作,臨時去2部門幫忙1就是你的基本組2就是你的附加組
第三種組類別分法,私有組和公共組,私有組表示與用戶同名且組內(nèi)只有這一個用戶即為私有組,公共組則表示有多個用戶存在,但這個分法沒有實際意義。
3、安全上下文
進程會以發(fā)起者的身份運行;
進程對文件的訪問權限,取決與發(fā)起此進程的用戶權限,即這個進程能做什么取決于用戶權限有什么;
系統(tǒng)用戶:
講到安全上下文就要說到我們一開機即會啟動一大堆的進程,那這些進程都是以什么身份啟動,這就是系統(tǒng)用戶的作用,為了讓后臺進程或服務類進程以非管理員的身份運行,且通常一個用戶只干一件事,所以通常需要為此創(chuàng)建多個系統(tǒng)用戶;但是這類用戶從不用登錄系統(tǒng);

3、用戶與組的常用命令
groupadd:添加組;
用法:group [選項] group_name
選項:
-g:指定GID;沒有指定即默認為上一個添加的組的GID+1;
-r:創(chuàng)建系統(tǒng)組;

groupmod:修改組屬性
    groupmod [選項] GROUP
        -g:修改GID;
        -n:修改組名;
groupdel命令:刪除組
    groupdel [選項] GROUP

useradd [選項] 登錄名
        -u, --uid UID:指定UID;
        -g, --gid GROUP:指定基本組ID,此組得事先存在;
        -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用戶所屬的附加組,多個組之間用逗號分隔;
        -c, --comment COMMENT:指明注釋信息;
        -d, --home HOME_DIR:以指定的路徑為用戶的家目錄;通過復制/etc/skel此目錄并重命名實現(xiàn);指定的家目錄路徑如果事先存在,則不會為用戶復制環(huán)境配置文件;
        -s, --shell SHELL:指定用戶的默認shell,可用的所有shell列表存儲在/etc/shells文件中;
        -r, --system:創(chuàng)建系統(tǒng)用戶;
注意:直接useradd默認屬性創(chuàng)建的用戶諸多默認設定配置文件為/etc/login.defs 
    useradd -D:顯示創(chuàng)建用戶的默認配置;
    useradd -D [選項]: 修改默認選項的值;
修改的結果保存于/etc/default/useradd文件中;
usermod命令:修改用戶屬性

    usermod [選項] 登錄
        -u, --uid UID:修改用戶的ID為此處指定的新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:解鎖用戶的密碼;

userdel命令:刪除用戶

    userdel [選項] 登錄
        -r:刪除用戶時一并刪除其家目錄;

passwd命令:

    passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]

    (1) passwd:修改用戶自己的密碼;
    (2) passwd USERNAME:修改指定用戶的密碼,但僅root有此權限;

        -l, -u:鎖定和解鎖用戶;
        -d:清除用戶密碼串;
        -e DATE: 過期期限,日期;
        -i DAYS:非活動期限;
        -n DAYS:密碼的最短使用期限;
        -x DAYS:密碼的最長使用期限;
        -w DAYS:警告期限;

        --stdin:以標準輸出修改密碼
            echo "PASSWORD" | passwd --stdin USERNAME

gpasswd命令:

    組密碼文件:/etc/gshadow

    gpasswd [選項] group
        -a USERNAME:向組中添加用戶
        -d USERNAME:從組中移除用戶

newgrp命令:臨時切換指定的組為基本組;

    newgrp [-] [group]

        -: 會模擬用戶重新登錄以實現(xiàn)重新初始化其工作環(huán)境;

chage命令:更改用戶密碼過期信息

    chage [選項] 登錄名

        -d
        -E
        -W
        -m
        -M

id命令:顯示用戶的真和有效ID; 

    id [OPTION]... [USER]
        -u: 僅顯示有效的UID;
        -g: 僅顯示用戶的基本組ID; 
        -G:僅顯示用戶所屬的所有組的ID;
        -n: 顯示名字而非ID;

su命令:switch user

    登錄式切換:會通過讀取目標用戶的配置文件來重新初始化
        su - USERNAME
        su -l USERNAME
    非登錄式切換:不會讀取目標用戶的配置文件進行初始化
        su USERNAME

    注意:管理員可無密碼切換至其它任何用戶;

    -c 'COMMAND':僅以指定用戶的身份運行此處指定的命令;

權限管理:
文件權限分為三類:
屬主:即一個用戶,這個用戶對這個文件的權限
屬組:即一個組,在這個組之下的用戶對這個文件的權限
其他:即除了屬主與屬組以外的用戶對這個文件的權限
前面有講到安全上下文是一個進程對文件的權限取決于發(fā)起這個用戶的權限,那他對文件訪問權限的應用模型是什么呢:
進程的屬主與文件的屬主是否相同;如果相同,則應用屬主權限;
否則,則檢查進程的屬主是否屬于文件的屬組;如果是,則應用屬組權限;
否則,就只能應用other的權限;
權限:
我們隨便ls -l一個文件-rwxrw-r--. 1 root root 第一個-表示文件類型 后面9位表示擁有的權限,
-則代表沒有這個權限,rwx分代表一個權限,第一個root表示他的屬主,第二代表他的屬組
左三位:定義user(owner)的權限
中三位:定義group的權限;
右三位:定義other的權限
文件權限:
r:readable, 讀
w:writable, 寫
x:excutable,執(zhí)行
注意:文件默認沒有執(zhí)行權限,如果文件不是可執(zhí)行文件任何用戶不能擁有執(zhí)行權限,否則可能會報錯!
目錄權限:
r:可使用ls命令獲取其下的所有文件列表;
w: 可修改此目錄下的文件列表;即創(chuàng)建或刪除文件;
x: 可cd至此目錄中,且可使用ls -l來獲取所有文件的詳細屬性信息;
這些位數(shù)固定,顯示字母則代表有這個權限,顯示-則代表沒有,譬如rw-r--r--則代表屬主擁有寫和讀的權限屬組和其他則只有讀權限

每三位代表一類用戶的權限r(nóng)wx 因為這個有就是有沒有就是-所以我們也可以以二進制0代表沒有,
1代表有組成一個三位二進制數(shù),所以可以用這三位二進制把權限表示為7種情況
    權限組合機制:
        --- 000 0
        --x 001 1
        -w- 010 2
        -wx 011 3
        r-- 100 4
        r-x 101 5
        rw- 110 6
        rwx 111 7
結合我們的三種用戶類型一起譬如rw-rw-r--則可以表示為660
權限管理命令:
        chmod命令:
           chmod [OPTION]... MODE[,MODE]... FILE...
           chmod [OPTION]... OCTAL-MODE FILE...
           chmod [OPTION]... --reference=RFILE FILE...

           三類用戶:
                u:屬主
                g:屬組
                o:其它
                a: 所有

           (1) chmod [OPTION]... MODE[,MODE]... FILE...

                MODE表示法:
                    賦權表示法:直接操作一類用戶的所有權限位rwx;
                        u=
                        g=
                        o=
                        a=

                    授權表示法:直接操作一類用戶的一個權限位r,w,x;
                        u+, u-
                        g+, g-
                        o+, o-
                        a+, a-

            (2) chmod [OPTION]... OCTAL-MODE FILE...

            (3) chmod [OPTION]... --reference=RFILE FILE...

            選項:
                -R, --recursive:遞歸修改

            注意:用戶僅能修改屬主為自己的那些文件的權限;
    從屬關系管理命令:chown, chgrp

        chown命令:
            chown [OPTION]... [OWNER][:[GROUP]] FILE...
            chown [OPTION]... --reference=RFILE FILE...

            選項:
                -R:遞歸修改

            chgrp命令:

            chgrp [OPTION]... GROUP FILE...
            chgrp [OPTION]... --reference=RFILE FILE...
    注意:僅管理員可修改文件的屬主和屬組;
到了這里我們會發(fā)現(xiàn)那我們會想說那直接創(chuàng)建一個文件或目錄它會直接有一個權限,那這個權限是怎么來的呢
linux自帶有一個umask:文件權限的反向掩碼;創(chuàng)建文件會使用這個掩碼來得出文件的權限
文件:
    666-umask
目錄:
    777-umask
之所以文件是用666去減是因為,前面說了文件默人不能擁有執(zhí)行權限;
那如果說比如666-023是等于643?因為默認沒有執(zhí)行權限所以如果結果中有執(zhí)行權限就將結果加1,所以前面的為644;

       umask命令:
        umask:查看當前umask
        umask MASK: 設置umask
        注意:此類設定僅對當前shell進程有效;

以上就是我對Linux用戶與組管理權限的了解,剛剛學習,寫的不好請指導;

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI