分享
 
 
 

在FreeBSD中添加用户

王朝system·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在FreeBSD中添加用户

http://www.linuxforum.net 译 meaculpa (2001-04-21 17:02:34)

DruLavigne

01/03/2001

FreeBSD是个多用户环境;一个系统管理员主要的工作之一就是建立用户账号并向用户提供一个安全的工作环境。要有效地完成此工作需要在建立任何用户之前作一些预期规划。

即使如果你是个人FreeBSD系统的唯一用户,仍需要至少建立一个用户账号来完成常规的工作。记住,只在工作需要超级用户权限的时候才用超级用户账号。

在你的FreeBSD系统上象一位系统管理员那样练习规划是个好主意,因为你可以增长管理“实际”生产环境的基本技术。

当你建立一个用户时,在后台会发生很多事情:更新一些数据库,建立邮件目录以及用户的宿主目录。当建立用户时,你必须提供一定数量的信息,包括用户名和口令。在这篇文章中,我打算集中于用户策略以及建立用户账号上。

你建立的每个用户账号都必须有一个在FreeBSD系统上唯一的名字。在较小的环境这很容易做到,但如果你必须建立一打,成百甚至上千个用户就稍微要困难一点了。为了有助于确保唯一性,你应该有一套用户命名策略。如果没有适当的策略,你需要建立一套命名方案,紧记一些用于用户名的限制。首先,用户名应被限制在16个字符之内,而一些协议,如NIS,需要用户名少于8个字符。其次,用户名不能以连字符“-”起首。再次,你应该避免使用大写字母和句点,因为这些会搞乱一些邮件程序。

在较小环境中的策略样例可以用用户的名和姓首字母来建立用户名。你可能要对此稍加修改以避免冲突。例如,如果你需要为MikeSmith和MikeSpencer建立账号,可以建立“mikes”和“michaels”,或“mikesm”和“mikesp”。

其它的策略可以用用户的姓和名首字母并作适当的修改来建立用户名以避免冲突。如果你需要为MarkSmith和MichelleSmith建立账号,可以建立“smithma”和“smithmi”。

在稍大的环境中,你可能要用较多字符分别表示名和姓。例如,如果命名策略是名部分的首四个字符后跟姓部分的首四个字符,那么MarkSmith应该是“marksmit”,而MichelleSmith应该是“michsmit”。你仍需要有一份后备计划用于那些姓和名都少于指定的字符数量。例如,如果我需要用上述策略为MyLee建立一个账号,我应该建立“my_lee”。

除非你处于一个相当小的环境之中,避免非说明性的昵称,如我用在自己系统上的“biko”和“genisis”是比较明智的。

总而言之,一个好的用户命名策略表明了对用户名的限制,而且是避免命令冲突的一个应急方法。

一旦你决定了一套命令方案,你就可以用adduser工具建立用户账号了。这个工具有一个配置文件/etc/adduser.conf,它还会读取一个讯息文件/etc/adduser.message。这些文件在你首次使用adduser工具前还没有被创建。下面跟我一起建立一个用户;我会使用v或verbose开关,所以我们将看到所有可能的提示信息。你会看到adduser首先创建它的配置文件,然后在建立用户时把它作为一个模板。

adduser-v

Youarenotroot!

哦。看起来这是个需要root权限的管理工作。让我们再试一次:

su

Password:

adduser-v

/etc/adduser.conf:Nosuchfileordirectory

可以看到这是我首次在该系统上使用“adduser”工具;它还没有一个配置文件。

Useoption"-silent"

ifyoudon'twanttoseeallwarningsandquestions.

Check/etc/shells

Check/etc/master.passwd

Check/etc/group

Enteryourdefaultshell:bashcshdatenoshtcsh[sh]:tcsh

adduser读取一个含有系统上安装的所有命令解释器的路径的文件/etc/shells;然后显示用户可以使用的解释器。注意,向用户提供的缺省解释器是Bourneshell(sh),但我把它改为tcsh。

Yourdefaultshellis:tcsh->/bin/tcsh

EnteryourdefaultHOMEpartition:[/home]:

Copydotfilesfrom:/usr/share/skelno[/usr/share/skel]:

当我们建完用户并在接受了从/usr/share/skel目录拷贝点文件看到的信息之后,可以去看一下那个目录里的内容。

Sendmessagefromfile:/etc/adduser.messageno

[/etc/adduser.message]:

Create"/etc/adduser.message"?(y/n)[y]:

Usepasswords(y/n)[y]:

Writeyourconfigurationto/etc/adduser.conf?(y/n)[y]:

可以看到adduser在/etc目录下建立了adduser.message和adduser.conf文件。现在准备建立我们的用户:

Ok,let'sgo.

Don'tworryaboutmistakes.

Iwillgiveyouthechancelatertocorrectanyinput.

Enterusername[a-z0-9_-]:dlavigne

Enterfullname[]:DruLavigne

Entershellbashcshdatenoshtcsh[tcsh]:

Enterhomedirectory(fullpath)[/home/dlavigne]:

Uid[1000]:

Enterloginclass:default[]:

Logingroupdlavigne[dlavigne]:

Logingroupis"dlavigne".

Invitedlavigneintoothergroups:guestno

[no]:

Enterpassword[]:

Enterpasswordagain[]:

Name: dlavigne

Password:****

Fullname:DruLavigne

Uid: 1000

Gid: 1000(dlavigne)

Class:

Groups: dlavigne

HOME:/home/dlavigne

Shell: /bin/tcsh

OK?(y/n)[y]:

Addeduser"dlavigne"

Sendmessageto"dlavigne"and:norootsecond_mail_address

[no]:

DruLavigne,

youraccount"dlavigne"wascreated.

Havefun!

Seealsochpass(1),finger(1),passwd(1)

Addanythingtodefaultmessage(y/n)[n]:

Sendmessage(y/n)[y]:

Copyfilesfrom/usr/share/skelto/home/dlavigne

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

Goodbye!

现在我已经顺利地建立了一个用户,我将离开超级用户账号。让我们以新用户身份登录,看一下他们有些什么东东并描述一下这里的内容:

login:dlavigne

Password:

pwd

/usr/home/dlavigne

ls-la

total12

drwxr-xr-x2dlavignedlavigne512Dec3011:21./

drwxr-xr-x4rootwheel512Dec3010:44../

-rw-r--r--1dlavignedlavigne628Dec3010:44.cshrc

-rw-r--r--1dlavignedlavigne299Dec3010:44.login

-rw-r--r--1dlavignedlavigne160Dec3010:44.login_conf

-rw-------1dlavignedlavigne371Dec3010:44.mail_aliases

-rw-r--r--1dlavignedlavigne331Dec3010:44.mailrc

-rw-r--r--1dlavignedlavigne722Dec3010:44.profile

-rw-------1dlavignedlavigne276Dec3010:44.rhosts

-rw-r--r--1dlavignedlavigne852Dec3010:44.shrc

你可以看到为用户建立了一个宿主目录,里面包含很多以点起首的文件。记得我们使用adduser工具时提到的点文件目录吗?让我们现在来看一下:

ls-l/usr/share/skel

total10

drwxr-xr-x2rootwheel512Dec811:53./

drwxr-xr-x26rootwheel512Nov2008:11../

-rw-r--r--1rootwheel628Nov2007:01dot.cshrc

-rw-r--r--1rootwheel299Nov2007:01dot.login

-rw-r--r--1rootwheel160Nov2007:01dot.login_conf

-rw-------1rootwheel371Nov2007:01dot.mail_aliases

-rw-r--r--1rootwheel331Nov2007:01dot.mailrc

-rw-r--r--1rootwheel722Nov2007:01dot.profile

-rw-------1rootwheel276Nov2007:01dot.rhosts

-rw-r--r--1rootwheel852Nov2007:01dot.shrc

可以看到在我们新用户的宿主目录建立的八个文件都是从这个目录中拷贝的模板文件。另外也可以看到只有超级用户才可以编辑skel目录里的文件。例如,如果你希望所有用户都得到定制过的命令解释器提示符,那么超级用户可以修改usr/share/skel/dot.cshrc文件,此文件会在建立账号时拷贝到所有用户的宿主目录中。还有,超级用户也可以在该目录中放入他希望用户得到的任何其它点文件;例如你可以为用户建立定制好的.xinitrc文件。

现在让我们看一下adduser工具建立的/etc/adduser.message文件:

more/etc/adduser.message

#

#Messagefileforadduser(8)

#comment:"#"

#defaultvariables:$name,$fullname,$password

#othervariables:see/etc/adduser.confafter

#line"##DONOTDELETETHISLINE!"

#

$fullname,

youraccount"$name"wascreated.

Havefun!

Seealsochpass(1),finger(1),passwd(1)

让我们把它和新用户收到的信息比较一下;我使用mail命令该用户的邮件信息:

login:dlavigne

Password:

Youhavemail.

mail

Mailversion8.16/6/93.Type?forhelp.

"/var/mail/dlavigne":1message1new

>N1genisisSatDec3012:2420/540"Welcome"

&1

Message1:

FromgenisisSatDec3012:24:192000

Date:Sat,30Dec200012:24:19-0500(EST)

From:UserGenisis

To:dlavigne

Subject:Welcome

DruLavigne,

youraccount"dlavigne"wascreated.

Havefun!

Seealsochpass(1),finger(1),passwd(1)

&^DSaved1messageinmbox

>^Dexit

你可以看到我在成为超级用户以便使用adduser命令这前是以用户“genisis”登录的。我的新用户收到的信息就是adduser.message中包含的内容,而插入的$fullname和$name变量都以实际的值作了替换。

当建立了账号时,我们会得到以下的选项:

Addanythingtodefaultmessage(y/n)[n]:

如果我要建立其它账号并打入y,我会得到以下提示:

Use"."or^Daloneonafiletofinishyour

message

我打入的内容都会被加入到缺省的信息中,然后发给该特定的用户;但是,这不会覆盖我原先创建的/etc/adduser.message文件。让我们来试一下这样做;我将添加一个称为“test”的账号,显示我们关心的输出并“剪掉”其余的:

adduser

<剪掉>

Addanythingtodefaultmessage(y/n)[n]:y

Use"."or^Daloneonalinetofinishyourmessage.

Don'tforgetthateveryFridayispizzaday!

.

Sendmessage(y/n)[y]:y

现在让我们看一下用户test的邮件信息是什么样的:

login:test

Password:

Youhavemail.

mail

Mailversion8.16/6/93.Type?forhelp.

"/var/mail/test":1message1new

>N1genisisSatDec3012:4722/567"Welcome"

&1

Message1:

FromgenisisSatDec3012:47:072000

Date:Sat,30Dec200012:47:07-0500(EST)

From:UserGenisis

To:test

Subject:Welcome

test,

youraccount"test"wascreated.

Havefun!

Seealsochpass(1),finger(1),passwd(1)

Don'tforgetthateveryFridayispizzaday!

再看一下新信息是否被加到了模板文件:

more/etc/adduser.message

#

#Messagefileforadduser(8)

#comment:"#"

#defaultvariables:$name,$fullname,$password

#othervariables:see/etc/adduser.confafter

# line"##DONOTDELETETHISLINE!"

#

$fullname,

youraccount"$name"wascreated.

Havefun!

Seealsochpass(1),finger(1),passwd(1)

看来只有该用户收到了附加的信息,这正如我们所期望的。在离开adduser.message文件之前我还想做更多的例子。我想让用户在他们的欢迎邮件中收到下面这条附加信息:

Ifyouhaveanyproblems,contacttheadministratorat

admin@thiscompany.com

试一下你自己建立一个账号并把这行加到他们的信息中;你会看到当你以该用户登录时,附加行没有出现在邮件信息中。但是如果你把这行改成:

Ifyouhaveanyproblems,contacttheadministratorat

admin\@thiscompany.com

那么用户就会收到附加信息了。注意,我们必须用\符号避开@符号,以便正确解释。

最后,让我们看一下刚才建立的adduser.conf文件:

more/etc/adduser.conf

#/etc/adduser.conf-automaticgeneratedbyadduser(8)

#

#Note:adduserread*and*writethisfile

#Youmaychangevalues,butdon'taddnewthingsbeforethe

#line"##DONOTDELETETHISLINE!"

#usepasswordfornewusers

#defaultpasswd=yes|no

defaultpasswd=yes

#copydotfilesfromthisdir("/usr/share/skel"or"no")

dotdir="/usr/share/skel"

#sendthisfiletonewuser

#("/etc/adduser.message"or"no")

send_message="/etc/adduser.message"

#configfileforadduser("/etc/adduser.conf")

config="/etc/adduser.conf"

#logfile("/var/log/adduser"or"no")

logfile="/var/log/adduser"

#defaultHOMEdirectory("/home")

home="/home"

#Listofdirectorieswhereshellslocated

#path=('/bin','/usr/bin','/usr/local/bin')

path=('/bin','/usr/bin','/usr/local/bin')

#commonshelllist,firstelementhashigherpriority

#shellpref=('bash','tcsh','ksh','csh','sh')

shellpref=('csh','sh','bash','tcsh','ksh','no','date')

#defaultshellifnotempty("bash")

defaultshell="tcsh"

#defaultgroup('USER'forsameas

#usernameoranyothervalidgroup)

defaultgroup=USER

#defaultclassifnotempty

defaultclass=""

#newusersgetthisuid(1000)

uid_start="1000"

##DONOTDELETETHISLINE!

##yourownvariables,see/etc/adduser.message

##end

你可以看到这是个简单的文件,它包含了对adduser工具提示问题的回答。你看到的新信息只是该文件含有adduser记录文件的存放位置。如果看一下这个记录文件,会看到建立账号时的记录:

more/var/log/adduser

2000/12/3012:24:18dlavigne:*:1000:1000(dlavigne):DruLavigne

2000/12/3012:47:06test:*:1001:1001(test):test

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有