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應該放在一個分離的目錄中,這樣它們的名字不會干擾普通用戶的命令
相關文章
相關標籤/搜索