# 版權宣告: 1999 Copyright OLS3 All rights reserved.

# 作者: OLS3 (臥龍小三)
# 本講義僅供台南縣 87 學年度網路管理進階研習班上課之用.
# 學員可保存一份自用, 供日後網管時參考備查.
# 作者保有一切形式的著作權.
# 欲作其它用途者, 需經作者授權同意.
# 未經作者授權同意之前, 請勿轉載刊登.

帳號管理

所謂的帳號管理應包括:

一. 新增帳號.

在 RedHat 中, 新增帳號是一件非常容易的事, 步驟如下:

  1. 增加一個帳號: adduser 使用者帳號
  2. 設定使用者密碼: passwd 使用者帳號
  3. 試用看看: telnet localhost 之後, 鍵入帳號及密碼.
  4. 調整其自家目錄的權限.

    a. chmod 711 帳號自家目錄
    b. 在自家目錄下建一個 html 目錄 (讓使用者放置網頁)
    c. 在 html 之下, 建一個 cgi-bin 目錄(讓使用者放置留言板等 cgi 程式用的)
    d. 例:
    chown -R foo:foo foo

註:

  1. adduser 其實只是 useradd 的一個 symbolic link 檔.

  2. 如果您有某些檔案, 固定要給新建立的 user, 可以將這些檔案, 放入 /etc/skel 中, 則建立帳號時, 會自動拷貝至使用者的自家目錄中. (skel 是 skeleton 骨架,基本的意思)

二. 凍結帳號.

欲凍結一位使用者的帳號, 應該也要讓他知道原因.

  1. 先編輯一個 script 檔, 命名為 you_are_over:
    #! /usr/bin/tail -2
    對不起, 您的帳號已遭凍結, 請您和管理人員聯絡一下.
    email : ols3@foo.edu.tw
  2. 在 /usr/local/lib 下, 開一個子目錄 no-login
  3. 將 you_are_over 拷貝放入 no-login 之中, chmod +x you_are_over, 使其可以執行
  4. 將該位 user (設帳號為 foo) 的 shell 改為 you_are_over, 指令如下:
    chsh -s /usr/local/lib/no-login/you_are_over foo
  5. 用 su - foo 測試一下, 是否結果如預期.

三. 重新開放帳號.

只要用 chsh 將其 shell 改為正常的 bash 即可, 如下:

chsh foo

回答 /bin/bash 即可

四. 刪除帳號.

userdel 帳號

若欲將其自家目錄也一併清除, 可下 userdel -r 帳號

例如:

五. 觀察使用者帳號.

這主要是由 /var/log 中的記錄檔下手, 我們講到記錄檔那一節課時, 再來說明.

六. 密碼檔的結構.

以下介紹 /etc/passwd 密碼檔的結構.

密碼檔由許多筆記錄組成, 每一筆密碼記錄共有 7 個欄位, 各欄位意義如下:

英文 id password user id group id comment home shell
中文 帳號 密碼 使用者編號 使用者組別編號 個人資料說明 自家目錄 shell路徑位置

各欄位之間用 : 分隔.

例:

foo:x:500:500:a foo:/home/foo:/bin/bash

如果 shell 的部份是非法的名稱(未列在 /etc/shells 中), 系統不會准許他登入

例如: foo:x:500:500:a foo:/home/foo:NOLOGIN

如果使用者編號(UID)為 0, 則權力等同於 root

由於安全上的理由, 第二欄的密碼部份會予以編碼, 並且移入 /etc/shadow 中, 該 shadow 檔只有 root 權限才能讀取.

七. 群組檔的結構.

以下介紹 /etc/group 的結構

群組檔由許多筆組別記錄組成, 每一筆記錄共有 4 個欄位, 各欄位的意義如下:

組別名稱 密碼, 一般而言不設.
通常是空白或是 *
組別編號 組員列表 用 , 分開

各欄位之間用 : 分隔

例:

foo::502:test, wow

八. 建帳號原始方法.

RedHat 已經幫你將建帳號的過程做了大幅的簡化, 不過, 一位稱職的系統管理者, 應該要能夠了解建立帳號的真正過程, 將來若出現任何問題, 才能找出真正的根源.

這裡將介紹手動建帳號的方法, 共有以下步驟:

  1. 編輯 /etc/passwd
  2. 編輯 /etc/group
  3. 開設使用者的自家目錄(通常在 /home 中, 建一個和使用者帳號同名的目錄)
  4. 將 /etc/skel 中的檔案全拷貝至使用者的自家目錄(cp /etc/skel/.* /home/使用者)
  5. 調整使用者自家目錄檔案權限
  6. 設定密碼

範例:

假設要新增一位使用者帳號叫 foo

  1. vi /etc/passwd
    增加一列:
    foo::502:502::/home/foo:/bin/bash
  2. vi /etc/group
    增加一列:
    foo:x:502:
  3. mkdir /home/foo
  4. cp /etc/skel/.* /home/foo
  5. chown -R foo:502 /home/foo
  6. passwd foo
  7. pwconv (將 /etc/passwd 中的密碼部份轉放至 /etc/shadow)

    (以上適用於 RedHat 5.1 以前)


  8. passwd foo (RedHat 6.0 的版本, 這個動作再作一次)

 

九. 大量建帳號的方法.

請參考: 臥龍小三工具箱: 如何在RedHat 6.0中大量建帳號