歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux 簡介——管理用戶帳戶

Linux 簡介——管理用戶帳戶

日期:2017/2/25 10:39:58   编辑:Linux教程
 本章解釋如何產生新用戶帳戶,如何修改帳戶的屬性,如何刪除帳戶。不同的Linux系統有不同的工具實現。

什麼是帳戶?

  當一台計算機為多人所用時,通常需要區分用戶,例如,使個人文件保持個人化。即使計算機同時只為一人所用,這也很重要,如多數微機。 因此,每個用戶給定一個單獨的用戶名,這個名字被用於登錄。

  用戶除了名字還有更多。一個帳戶是所有的文件、資源和屬於這個用戶的信息。這個屬於暗示是銀行,在一個商業系統中,每個帳戶通常與一些錢有關,且這些錢依賴於用戶使用系統的多少以不同的速度被花掉。例如,磁盤空間可能有個每MB每天的價格,處理時間也可能有個每秒的價格。

創建用戶

  Linux核心自己只不過視用戶為數字。每個用戶用一個單一的整數識別,user id或uid,因為數字對計算機來說比文本名字處理更快更容易。核心之外的一個單獨的數據庫給每個user id安排了文本的名字,即用戶名username。這個數據庫還包含一些其他信息。

  要產生一個用戶,需要給用戶數據庫增加關於用戶的信息,並給他產生家目錄。培訓用戶、建立合適的初始化環境也是必要的。

  多數Linux distributions有產生帳號的程序,而且有多個。 adduser 和useradd 是其中2個;可能還有GUI的工具。 Whatever the program, the result is that there is little if any manual work to be done. Even if the details are many and intricate, these programs make everything seem trivial. However, section 8.2.4 describes how to do it by hand.

/etc/passwd和其他信息文件
  Unix系統的基本用戶數據庫是文本文件,/etc/passwd (叫口令文件),它列出所有有效用戶名及其相關信息。文件的每個用戶一行,分為用:分隔的7個域:

用戶名
加密格式的口令
數字的user id
數字的group id
全名或帳戶的其他說明
家目錄
登錄shell(登錄時運行的程序)

  詳細的格式說明在passwd (5)中。

  系統中的任何用戶可以讀口令文件,因此他們可以得到其他用戶的名字。即任何人也可以得到口令(第二個域)。口令文件加密了口令,所以利潤上說應該沒有問題。但是,加密是可破解的,尤其是口令比較簡單時(例如太短,或能在詞典中找到的)。因此,口令存在口令文件中並不好。

  許多Linux系統有影子口令shadow passwords文件。這種方法將加密的口令存在另一個文件/etc/shadow 中,而這個文件只有root能讀。 /etc/passwd 文件在第二個域只有一個special marker。 Any program that needs to verify a user is setuid,那麼可以存取影子口令文件。而只使用口令文件其他域的普通程序,不能得到口令。

改變用戶屬性

  有幾個改變帳戶不同屬性的命令(即/etc/passwd 中的相關域):

  chfn
  改變全名域。
  chsh
  改變登錄shell。
  passwd
  改變口令。

  超級用戶可以用這些口令改變任何帳戶的屬性。普通用戶只能改變自己帳戶的屬性。有時可能有必要使這些命令對普通用戶不可用(用chmod ),例如在一個有許多新手的環境中。

  其他任務需要手工完成。例如改變用戶名,需要編輯/etc/passwd (記住:用vipw )。同樣,要增加或刪除用戶to more groups,需要編輯/etc/group (用vigr )。這種任務較少,需要小心從事:例如,改變了用戶名,電子郵件就不能到達這個用戶,除非你同時產生一個郵件別名。

刪除用戶

  要刪除用戶,必須先刪除他的所有文件,然後從/etc/passwd 和/etc/group 刪除相關的行。有些Linux distributions帶特定的命令,看看有沒有 deluser 或userdel 。然而,手工刪除也很簡單。

臨時禁止一個用戶

  有時需要臨時禁止一個用戶,而不刪除它。例如用戶沒有付費,或系統管理員懷疑黑客得到了某個帳戶的口令。

  禁止一個用戶的最好方法是將它的shell變到一個特定的只打印出一條信息的程序,用這種方法,任何想登錄此帳戶的人將無法登錄,並得知原因。該信息可以告訴用戶與系統管理員聯系,以處理任何問題。

  也可以改變用戶名或口令,但這樣用戶不知道怎麼回事。 Confused users mean more work.

  產生上述特定程序的一個簡單方法是寫"tail scripts":

#!/usr/bin/tail +2
This account has been closed due to a security breach.
Please call 555-1234 and wait for the men in black to arrive.
前2個字符("#!")告訴核心本行的其他部分是解釋本文件要運行的命令。這樣tail 命令將輸出處理第一行外的所有東西到標准輸出。
如果懷疑billg是個安全缺口,系統管理員可以這樣做:

# chsh -s /usr/local/lib/no-login/security billg
# su - tester
This account has been closed due to a security breach.
Please call 555-1234 and wait for the men in black to arrive.
#
su 的目的是此時改變是否工作。
Tail scripts應該放在一個分離的目錄中,這樣它們的名字不會干擾普通用戶的命令。
Copyright © Linux教程網 All Rights Reserved