<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                **Linux賬號管理與ACL權限設置** *** [TOC] ## 1 Linux的賬號與用戶組 每個登錄Linux系統的用戶至少都會取得2個ID: * `UserID`:用戶ID,UID * `GroupID`:用戶組ID,GID ### 1.1 用戶賬號 Linux系統中,用戶登錄主機取得shell的環境的過程 1. 用戶要在計算機上利用tty1~tty7的終端機提供的login接口,輸入用戶賬號和密碼。 2. 系統尋找`/etc/passwd`文件里是否有輸入的賬號,如果沒有則跳出,如果有則將賬號和對應的UID、GID(從`/etc/group`中讀出)、主文件夾、shell設置讀出。 3. 系統核對密碼。系統進入`/etc/shadow`找出記錄的對應賬號與UID,核對輸入的密碼與記錄的密碼是否一致。 4. 進入shell環境。 因為Linux系統中程序的運行都與權限有關,而權限與UID/GID有關。所以各個程序就需要讀取`/etc/passwd`來了解不同賬號的權限。 >[info] * 在登錄Linux主機時,`/etc/passwd`與`/etc/shadow`系統必須可以讀取。 > * `/etc/passwd`與`/etc/shadow`是Linux系統備份賬號時的必須文件。 > * `/etc/passwd`的權限需設置為“-rw-r--r--” > * `/etc/shadow`的默認權限為“-rw-------”“-r--------”。即只有`root` 才能讀寫。 #### 1.1.1 `/etc/passwd`文件結構 :-: ![`/etc/passwd`文件結構](https://box.kancloud.cn/b8c585698a3dd037e32f5232cf91069b_400x81.png) :-: 圖1 `/etc/passwd`文件結構 如上圖所示,head命令顯示的是`/etc/passwd`文件里頭4行的內容。 每一行代表一個系統的用戶賬號及其屬性(7個,用‘:’分開) 以第一行為例: 1. 賬號名稱:root 2. 密碼:x。具體的密碼數據放在`/etc/shadow`文件中。 3. UID:root的UID為0。 4. GID:與`/etc/group`文件有關。 5. 用戶信息說明:root。用于解釋本賬號的信息。 6. 主文件夾:/root。默認的用戶主文件夾為`/home/yourIDName`。 7. Shell:/bin/bash。用于用戶登錄系統后取得shell來與系統的內核進行通信以進行用戶的操作任務。而使用`/sbin/nologin`可以用來讓賬號登錄系統后無法取得shell環境。 :-: Linux中UID的限制規則 | Id范圍 | Id用戶特性 | | --- | --- | | 0(系統管理員) | 如果要讓其他賬號也具有`root`的權限,可將其UID改為0。但不建議有多個賬號的UID是0,會造成系統混亂。 | | 1~499(系統賬號) | 默認500一下的UID讓給系統作為保留賬號只是一個習慣。這些系統賬號通常是不可登錄的,所以其Shell的屬性為`/sbin/nologin`。根據系統賬號的由來,還可分為:<br> <strong>1~99</strong>:由distribution自行創建的系統賬號;<br> <strong>100~499</strong>:用戶有系統賬號需求時,可以使用的UID | | 500~65535(可登錄賬號) | 給系統的一般用戶使用。 | #### 1.1.2 `/etc/shadow`文件結構 ![ `/etc/shadow`文件結構](https://box.kancloud.cn/03689ec4699b490cd5361ad5e3b5b3e9_646x94.png) :-: 圖2 `/etc/shadow`文件結構 如上圖所示,head命令顯示的是`/etc/shadow`文件里頭4行的內容。 每一行代表一個系統的用戶賬號及其屬性(9個,用‘:’分開) 以第一行為例: 1. 賬號名稱:root 2. 賬號密碼:內容是經過加密后的密碼。由于特定的加密系統產生的密碼長度必須一致,當讓這個字段的長度改變后,該密碼就會失效(無法解密)。很多軟件通過這個方式,在此字段前加上`!`或`*`改變密碼字段的長度,就會使得密碼“暫時失效”了。 3. 最近改動密碼的日期。Linux系統中日期的計算是以1970/1/1為1而累加的日期。 4. 密碼不可被改動的天數。以第3個字段為基礎。為“0”,表示隨時可以改動密碼。 5. 密碼需要更新的天數。以第3個字段為基礎。強制要求用戶在這個天數內重新設置密碼,否則該用戶賬號的密碼就會變為過期特性。為“99999”,表示密碼的更改沒有強制性。 6. 密碼需要更新期限前的警告天數。以第5個字段為基礎。即是密碼到期前的n天內,系統給用戶賬號在登錄時發出警告。 7. 密碼過期后的賬號寬限天數。以第5個字段為基礎。 8. 賬號失效日期。類似第3個字段。都使用1970/1/1為1而累加的日期。在超過本字段規定的日期后,本賬號不能再被使用。類似“收費服務”的系統中可以明確本字段的內容。 9. 保留 >[warning] * 密碼的有效期:“更新日期”(第3個字段)+“更新的天數”(第5個字段)。 >* 密碼過期特性:用戶賬號密碼過期后,當用戶賬號登錄時,系統會強制要求必須重新設置密碼才能登錄系統。 > > **忘記密碼:** * 一般用戶忘記密碼:利用`root`使用`passwd`命令重設密碼。 * `root`密碼忘記: 1. 重新啟動Linux進入用戶維護模式,系統會主動給予root權限的bash接口,此時使用`passwd`命令重設密碼。 2. 以live CD開機后掛載根目錄去修改`/etc/shadow`,將里面的root密碼字段清空,再重新啟動后root將不用密碼即可登錄!登錄后使用`passwd`命令重設密碼。 ### 1.2 用戶組 #### 1.2.1 `/etc/group`文件結構 ![`/etc/group`文件結構](https://box.kancloud.cn/f8f5ae392cafaee131140ed5c022906f_354x79.png) :-: 圖3 `/etc/group`文件結構 如上圖所示,head命令顯示的是`/etc/shadow`文件里頭4行的內容。 每一行代表一個系統的用戶組及其屬性(4個,用‘:’分開) 1. 用戶組名稱: 2. 用戶組密碼。通常不需要設置,設置后是給“用戶組管理員”使用的。具體內容在`/etc/gshadow`。 3. GID。`/etc/passwd`第4個字段的GID使用的值。 4. 用戶組包含的賬號名稱。各個名稱間用`,`分隔。 #### 1.2.2 `/etc/gshadow`文件結構 ![`/etc/gshadow`文件結構](https://box.kancloud.cn/3f0d298c7ff4ce8de4b004f48712f62b_365x79.png) :-: 圖4 `/etc/gshadow`文件結構 如上圖所示,head命令顯示的是`/etc/shadow`文件里頭4行的內容。 每一行代表一個系統的用戶組及其屬性(4個,用‘:’分開) 1. 用戶組名稱。 2. 用戶組密碼。若開頭為`!`表示無合法密碼,也就無用戶組管理員。 3. 用戶組管理員的賬號。 4. 用戶組的所屬賬號。與`/etc/group`內容相同。 #### 1.2.3 有效與初始用戶組 `groups`, `newgrp` * 初始用戶組(initial group) 用戶登錄系統后就由系統指定的用戶組。即是`/etc/passwd`中用戶賬號所在行第4字段(`GID`)的值對應的用戶組(用戶組名:`/etc/group`中查詢第3字段值為GID的那一行的第一字段值)。 * 有效用戶組(effective group) `groups`:該命令查看登錄用戶的所有用戶組。第一個為有效用戶組(effective group)。用戶新建文件的權限與有限用戶組的一致。 `newgrp`:更改登錄用戶的有效用戶組。僅能在登錄用戶所屬的用戶組中進行更改。即是僅能在登錄用戶用`groups`查出的用戶組中進行更改。 ## 2 賬號管理 ### 2.1 用戶的新增與刪除 #### 2.1.1 用戶新增 * **`useradd userName`**:創建新用戶賬號‘userName’。 系統會做: 1. 在`/etc/passwd`文件中創建一行與賬號相關的數據,包括創建UID/GID/主文件夾(根據系統的默認值進行,可用`useradd -D`命令查看)等。 2. 在`/etc/shadow`文件中將此賬號的密碼相關參數填入,但無密碼內容。 3. 在`/etc/group`文件中創建一個與賬號名稱一樣的組名記錄。 4. 在`/etc/gshadow`文件中創建一個與賬號名稱一樣的組名記錄。 5. 在`/home`目錄創建一個與賬號同名的目錄作為用戶主文件夾,權限為‘700’(僅僅用戶自己可進入自己的主文件夾)。 創建新用戶賬號時系統的默認值通常都在這幾個文件: 1. `/etc/default/useradd` 2. `/etc/login.defs` 3. `/etc/skel/*` 使用`man useradd`可以查看各個參數的作用。 * **`passwd`**:設置賬號密碼 >[danger] `root` 賬號 > * 給一般賬號設置密碼:`passwd userName` > * 給自己設置密碼:`passwd` 常用參數: `-l`:讓賬號失效 `-u`:恢復賬號 `-S`:查看賬號信息 `chage [-ldEImMW] userName`:對userName的賬號信息進行細致的更改(針對userName在`/etc/passwd`文件中的記錄) ~~~Linux # chage -d 0 userName ~~~ >[info] 'userName'賬號的密碼新建時間被修改為1970/1/1,在該賬號登錄系統時會被系統強制要求修改密碼,更改密碼完成后被踢出系統。再次登錄時就使用新密碼。 * **`usermod`**:微調useradd增加的用戶參數。 ~~~Linux # usermod [-cdegGlsuLU] userName ~~~ #### 2.1.2 用戶 * **`userdel`**:微調useradd增加的用戶參數。 ~~~Linux # userdel [-r] userName ~~~ 帶`-r`執行該命令后,系統會刪除用戶相關數據 1. 用戶賬號/密碼,`/etc/passwd`,`/etc/shadow` 2. 用戶組,`/etc/group`,`/etc/gshadow` 3. 用戶個人文件,`/home/userName`,`/var/spool/mail/userName` >[warning] * 如果賬號只是暫時不用,只需要將`/etc/shadow`里的賬號失效日期(第8字段)設為0就可以使得該賬號無法使用,但所有與該賬號有關的數據都會保留。 >* 如果要完整的將某個賬號刪除,在執行` userdel -r userName`前,先以`find / -user userName`查出整個系統內屬于userName的文件后,再進行刪除。 ### 2.2 一般用戶常用賬號數據更改與查詢 * **`finger`** * **`chfn`** * **`chsh`** * **`id`**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看