Linux 管理員手冊(7)--管理使用者帳戶(轉)
本章解釋如何產生新使用者帳戶,如何修改帳戶的屬性,如何刪除帳戶。不同的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,那麼可以存取影子口令檔案。而只使用口令檔案其他域的普通程式,不能得到口令。
取得數字的使用者和組ID
多數系統不管數字的使用者和組ID是什麼,但如果使用網路檔案系統(NFS),所有系統必須使用相同的uid和gid。因為NFS也用uid認證使用者。如果不使用NFS,可以用帳戶產生工具自動取得的uid。
如果用NFS,必須用一個機制來同步帳戶資訊。一個方法是使用NIS系統 (見[Kir])。
初始環境:/etc/skel
當新使用者的家目錄產生時,用/etc/skel 目錄的檔案初始化。系統管理員可以產生/etc/skel 裡的檔案給使用者提供一個好的預設環境。例如,產生一個/etc/skel/.profile 設定EDITOR環境變數,提供新使用者一個友善的編輯器。
然而,通常最好保持/etc/skel 儘量小,因為it will be next to impossible to update existing users' files. 例如,如果友善的編輯器的名字改變了,所有現存使用者必須編輯他們的.profile 。系統管理員可以用一個script自動完成,但仍可能破壞某個使用者的檔案。
只要可能,最好把全域性設定放在全域性檔案中,如/etc/profile 。這樣可以升級,而避免破壞使用者自己的設定。
手工建立使用者
按以下步驟手工建立新使用者:
用vipw (8)編輯/etc/passwd ,為新使用者增加一個新行。注意語法。 不要用編輯器直接編輯! vipw 鎖定了這個檔案,其他命令這時不能更新它。設定口令域為"*",這樣不能登入。
類似,如果要建立新組,用vigr 編輯/etc/group 。
用mkdir 產生使用者的家目錄。
將/etc/skel 中的檔案複製到新的家目錄中。
用chown 和chmod 修改所有者和許可權。 -R選項是最有用的。 The correct permissions vary a little from one site to another, but usually the following commands do the right thing:
cd /home/newusername
chown -R username.group .
chmod -R go=u,go-w .
chmod go= .
用passwd (1)設定口令。
最後一步設定完口令,這個帳戶就能用了。不應該在其他所有事做完之前設定口令,否則這個使用者可能不允許登入while you're still copying the files.
有時需要產生不為任何人使用的虛假(dummy)帳戶 例如,建立一個匿名FTP伺服器(這樣任何人都可以從它下載檔案,無須得到一個帳戶),必須產生一個叫ftp的帳戶。這種情況,通常無須隨後一步的口令設定。而且,最好不設,這樣沒有人可以使用這個帳戶,除非先變成root,因為root可以變成任何使用者。
改變使用者屬性
有幾個改變帳戶不同屬性的命令(即/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應該放在一個分離的目錄中,這樣它們的名字不會干擾普通使用者的命令。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-939986/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 面向系統管理員的容器手冊
- Win10系統下管理員帳戶被鎖定如何解決Win10
- 黑客試圖在受到攻擊的 WordPress 網站建立管理員帳戶黑客網站
- win10怎麼建立管理員使用者_win10如何新建本地管理員賬戶Win10
- ASA日常管理手冊
- 忘記後臺管理員帳號怎麼辦?
- 教你玩轉Linux—使用者組的管理Linux
- win10怎麼切換到管理員賬戶 win10電腦使用者切換管理員賬戶方法Win10
- win10如何更改管理員賬戶 win10更改管理員賬戶的方法Win10
- Linux使用者管理Linux
- Win10內建管理員帳戶Administrator無法開啟應用的解決方法Win10
- win10家庭版系統如何開啟Administrator超級管理員帳戶Win10
- ClickHouse 建立管理員使用者
- win10 進入管理員賬戶方法 win10如何進入管理員賬戶Win10
- 如何把win10賬戶改為管理員_windows10標準使用者改為管理員的方法Win10Windows
- win10系統怎麼禁用管理員賬戶_win10管理員賬戶禁用方法Win10
- Win10系統禁用管理員帳戶後無法進入系統怎麼解決Win10
- win10怎麼更改管理員名字 管理員賬戶改名的辦法Win10
- win10怎麼刪除管理員賬戶_win10登出管理員賬戶操作方法Win10
- win10怎麼啟用管理員賬戶_win10開啟管理員賬戶的方法Win10
- 1.5.2. 管理使用者賬戶
- 帝國CMS忘記後臺管理員帳號怎麼辦?
- Part II 配置和管理多租戶環境概述-Oracle多租戶管理員指南Oracle
- Linux 控制系統帳戶過期Linux
- w10管理員賬戶刪除了怎麼辦_win10誤刪管理員賬戶如何找回Win10
- 初識ABP vNext(7):vue身份認證管理&租戶管理Vue
- Linux命令整理,使用者管理,使用者組管理,系統管理,目錄管理常用命令Linux
- 在 Linux 中鎖定和解鎖使用者帳戶的三種方法Linux
- win10切換管理員賬戶的步驟_win10怎麼切換到管理員賬戶Win10
- win10怎麼啟用管理員賬戶 win10啟用管理員方法Win10
- win10登出管理員賬戶的步驟_w10怎麼登出管理員Win10
- 帝國CMS忘記後臺管理員帳號解決辦法
- SQL Server管理員帳號鎖定後如何恢復訪問VUSQLServer
- Linux賬戶與許可權管理Linux
- Linux 使用者和使用者組管理Linux
- Linux系統中(CentOS 7)的使用者和許可權管理LinuxCentOS
- win10 刪除管理員使用者方法 win10如何刪除管理員Win10
- 帝國CMS網站忘記後臺管理員帳號怎麼辦?網站
- win10怎麼刪除多個管理員賬戶_win10刪除多個管理員賬戶步驟Win10