linux使用者賬號和組賬號概述

weixin_51837038 發表於 2020-11-22

使用者賬號和組賬號概述

Linux基於使用者身份對資源訪問進行控制

使用者帳號
    超級使用者、普通使用者、程式使用者
組帳號
    基本組(私有組)
    附加組(公共組)
UID和GID
    UID (User IDentity,使用者標識號)
    GID (Group IDentify,組標識號)
使用者賬號

  1. 超級使用者: root使用者是Linux
    作業系統中預設的超級使用者賬號,對本主機擁有最高的許可權。系統中超級使用者是唯一的。

  2. 普通使用者:由root使用者或其他管理員使用者建立,擁有的許可權會受到限制,一般只在使用者自己的宿主目錄中擁有完整許可權。

  3. 程式使用者:在安裝Linux作業系統及部分應用程式時,會新增一些特定的低許可權使用者賬號,這些使用者一般不允許登入到系統,僅用於維持系統或某個程式的正常執行,如bin, daemon,ftp.mail等。
    組賬號

  4. 基本組(私有組) :基本組賬號只有一個,一般為建立使用者時指定的組。在/etc/passwd檔案中第4欄位記錄的即為該使用者的基本組GID號。

  5. 附加組(公共組) :使用者除了基本組以外,額外新增指定的組。

  6. UID:使用者標識號

  7. GID:組標識號

  8. root使用者賬號的UID和GID號為固定值0

  9. 程式使用者賬號的UID和GID號預設為1~499

  10. 普通使用者UID和GID認為500~60000

使用者賬號件/etc/passwd

儲存使用者名稱稱、宿主目錄、登入Shel1等基本資訊

檔案位置: letc/passwd
每一行對應一個使用者的帳號記錄
在這裡插入圖片描述
基於系統執行和管理需要,所有使用者都可以問passwd檔案中的內容,但是隻有root使用者才能進行更改。
在早期的UNIX作業系統中,使用者帳號的密碼資訊是儲存在passwd檔案中的,不法使用者可以很容易的獲取密碼字串並進行暴力破解,因此存在一定的安全隱患。後來經改進後,將密碼轉存入專門的shadow檔案中,而passwd檔案中僅保留密碼佔位符"x".
root:x:0:0:root:/root:/bin/bash
欄位1: 使用者帳號的名稱
欄位2: 使用者密碼佔位符"x"
欄位3: 使用者帳號的UID號
欄位4: 所屬基本組帳號的GID號
欄位5: 使用者全名
欄位6: 宿主目錄
欄位7: 登入She11資訊(/bin/bash為可登陸系統, /sbin/nologin和/bin/false為禁止使用者登陸系統)

使用者賬號件/etc/shadow

儲存使用者的密碼、賬號有效期等資訊

檔案位置: /etc/shadow
每一行對應一個使用者的密碼記錄

預設只有root使用者能夠讀取shadow檔案中的內容,且不允許直接編輯該檔案中的內容。

示例:root: 6 6 6VyOUGqOC$v5H1LM1wagZC/FwGfnrtJFn1T: 18445:0:99999:7:::

  1. 欄位1: 使用者帳號的名稱
  2. 欄位2: 使用MD5加密的密碼字串資訊,當為"*“或”!!"時表示此使用者不能登入到系統。若該欄位內容為空,則該使用者無須密碼即可登入系統
  3. 欄位3: 上次修改密碼的時間,表示從1970年01月01日算起到最近一次修改密碼時間隔的天數
  4. 欄位4: 密碼的最短有效天數, 白本次修改密碼後,必須至少經過該天數才能再次修改密碼。預設值為0,表示不進行限制
  5. 欄位5: 密碼的最長有效天數, 自本次修改密碼後,經過該天數以後必須再次修改密碼。預設值為99999,表示不進行限制
  6. 欄位6: 提前多少天警告使用者密碼將過期,預設值為7
  7. 欄位7: 在密碼過期之後多少天禁用此使用者
  8. 欄位8: 帳號失效時間,此欄位指定了使用者作廢的天數(從1970年01月01日起計算) ,預設值為空,表示賬號永久可用。
  9. 欄位9: 保留欄位(未使用)

新增使用者賬號

  1. useradd命令
    useradd    [選項]   使用者名稱
  2. 常用選項
    -u 、-d-e-g-G、M、-s
    [[email protected] -# useradd-d /ftphome/mike-g mike-Gftpuser -s /sbin/nologin mike
    新增使用者賬號useradd或者adduser
    在/etc/passwd檔案和/etc/shadow檔案的末尾增加該使用者賬號的記錄。
    若未明確指定使用者的宿主目錄,則在/home目錄下自動建立與該使用者賬號同名的宿主目錄,並在該目錄中建立使用者的各種初始配置檔案,
    若沒有明確指定使用者所屬的組,則自動建立與該使用者賬號同名的基本組賬號,組賬號的記錄資訊將儲存到/etc/grup和/etc/gshadow檔案中。
    常用選項:
  3. -u:指定使用者的UID號,要求該UID號碼未被其他使用者使用。
  4. -d:指定使用者的宿主目錄位置(當與-M一起使用時,不生效)。只能用絕對路徑指定新目錄(當你不用-d指定的時候,系統會預設幫你把使用者建立在home目錄下)
  5. -e:指定使用者的賬戶失效時間,可使用YYYY-MM-DD的日期格式。
  6. -g:指定使用者的基本組名(或使用GID號) ,對應的組名必須已存在。
  7. -G:指定使用者的附加組名(或使用GID號) ,對應的組名必須已存在
  8. -M:不建立宿主目錄。
    -7. s:指定使用者的登入Shell, (比如/bin/bash為可登陸系統, /sbin/nologin和/bin/false為禁止使用者登陸系統)

useradd -d /admin -g wheel -G root admin1
useradd -e 2020-12-31 -s /sbin/nologin admin2**

設定/E改使用者口passwd

  1. passwd命令
    passwd [選項] 使用者名稱
  2. 常用選項
    -d,、-I、-S、 -u
    不指定使用者名稱時,修改當前賬號的密碼
  3. 示例:
    在這裡插入圖片描述
  4. 為使用者賬號設定密碼passwd
    root使用者可以指定使用者名稱作為引數,對指定賬號的密碼進行管理;不指定使用者名稱時,修改當前賬號的密碼。
    普通使用者卻只能執行單獨的"passwd"命令修改自己的密碼。
  5. 常用選項:
    -d:清空指定使用者的密碼,僅使用使用者名稱即可登入系統。
    -1:鎖定使用者賬戶,鎖定的使用者賬號將無法再登入系統。
    -S:檢視使用者賬戶的狀態(是否被鎖定)。
    -u: 解鎖使用者賬戶。

修改使用者賬號的屬性usermod

■usermod命令
usermod [選項]… 使用者名稱
■常用選項
●-|、 -L、-U
■以下選項與useradd命令中的含義相同
◆-U、 -d、 -e、 -g、 -G、-S、

修改使用者賬號屬性usermod

-u:修改使用者的UID號。
-d:修改使用者的宿主目錄位置。
-e:修改使用者的賬戶失效時間,可使用YYYY-MM-DD 的日期格式。
-g: 修改使用者的基本組名(或使用GID號)。
-G: 修改使用者的附加組名(或使用GID號)。
-S:指定使用者的登入Shell。
-l: 更改使用者賬號的登入名稱。
-L: 鎖定使用者賬戶。
-U: 解鎖使用者賬戶。

刪除使用者賬號userdel

■userdel命令
userdel [-r] 使用者名稱
●新增-r選項時,表示連使用者的宿主目錄一併刪除
示例:
在這裡插入圖片描述

使用者賬號的初始配置檔案

■檔案來源

  1. ●useradd命令新增一個新的使用者賬號後會在該使用者的宿主
    目錄中建立一-些初始配置檔案。
  2. ●這些檔案來自於賬號模板目錄/etc/skel/,基本上都是隱藏
    檔案。

■主要的使用者初始配置檔案

  1. ●~/.bash_profile
  2. ●~/.bashrc
  3. ●~/.bash_ logout
    #使用者賬號的初始配置檔案

使用者宿主目錄下的初始配置檔案只對當前使用者有效

  1. ~/ .bash_ profile
    #此檔案中的命令將在該使用者每次登入時被執行,它會設定一-些環境變數,並且會呼叫該使用者~/.bashrc檔案

  2. ~/ . bashrc
    #此檔案中的命令會在每次開啟新的bash shel1時( 也包括登入系統)被執行,並且會呼叫/etc/bashrc檔案

  3. ~/ . bash_ logout
    #此檔案中的命令將在使用者每次退出登入或退出bashshel1時執行全域性配置檔案對所有使用者有效

  4. /etc/profile
    #這個檔案是為系統全域性變數配置檔案,可通過重啟系統或者執行source/etc/profile命令使profile檔案被讀取

  5. /etc/profile.d
    #這個檔案實際上是/etc/profile的子目錄,存放的是一-些應用程式所需的啟動指令碼

  6. /etc/bashrc
    #每一一個執行bash shell的使用者都會執行此檔案,可通過執行bash命令開啟一個新的bash shell時,使bashrc檔案被讀取

  7. /etc/bashrc
    #每一-個執行bash shell 的使用者都會執行此檔案,可通過執行bash命令開啟-一個新的bash shell時,使bashrc檔案被讀取

  8. vi /etc/bashrc
    alias myls=’ /bin/ls -1hr’

  9. bash
    type myls

  10. PATH變數用於設定可執行程式的預設搜尋路徑
    PATH生效的原理:
    每次啟動系統的時候會初始化命令,會執行/etc/profile和~/ .bash profile。/etc/profile 會將路徑/usr/local/bin、/usr/bin、/usr/local/sbin 、/usr/sbin 追加到PATH中去。然後呼叫/etc/profile.d 目錄下的指令碼。

組賬號檔案

■與使用者帳號檔案相類似
    ●/etc/group:儲存組帳號基本資訊
    ●/etc/gshadow:儲存組帳號的密碼資訊
在這裡插入圖片描述

新增組賬號groupadd

■groupadd命令
groupadd [-g GID] 組賬號名
在這裡插入圖片描述

新增刪除組成gpasswd

  1. ■gpasswd命令
    設定組帳號密碼(極少用) ,新增/刪除組成員
    gpasswd [選項]…組帳號名
  2. ■常用選項
    ●-a: 向組內新增一個使用者
    ●-d: 從組內刪除一個使用者成員
    ●-M: 定義組成員列表,以逗號分隔

查詢賬號資訊

  1. ■groups命令
        ●查詢使用者所屬的組
        groups [使用者名稱]
  2. ■id命令
        查詢使用者身份標識
        id [使用者名稱]
    在這裡插入圖片描述

查詢賬號資訊2-2

1.■finger命令
    ●查詢使用者賬號的登入屬性
    注:需要先進行安裝finger軟體包
    finger [使用者名稱]
2.■w、who、 users命令
    查詢已登入到主機的使用者資訊
在這裡插入圖片描述
通常使用tty來簡稱各種型別的終端裝置,Centos7系統, tty1表示圖形介面,tty2-tty6表示文字介面,可以用Ctrl +Alt+F1-F6切換。
按Ctrl+Alt+F2登陸, 執行w命令,檢視使用的終端就是tty2
pts說明是用遠端工具連線的,比如xshell, 後面的數字代表登入的時間順序,越小證明登入的越早
在這裡插入圖片描述

檔案/目錄的許可權和歸屬

  1. ■訪問許可權
        ●讀取r:允許檢視檔案內容、顯示目錄列表
        ●寫入w:允許修改檔案內容,允許在目錄中新建、移動、
  2. 刪除檔案或子目錄
        ●可執行x:允許執行程式、切換目錄
  3. ■歸屬(所有權)
        ●屬主:擁有該檔案或目錄的使用者帳號
        ●屬組:擁有該檔案或目錄的組帳號
    在這裡插入圖片描述
  4. (S) setuid: 該位是讓普通使用者可以以root使用者的角色執行只有root帳號才能執行的程式或命令
    在這裡插入圖片描述

設定目錄和檔案的許可權chmod

chmod [uga…] [±=] [rwx]檔案或目錄
"ugoa"表示該許可權設定所針對的使用者類別。
"u"代表檔案屬主
"g"代表 檔案屬組內的使用者
"o"代 表其他任何使用者
"a"代表所有使用者(預設時為a)
"±="表示設定許可權的操作動作
"+“代表增加相應許可權,”-“代表減少相應許可權,”="代表僅設定對應的許可權。
“rwx"是許可權的字元組合形式,也可以拆分使用,如"r”"rx”等。

示例: chmod +x abc.sh
chmod nnn 檔案或目錄

也可以用數字來表示
chmod 644 abc. txt
-R: 遞迴修改指定目錄下所有子目錄及檔案的許可權

以下的是使用的方法示例:
touch myfile
chmod ugo+x myfile
chmod a+x myfile
chmod -X myfile
mkdir -p aa/bb/cc
chmod -R 777 aa

設定目錄和檔案的歸屬chown

chown 屬主   檔案或目錄

chown : 屬組  檔案或目錄
chgrp 屬組   檔案或目錄

chown 屬主: 屬組   檔案或目錄
chown屬主. 屬組   檔案或目錄;
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

■常用選項
●-R:遞迴修改指定目錄下所有檔案、子目錄的歸屬

設定目錄和檔案的預設許可權umask

umask作用

  1. 指定目前使用者在新建檔案或目錄時的許可權預設值
  2. 新建的檔案或者目錄的許可權為預設最大許可權減去umake(普通檔案的最大預設許可權為6,目錄的最大預設許可權為7)
    umask設定: umask 022
    umask檢視: umask
  3. 示例
    ●將umask設為000 , 新建目錄或者檔案,檢視許可權
    ●將umask設為022, 新建目錄或者檔案,再檢視許可權