Linux用戶及權限管理

1、用戶、組

在Linux中利用用戶來實現多任務操做,不一樣的用戶能夠同時使用系統,而且對系統進行操做;Linux是一個等級森嚴的系統,不一樣的用戶對系統上文件操做的權限不一樣,爲了方便管理,對用戶進行分組,屬於不一樣組的用戶對文件的操做的權限也不一樣。Linux系統利用不一樣的ID來標識惟一的用戶,一樣利用不一樣的ID來標識不一樣的組。shell

  • 用戶的類別及用戶標識UID
管理員:0
    普通用戶
        系統用戶:爲了可以讓後臺進程或者服務類型進程以非管理員的身份運行,一般要爲此建立多個普通用戶,這類用戶從不用登錄系統。1-499(CentOS6), 1-999(CentOS7)
        登錄用戶:500-60000(CentOS6), 1000-60000(CentOS7)
  • 組類別及組標識GID
管理員組:0
    普通用戶組
        系統組:1-499(CentOS6), 1-999(CentOS7)
        登錄組:500-60000(CentOS6), 1000-60000(CentOS7)
    組類別2
        用戶的基本組
        用戶的附加組
    組類別3
        私有組:組名同用戶名,且只包含一個用戶
        公共組:組內包含了多個用戶

Linux系統經過名稱解析將用戶名組名解析成對應的惟一標識,以此來驗證用戶的身份以及該用戶屬於哪一個組。加密

和用戶相關的文件:code

  • 一、/etc/passwd: 用戶的信息庫
name:passwd:UID:GID:GESOS:directory:shell
    name: 用戶名
    passwd: 能夠是加密的密碼,也能夠是佔位符x
    UID:
    GID: 用戶所屬的主組的ID號
    GESOS: 註釋信息
    directory: 用戶的家目錄
    shell: 用戶的默認shell,登陸時默認shell程序
  • 二、/etc/passwd: 用戶密碼
用戶名:加密的密碼:最近一次修改密碼的時間:最短使用期限:最長使用期限:警告期段:過時期限:保留字段
  • 三、/etc/group: 組的信息庫
group_name:password:GID:user_list    
    user_list: 該組的用戶成員,以此組爲附加組的用戶列表
  • 四、/etc/gpasswd: 組密碼

    組密碼的做用:當一個用戶切換其基本組的時候,若是該組不屬於用戶的附加組,此時,若是該組設定了組密碼,那麼該用戶知道該組的密碼時就能夠臨時將該組切換成其基本組;若是這個組沒有設定組密碼,那麼該用戶不能切換至該組。遞歸

2、權限

以前說過Linux是一個等級森嚴的系統,一個文件或者目錄對於不一樣的用戶有不一樣的權限,這個權限主要有r,w,x(可讀、可寫、可執行),對於文件和目錄這三個權限的做用是不一樣的:進程

文件:
    r: 可獲取文件的數據;
    w: 可修改文件的數據;
    x: 可將文件運行爲進程;
目錄:
    r: 可以使用ls命令獲取其下的全部文件列表(不包括詳細信息)
    w: 可修改此目錄下的文件列表;即建立或刪除文件;
    x: 可cd到此目錄中,且可以使用ls -l來獲取全部文件的詳細屬性信息;
    一個文件或者目錄的權限主要是對於該文件或目錄的屬主、屬組以及其餘用戶來講,利用ls -l能夠查看一個文件對於屬主、屬組和其餘用戶的權限

那麼Liunx系統怎麼讓一個文件的權限起做用呢?字符串

做爲用戶來操做一個文件,該用戶必須發起一個進程,而這個進程是以該用戶的身份運行的,因此係統會查看進程的屬主(發起進程的用戶)與文件的屬主是否相同,若是相同,則應用屬主權限;不然,則檢查進程的屬主是否屬於文件的的屬組,若是是,則應用屬組權限;不然,就只能應用其餘用戶的權限。此過程爲進程對文件訪問權限應用模型。rpc

3、用戶、組管理相關的命令

  • 一、用戶管理命令
    useradd, userdel, usermod, passwd

(1) useradd命令:建立用戶it

useradd [option] 登錄名
        -u UID: 指定UID;
        -g GROUP: 指定基本組ID,此組事先要存在;
        -G GROUP1[,GROUP2…]: 指明用戶所屬的附加組,多個組之間用逗號分隔;
        -c COMMENT: 指定用戶的註釋信息;
        -d HOME_DIR: 以指定的路徑爲用戶的家目錄;經過複製/etc/skel此目錄並重命名實現;指定的家目錄路徑若是實現存在,則不會爲用戶複製環境配置文件;
        -s SHELL: 指定用戶的shell,全部可用的shell存儲在/etc/shells文件中;
         -r: 建立系統用戶;
        注意:建立用戶時的諸多默認選項設定的配置文件爲/etc/login.defs

(2) usermod命令:修改用戶屬性io

usermod [option] username
        -u UIG: 修改用戶的UID;
        -g GROUP: 修改用戶所屬的基本組;
        -G GROUP1[,GROUP2…]: 修改用戶所屬的附加組;原來的附加組會被覆蓋;
        -a: 與-G一同使用,用於爲用戶追加新的附加組;
        -c COMMENT: 修改註釋信息;
        -d HOME_DIR: 修改用戶的家目錄;用戶原有的文件不會被轉移至新的位置;
        -m: 與-d一同使用,用於將原有的家目錄移動爲新的家目錄;
        -l NEW_LOGIN: 修改用戶名;
        -s SHELL: 修改用戶默認shell;
        -L: 鎖定指定用戶密碼;即在用戶原來的密碼字符串以前添加一個」!」;
        -U: 解鎖指定用戶密碼;

(3) userdel命令:刪除指定用戶mariadb

userdel [option] username
        -r: 刪除用戶時一併刪除其家目錄;默認不刪除用戶的家目錄;

(4) passwd命令:用戶密碼管理命令

passwd: 修改用戶本身的密碼
    passwd USERNAME: 修改指定用戶的密碼,但僅root有此權限;
        -l, -u: 鎖定和解鎖用戶;
        -d: 清除指定用戶的密碼;
        -e DATE: 過時期限,日期;
        -i DAYS: 非活動期限;天數
        -n DAYS: 密碼的最短使用期限;
        -x DAYS: 密碼的最長使用期限;
        -w DAYS: 密碼警告期限;
        --stdin:
            echo 「PASSWORD」 | passwd –stdin USERNAME
  • 二、組管理命令

    groupadd, groupdel, groupmod, gpasswd

(1) groupadd命令: 添加組

groupadd [option] group_name
        -g GID: 指定GID;默認是上一個組的GID+1
        -r: 建立系統組

(2) groupmod命令:修改組的屬性

groupmod [option] GROUP
        -g GID: 修改GID
        -n new_groupname: 修改組名

(3) groupdel命令:刪除組

groupdel [option] GROUP

(4) gpasswd命令

gpasswd [option] group  不帶選項爲組添加密碼
        -u USERNAME: 向組中添加用戶;
        -d USERNAME: 從組中移除用戶;
  • 三、其餘命令
    newgrp, chage, chsh, id, su, finger, chfn, pwck, grpck

(1) newgrp GROUP: 將GROUP臨時切換爲用戶的基本組

newgrp [-] [group]
        -: 會模擬用戶從新登陸以實現從新初始化其工做環境

(2) chage命令:修改用戶密碼的過時信息

chage [option] username

(3) chsh命令:修改指定用戶的默認shell;

(4) id命令:顯示用戶真是有效的ID信息

id [option]… [username]
        -u: 僅顯示有效的UID;
        -g: 僅顯示用戶所屬基本組ID;
        -G: 顯示用戶所屬的全部組ID;
        -n: 顯示名稱而非ID;

(5) su命令:switch user

登陸式切換:會經過讀取用戶的配置文件來從新初始化
        su – USERNAME
        su -l USERNAME
    非登陸式切換:不會讀取目標用戶的配置文件進行初始化
        su USERNAME
    注意:管理員可無密碼切換至其餘任何用戶;
        su -c ‘COMMAND’: 僅以指定用戶的身份運行此處指定的命令;
        su – dabric -c ‘whoami’

(6) finger命令:顯示指定用戶的信息;

(7) chfn命令:修改用戶的信息;

(8) pwck命令:檢查指定用戶用戶密碼文件是否異常;

(9) grpck命令:檢查指定用戶組密碼文件是否異常;

4、權限管理相關的命令

  • 一、文件權限管理命令
    chmod

chmod命令(用戶僅能修改屬主爲本身的文件)

chmod [OPTION]… MODE[,MODE]… FILE…
    chmod [OPTION]… OCTAL-MODE FILE…
    chmod [OPTION]… --reference=RFILE FILE…

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

MODE表示法:
        賦權表示法:直接操做一類用戶的全部權限位
            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(僅管理員可修改文件的屬主和屬組)

(1) chown命令:

chown [OPTION]… [OWNER][:[.][GROUP]] FILE…
    chown [OPTION]… --reference=RFILE FILE…
    選項:
        -R, --recursive: 遞歸修改

(2) chgrp命令:

chgrp [OPTION]… GROUP FILE…
    chgrp [OPTION]… --reference=RFILE FILE…
  • 三、umask: 文件的權限反向掩碼,遮罩碼
文件:666-umask
    目錄:777-umask
    注意:之因此文件用666去減,表示文件默認不能擁有執行權限,如過減得的結果中有執行權限,則須要將其加1;
    umask命令:
        umask: 查看當前umask
        umask MASK: 設置umask
    注意:命令的設定僅對當前shell進程有效;

5、擴張命令

  • 一、 install的使用
install命令:
    install – copy files and set attributes
    單源複製:
        install [OPTION]… [-T] SOURCE DEST
    多源複製:
        install [OPTION]… SOURCE… DIRECTORY
        install [OPTION]… -t DIRECTORY SOURCE…
    建立目錄:
        install [OPTION]… -d DIRECTORY…
    經常使用選項:
        -m, --mode=MODE: 設定目標文件的權限,默認爲755
        -o, --ownwer=OWNER: 設定目標文件的屬主
        -g, --group=GROUP: 設定目標文件的屬組
  • 二、 mktemp的使用
mktemp命令:建立臨時文件或者臨時目錄
    mktemp [OPTION]… [TEMPLATE]
        -d: 建立臨時目錄
        mktemp /tmp/mytmp.XXXX
    引用該文件名,將其執行的結果保存在變量中使用
    注意:mktemp會將建立的臨時文件名直接返回,所以,可直接經過命令引用保存至變量中;

練習

完成如下任務

  1. 新建系統組mariadb, 新建系統用戶mariadb,要求其沒有家目錄,且shell爲/sbin/nologin:
    嘗試root切換至用戶,查看其命令提示符;
  2. 新建GID爲5000的組dabric,新建用戶gentoo,要求其家目錄爲/users/gentoo,密碼同用戶名;
  3. 新建用戶fedora,其家目錄爲/users/fedora,密碼同用戶名;
  4. 新建用戶www,其家目錄爲/users/www;刪除www用戶,但保留其家目錄;
  5. 爲用戶gentoo和fedora新增附加組dabric;
  6. 複製目錄/var/log至/tmp/目錄,修改/tmp/log及其內部的全部文件
相關文章
相關標籤/搜索