佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > UNIX用戶和基本的帳戶管理

UNIX用戶和基本的帳戶管理

熱門標(biāo)簽:集時通訊 呼叫外包 檢查注冊表項 IT外包 呼叫中心解決方案 美團(tuán) 蘋果 免費建站
修改帳戶   在UNIX® 的處理用戶帳戶的環(huán)境中有很多不同的命令可用. 最普通的命令如下,接下來是詳細(xì)使用它們的例子。

命令 摘要
adduser(8) 在命令行添加新用戶.
rmuser(8) 在命令行刪除用戶.
chpass(1) 一個靈活的用于修改用戶數(shù)據(jù)庫信息的工具.
passwd(1) 一個用于修改用戶口令的簡單的命令行工具.
pw(8) 一個強大靈活修改用戶帳戶的工具.

FreeBSD允許多個用戶同時使用計算機(jī)。當(dāng)然,這些用戶中不是很多人同時坐在同一臺計算機(jī)前,而是其他用戶可以通過網(wǎng)絡(luò)來使用同一臺計算機(jī)以完成他塹墓ぷ鰲R褂孟低?,脩┗个却T家幸桓穌駛А?

讀完這章,你將了解到:

             在一個FreeBSD系統(tǒng)上不同用戶帳戶之間的區(qū)別。

             如何添加用戶帳戶。

             如何刪除用戶帳戶。

             如何改變帳戶細(xì)節(jié),如用戶的全名,或首選的shell。

             如何在每個帳戶基礎(chǔ)上設(shè)置限制,來控制像內(nèi)存,CPU時鐘這樣的資源。

             如何使用組來使帳戶管理更容易。

在閱讀這章之前,你應(yīng)當(dāng)了解:

             了解UNIX和FreeBSD的基礎(chǔ)知識(第3章)。

8.2介紹

所有訪問系統(tǒng)的用戶都是通過帳戶完成的,所以在FreeBSD系統(tǒng)中用戶和用戶帳戶的管理是非常重要的。

用戶名

用戶名在login:提示符的后面鍵入。用戶名對于一臺計算機(jī)來講是唯一的。你不可以使用兩個相同的用戶名來登陸。有很多用來創(chuàng)建正確用戶名的規(guī)則,可以看看passwd的聯(lián)機(jī)手冊。你使用的用戶名通常需要8個或更少的小寫字母。

口令(password)

每個帳戶都有一個口令與它對應(yīng)。口令可以是空的,這樣不需要口令就可以訪問系統(tǒng)。這通常不是一個好主意。每個帳戶都應(yīng)當(dāng)要有一個口令。

用戶ID (UID)

UID是系統(tǒng)用來識別用戶的0到65536之間的數(shù)字。FreeBSD使用UID來識別用戶——在工作以前,任何允許你指定一個用戶名的FreeBSD命令都會把它轉(zhuǎn)換成UID。這意味著你可以用不同的用戶名使用多個帳戶,但它們的UID是一樣的。FreeBSD會把這些帳戶認(rèn)定是同一個用戶。

組ID (GID)

GID是用來識別用戶所在的組的0到65536之間的數(shù)字。組是一種基于用戶GID而不是它們的UID的用來控制用戶訪問資源的機(jī)制。這可以減少一些配置文件的大小。一個用戶也可以屬于多個組。

登陸類

登陸類是對組機(jī)制的擴(kuò)展,當(dāng)把系統(tǒng)分配給不同用戶時,它提供了額外的靈活性。

口令的定期改變

默認(rèn)情況下,F(xiàn)reeBSD不會強迫用戶去改變他們的口令。你可以在每個用戶的基礎(chǔ)上強迫執(zhí)行,當(dāng)一個帳戶過期了,可以強迫一些或所有的用戶改變他們的口令。

帳戶到期了

默認(rèn)情況下,F(xiàn)reeBSD不會終止帳戶。如果你正在創(chuàng)建帳戶,你要知道有一個有限的使用期限。例如,在學(xué)校里,你會為每個學(xué)生設(shè)立一個帳戶,當(dāng)帳戶到期了,你可以重新指定它。帳戶到期后,雖然帳戶的目錄和文件仍然存在,但帳戶已經(jīng)不能再使用了。

用戶的全名

用戶名可以唯一地識別FreeBSD的帳戶,但不會反映用戶的全名。這些信息可能與帳戶是相關(guān)的。

主目錄(home)

主目錄是用戶用來啟動的目錄的完全路徑。一個通常的規(guī)則是把所有用戶的主目錄都放在/home/username下。用戶將會把他們的個人文件放在他們自己的主目錄下,他們可以在那兒創(chuàng)建任何目錄。

用戶shell

Shell提供了用戶用來操作系統(tǒng)的默認(rèn)環(huán)境。有很多不同的shell,有經(jīng)驗的用戶會根據(jù)他們的經(jīng)驗來選擇。

有三種類型的帳戶:超級用戶、系統(tǒng)用戶和普通用戶。超級用戶帳戶通常叫做root,可以毫無限制地管理系統(tǒng)。系統(tǒng)用戶運行服務(wù)。最后,普通用戶帳戶給那些登陸系統(tǒng),閱讀郵件等的人們使用。

8.3超級用戶帳戶

超級用戶帳戶通常叫做root,可以重新配置和管理系統(tǒng),在收發(fā)郵件、系統(tǒng)檢查或編程時盡量不要使用root權(quán)限。

這是因為不像普通用戶帳戶,超級用戶能夠毫無限制地操作系統(tǒng),超級用戶帳戶的濫用可能會引起無法想象的災(zāi)難。普通的用戶帳戶不會由于出錯而破壞系統(tǒng)。所以通常要盡可能地使用普通帳戶,除非你需要額外的特權(quán)。

另外,在使用超級帳戶時要再三檢查命令,因為一個額外的空格或缺少某個字符的命令都可能會引起數(shù)據(jù)丟失。

所以,你在閱讀了這章后要做的第一件事是,在平時使用的時候,創(chuàng)建一個沒有特權(quán)的用戶帳戶。無論你使用的是多用戶還是單用戶的系統(tǒng),這樣的申請都是相同的。在這一章的后面,我們將討論如何創(chuàng)建一個額外的帳戶和如何在普通用戶和超級用戶之間進(jìn)行切換。

8.4系統(tǒng)帳戶

系統(tǒng)用戶是那些要使用諸如DNS,mail,web等服務(wù)的用戶。使用帳戶的原因就是為了安全。如果所有的服務(wù)都由超級用戶來運行,那他們就可以不受約束地做任何事情。系統(tǒng)用戶可以是后臺程序、操作員、bind或新聞。系統(tǒng)管理員經(jīng)常創(chuàng)建httpd來運行web服務(wù)器。

Nobody是普通的沒有特權(quán)的系統(tǒng)用戶。然而,絕大多數(shù)與用戶聯(lián)系很密切的服務(wù)是使用nobody的,記住這一點是非常重要的,因此用戶可能會變得很有特權(quán)。

8.5用戶帳戶

用戶帳戶是讓真實用戶訪問系統(tǒng)的主要方式。這些帳戶把用戶和環(huán)境分隔開,能阻止用戶破壞系統(tǒng)或其他用戶,在不影響其他用戶的情況下定置它們的環(huán)境。

每個人訪問你的系統(tǒng)必須要有他們自己的唯一帳戶。這允許你可以找到誰做了些什么,阻止人們破壞其他用戶的設(shè)置和閱讀其他人的郵件等等。

每個用戶能夠設(shè)置他們自己的環(huán)境,以利于他們通過改變shell、編輯器、鍵盤綁定和語言等適應(yīng)使用這個系統(tǒng)。

8.6修改帳戶

在UNIX的處理用戶帳戶的環(huán)境中有很多不同的命令可用。最普通的命令總結(jié)如下:

命 令
摘 要

adduser
被推薦的用于添加新用戶的命令行應(yīng)用。

rmuser
被推薦的用于刪除新用戶的命令行應(yīng)用。

chpass
一個靈活的用于修改用戶數(shù)據(jù)庫信息的工具。

passwd
用于修改用戶口令的簡單的命令行工具。

pw
一個強大而又靈活的修改用來修改用戶帳戶的工具。


8.6.1增加用戶

adduser是個簡單的增加新用戶的命令。它為用戶創(chuàng)建passwd和group文件。它也為新用戶創(chuàng)建一個主目錄,從/usr/share/skel拷貝進(jìn)一個默認(rèn)的配置文件(“dotfiles”),然后給新用戶發(fā)送一個帶歡迎信息的郵件。

要創(chuàng)建一個初始的配置文件,使用adduser -s -config_create。既然給普通用戶創(chuàng)建root帳戶是很危險的,所以下面我們配置adduser的默認(rèn)設(shè)置,創(chuàng)建我們第一個用戶帳戶。

例8-1,配置adduser

# adduser -v

Use option “-silent” if you don’t want to see all warnings and questions.

Check /etc/shells

Check /etc/master.passwd

Check /etc/group

Enter your default shell: csh date no sh tcsh zsh [sh]: zsh

Your default shell is: zsh -_ /usr/local/bin/zsh

Enter your default HOME partition: [/home]:

Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:

Send message from file: /etc/adduser.message no

[/etc/adduser.message]: no

Do not send message

Use passwords (y/n) [y]: y

Write your changes to /etc/adduser.conf? (y/n) [n]: y

Ok, let’s go.

Don’t worry about mistakes. I will give you the chance later to correct any input.

Enter username [a-z0-9_-]: jru

Enter full name []: J. Random User

Enter shell csh date no sh tcsh zsh [zsh]:

Enter home directory (full path) [/home/jru]:

Uid [1001]:

Enter login class: default []:

Login group jru [jru]:

Login group is “jru”. Invite jru into other groups: guest no

[no]: wheel

Enter password []:

Enter password again []:

Name: jru

Password: ****

Fullname: J. Random User

Uid: 1001

Gid: 1001 (jru)

Class:

Groups: jru wheel

HOME: /home/jru

Shell: /usr/local/bin/zsh

OK? (y/n) [y]: y

Added user “jru”

Copy files from /usr/share/skel to /home/jru

Add another user? (y/n) [y]: n

Goodbye!

#

總的來講,我們把默認(rèn)的shell設(shè)置成zsh(另一個可以在ports collection中找到的shell),關(guān)閉歡迎郵件。然后,保存配置,接著創(chuàng)建一個jru的帳戶,并且確信jru在wheel組里面。(它可能假定已經(jīng)用su轉(zhuǎn)換成了root)。

注意:你輸入的口令是不會顯示出來的,而只會顯示星號。確保輸入兩次口令時,不要輸錯。從現(xiàn)在起,只要使用adduser,你不必改變默認(rèn)設(shè)置。如果程序要求你改變默認(rèn)設(shè)置,先退出程序,然后執(zhí)行程序時加上-s選項。

8.6.2 rmuser

你可以使用rmuser從系統(tǒng)中完全刪除一個用戶。rmuser執(zhí)行下面的步驟:

1.         刪除用戶的crontab記錄。

2.         刪除屬于用戶的at工作。

3.         殺掉屬于用戶的所有線程。

4.         刪除本地口令文件中的用戶。

5.         刪除用戶的主目錄。

6.         刪除來自/var/mail的屬于用戶的郵件。

7.         刪除所有諸如/tmp的臨時文件存儲區(qū)中的文件。

8.         最后,刪除在/etc/group中所有屬于組的用戶名。

注意:如果一個組變成空,而組名和用戶名一樣,組將被刪除。rmuser不能用來刪除超級用戶的帳戶。

例8-2. rmuser interactive account removal

# rmuser jru

Matching password entry:

jru:*:1000:1000::0:0:J. Random User:/home/jru:/usr/local/bin/tcsh

Is this the entry you wish to remove? y

Remove user’s home directory (/home/jru)? y

Updating password file,updating databases,done.

Updating group file: trusted (removing group jru-personal group is empty) done.

Removing user’s incoming mail file /var/mail/jru: done.

Removing files belonging to jru from /tmp: done.

Removing files belonging to jru from /var/tmp: done.

Removing files belonging to jru from /var/tmp/vi.recover: done.

#

8.6.3 chpass

Chpass可以改變用戶的口令,shell和個人信息的數(shù)據(jù)庫信息。只有超級用戶才能改變其他用戶的信息。除了可選擇的用戶名,不需要任何選項,chpass顯示一個包含用戶信息的編輯器,而且可以試圖改變在用戶數(shù)據(jù)庫中的信息。

例如8-3.用超級用戶交互式執(zhí)行chpass

#Changing user database information for jru.

Login: jru

Password: *

Uid [#]: 1000

Gid [# or name]: 1000

Change [month day year]:

Expire [month day year]:

Class:

Home directory: /home/jru

Shell: /usr/local/bin/tcsh

Full Name: J. Random User

Office Location:

Office Phone:

Home Phone:

Other information:

The normal user can change only a small subsection of this information, and only for themselves.

例如8-4. 用普通用戶交互式執(zhí)行chpass

#Changing user database information for jru.

Shell: /usr/local/bin/tcsh

Full Name: J. Random User

Office Location:

Office Phone:

Home Phone:

Other information:

注意:chfn和chsh只連接到chpass。同樣的是,ypchpass,ypchfn和ypchsh。NIS支持是自動的,所以不一定要在命令前指定yp。如果你感到有點糊涂,請不要著急,NIS將在第17章講到。

8.6.4 passwd

passwd是改變你自己作為一個普通用戶的口令或另一個作為超級用戶口令的常用方法。

注意:在改變口令前,用戶必須鍵入原來的口令。當(dāng)用戶離開他們的控制臺時,可以阻止一個沒有經(jīng)過認(rèn)證的人改變他們的口令。

例如8-5. 改變你的口令

% passwd

Changing local password for jru.

Old password:

New password:

Retype new password:

passwd: updating the database...

passwd: done

例如8-6. 改變另一個用戶的口令

# passwd jru

Changing local password for jru.

New password:

Retype new password:

passwd: updating the database...

passwd: done

注意:就像chpass一樣,yppasswd只是一個到passwd的鏈接,所以NIS用任何一個命令都能工作。

8.6.5 pw

pw是一個用來創(chuàng)建、刪除、修改、顯示用戶和組的命令行工具,它還有系統(tǒng)用戶和組文件編輯器的功能。pw有一個非常強大的命令行設(shè)置選項,但新用戶可能會覺得它比這兒講的其他命令要復(fù)雜得多。

8.7受限制的用戶

如果你運行一個多用戶系統(tǒng),你不信任的用戶對系統(tǒng)所作的修改可能會損壞你的系統(tǒng)。FreeBSD提供了系統(tǒng)管理員限制用戶訪問系統(tǒng)資源的方法。這些限制通常被分成兩種:磁盤配額和其他資源限制。

磁盤配額為系統(tǒng)管理員提供了一個告訴文件系統(tǒng)給用戶使用多少磁盤空間的方法。而且,它還提供了一種快速檢查用戶所使用的磁盤數(shù)量而不需要時刻計算的方法。配額將在第12.5節(jié)討論。

其他資源限制包括限制CPU、memory的數(shù)量和用戶可能會使用的其他資源。這些是通過對登陸進(jìn)行分類來完成的,下面將作討論。

登陸的類由/etc/login.conf文件來定義。比較精確的表述超出了本章的范圍,但login.conf的聯(lián)機(jī)手冊會有比較細(xì)致的描述。

資源限制與普通的登陸限制是有區(qū)別的。首先,對于每一種限制,有軟限制和硬限制之分。一個軟限制可能被用戶或應(yīng)用程序調(diào)整過了,但不會超越硬限制。越往后可能會越低,但不會升高。第二,絕大多數(shù)資源限制會分配每個進(jìn)程給一個特殊的用戶。

下面就是絕大多數(shù)資源限制的例子:

coredumpsize

很明顯,由程序產(chǎn)生的核心文件大小的限制在磁盤使用上是從屬于其他限制的(如,文件大小,或磁盤配額)。然而,既然用戶自己無法產(chǎn)生核心文件,而且經(jīng)常不刪除它們,設(shè)置這個可以減少由于一個大型應(yīng)用程序的崩潰所造成的大量磁盤空間的浪費。

cputime

這是一個用戶程序所能消耗掉的最大的CPU時鐘數(shù)量。一些不理想的進(jìn)程會被內(nèi)核殺掉。

注意:這是一個有關(guān)CPU消耗的時鐘限制問題,不是在使用top和ps命令時屏幕上顯示的CPU消耗的百分比。

filesize

這是用戶可以處理的一個文件的最大值。不像磁盤配額,這個限制是對單個文件強制執(zhí)行的。

maxproc

這是一個用戶可以運行的最大的進(jìn)程數(shù)。這包括前臺和后臺進(jìn)程。很明顯,這不可能比系統(tǒng)指定的限制要大。當(dāng)然,如果設(shè)置得太小可能會削弱用戶的處理能力:可能需要多次登陸或執(zhí)行多個管道。一些任務(wù),像編譯一些大的程序,也可能會產(chǎn)生很多進(jìn)程。(像make,cc,和其他一些預(yù)處理程序)。

memorylocked

這是一個進(jìn)程可能會被鎖定到主內(nèi)存中的最大內(nèi)存數(shù)量。一些比較大型的程序,像amd ,在遇到問題時,他們得到的巨大交換量無法傳遞給系統(tǒng)進(jìn)行處理。

memoryuse

這是在給定時間內(nèi)一個進(jìn)程可能消耗的最大的內(nèi)存數(shù)量。它包括核心內(nèi)存和交換內(nèi)存。在限制內(nèi)存消耗方面,這個不是一個完全的限制,但它是一個好的開始。

openfiles

這是一個進(jìn)程可以打開的最大的文件數(shù)。在FreeBSD中,文件也可以被用來表現(xiàn)套接字和IPC通道。然而,注意不要把這個設(shè)置得太小。對這個更深入的限制是由kern.maxfiles sysctl來定義的。

sbsize

這是網(wǎng)絡(luò)內(nèi)存數(shù)量的限制。這可以通過創(chuàng)建許多套接字來生成一些針對老式的DoS的攻擊的回應(yīng),但它通常被用來限制網(wǎng)絡(luò)通信。

stacksize

這是一個進(jìn)程堆??赡苓_(dá)到的最大值。這個不能單獨地限制一個程序可能使用的內(nèi)存數(shù)量,而是要和其他的限制一起配合。

在設(shè)置資源限制時,有一些其他的事情需要記住。下面是一些通常的技巧,建議和各種注意事項。

             系統(tǒng)啟動的進(jìn)程會被指派給守護(hù)程序的登陸類。

             雖然來自系統(tǒng)的/etc/login.conf文件是一個對于絕大多數(shù)的限制作合理配置的資源文件,但只有你,系統(tǒng)管理員,才知道什么對你的系統(tǒng)才是最適當(dāng)?shù)?。限制設(shè)得太高可能會把你的系統(tǒng)開放得太大而被人濫用,而設(shè)得太低可能會處理時效率很低。

             X視窗系統(tǒng)的用戶可能要比其他用戶使用更多的資源。X11本身就要使用很多資源,但它也可以讓用戶同時運行更多的程序。

             記住許多限制會被應(yīng)用于單獨的處理進(jìn)程,不是所有的用戶。例如,設(shè)置openfiles為50,意味著用戶運行的每個進(jìn)程可能最高只能打開50個文件。然而,用戶可以打開的文件的總的大小是根據(jù)maxproc值逐步增加的openfiles值。這也會影響內(nèi)存的消耗。有關(guān)資源限制,登陸類的更深入信息可以看看相關(guān)的聯(lián)機(jī)手冊:cap_mkdb,getrlimit,login.conf。

8.8私有化用戶

本地化是由系統(tǒng)管理員或用戶設(shè)置的一個環(huán)境,它可以用來調(diào)整不同的語言,字符設(shè)置,時鐘標(biāo)準(zhǔn)等。這將在第13章本地化-I18N/L10N使用與設(shè)置作詳細(xì)討論。

8.9組

組簡單來講就是許多用戶的列表。組可以通過它們的組名和編號來識別。在FreeBSD(和其他絕大多數(shù)的Unix系統(tǒng))中,這兩個要素通常被內(nèi)核用來決定一個允許被執(zhí)行的進(jìn)程是否是它的用戶ID,還是它所屬的組的列表。不像用戶ID,一個進(jìn)程有一個與它相關(guān)聯(lián)的組的列表。你可能聽說過一些有關(guān)一個用戶或進(jìn)程的組ID的事情。在大多數(shù)情況下,這只意味著在列表中的第一個組。

與組ID地圖對應(yīng)的組名在/etc/group中。這是一個用四個冒號來界定的文本文件。第一部分是組名,第二部分是加密的口令,第三部分是組ID,第四部分是以逗號分割的成員列表。它可以用手工的方式進(jìn)行編輯。對于更完整的語法描述,可以參看group的聯(lián)機(jī)手冊。如果你不想手工編輯/etc/group,你可以使用pw命令來增加和編輯組。例如,要增加一個叫teamtwo的組,確信它存在:

例如8-7. 使用pw增加一個組:

# pw groupadd teamtwo

# pw groupshow teamtwo

teamtwo:*:1100:

上面的1100數(shù)字是組teamtwo的組ID。在這兒,teamtwo沒有成員,那它也就沒有多大用處。

例如8-8.使用pw在組中添加一些成員:

# pw groupmod teamtwo -M jru

# pw groupshow teamtwo

teamtwo:*:1100:jru

使用-M參數(shù)是為了用逗號劃分開一個組成員中的用戶列表。你可能知道口令文件也會為每個用戶包含一個組。當(dāng)使用pw來詢問組成員的時候,在口令文件中的組會自動被添加到組列表中,而不會出現(xiàn)在成員列表中。如果你想知道一個用戶屬于哪個組,可以使用id命令:

例如8-9.使用id來決定組成員

% id jru

uid=1001(jru) gid=1001(jru) groups=1001(jru),1100(teamtwo)

正如你所看到的,jru是組jru和teamtwo的成員。

有關(guān)pw的更多信息,可以參看它的聯(lián)機(jī)手冊,更多有關(guān)/etc/group格式的信息,可參考group的聯(lián)機(jī)手冊。

標(biāo)簽:眉山 信陽 泰州 宿遷 韶關(guān) 邢臺 安康 營口

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《UNIX用戶和基本的帳戶管理》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    合水县| 灵寿县| 开平市| 张家口市| 东山县| 阿巴嘎旗| 安新县| 嘉黎县| 津市市| 东宁县| 昭通市| 哈尔滨市| 清镇市| 上杭县| 和田市| 柘荣县| 麻城市| 三原县| 石楼县| 抚松县| 临江市| 栾川县| 广昌县| 丰顺县| 德昌县| 公安县| 西平县| 邹城市| 平远县| 常山县| 门源| 榆社县| 柯坪县| 全州县| 土默特右旗| 福鼎市| 宾川县| 巢湖市| 贵州省| 长汀县| 潮安县|