在FreeBSD中添加用户(2)(2)
2008-02-23 08:02:59来源:互联网 阅读 ()
第八个字段(Dru Lavigne)包含用户的“gecos”综合信息。这里可以包含用户的全名、办公地点、工作电话和家庭电话,中间只要用逗号分隔。术语“gecos”的来源很有趣。当Unix最初在Bell实验室开发时,主计算机运行的是General Electric Computer Operating System(gecos),使用该计算机的用户的地址信息都被存在口令文件的“gecos”字段中。
第九个字段(/home/dlavigne)是用户的主目录。它就是用户登录时所处的目录。
第十个字段(/bin/tcsh)是用户命令解释器shell的路径。
让我们快速地比较一下/etc/passwd和/etc/master.passwd文件。我不再需要超级用户身份来读这些文件了,所以我先退出超级用户账号:
exit
more /etc/passwd
# $FreeBSD: src/etc/master.passwd,v 1.25 1999/09/13 17:09:07 peter Exp $
#
root:*:0:0:Charlie &:/root:/bin/csh
toor:*:0:0:Bourne-again Superuser:/root:
daemon:*:1:1:Owner of many system processes:/root:/sbin/nologin
operator:*:2:5:System &:/:/sbin/nologin
bin:*:3:7:Binaries Commands and Source,,,:/:/sbin/nologin
tty:*:4:65533:Tty Sandbox:/:/sbin/nologin
kmem:*:5:65533:KMem Sandbox:/:/sbin/nologin
games:*:7:13:Games pseudo-user:/usr/games:/sbin/nologin
news:*:8:8:News Subsystem:/:/sbin/nologin
man:*:9:9:Mister Man Pages:/usr/share/man:/sbin/nologin
bind:*:53:53:Bind Sandbox:/:/sbin/nologin
uucp:*:66:66:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
xten:*:67:67:X-10 daemon:/usr/local/xten:/sbin/nologin
pop:*:68:6:Post Office Owner:/nonexistent:/sbin/nologin
nobody:*:65534:65534:Unprivileged user:/nonexistent:/sbin/nologin
genisis:*:1001:0:User &:/home/genisis:/bin/csh
dlavigne:*:1000:1000:Dru Lavigne:/home/dlavigne:/bin/tcsh
test:*:1002:1002:test:/home/test:/bin/tcsh
注意到它与影子口令文件很相似,只是所有的口令字段都用星号替换了用户的散列。同时,空白的和值为0的字段在此文件中都被省略了。
你还可能注意到当我们用ls -l命令以长格式列出这些口令文件时,只有root拥有这些文件的写权限。要注意有一点很重要,就是root不要用文本编辑器去直接打开这些文件进行编辑。当更改一个口令文件时,不能把对此文件的更改直接用在其它口令文件中。这应该是系统工具pwd_mkdb的工作。如果root需要更改一个口噙文件,他需要使用一个工具来把更改发送给pwd_mkdb。
用于此目的的工具之一就是vipw。命令vipw用环境变量EDITOR所定义的编辑器来打开整个口令文件,通常这个编辑器是vi,因此它会被称作“vipw”。如果出于某些原因而使你的编辑器不是vi,那你或许应该避免使用vipw工具或者把EDITOR改回vi。其它的编辑器会折行,这会摧毁象口令文件这样的系统文件,当然这是非常不好的。要使用这个工具,你应该熟练使用vi编辑器并了解十个字段所代表的含义和每个字段可接受的值。所以,只有超级用户才可以使用这个工具。
其它用于编辑口令文件的工具有chpass,它也称为chfn或chsh。任何用户都可以使用这些工具来更改口令文件中属于他们自己的值。我以用户“dlavigne”登录或运行chpass工具:
login: dlavigne
Password:
chpass
#Changing user database information for dlavigne.
Shell: /bin/tcsh
Full Name: Dru Lavigne
Office Location:
Office Phone:
Home Phone:
Other information:
~
/etc/pw.m32496: unmodified: line 1
注意到一个普通用户只限于更改他们自己的缺省shell和gecos综合信息字段。我加入了一个办公电话以查看发生什么情况。因为我在vi编辑器环境里,所以我用箭头键移到文件中适当的位置,按ESC键后再按一下a进入添加模式,然后键入电话号码123-4567。接着再按ESC,键入:wq保存更改并退出vi编辑器。然后屏幕上会显示如下信息:
chpass: updating the database...
chpass: done
接着如果我变成超级用户并寻找/etc/passwd文件中的相应项,会看到刚才的更改:
su:
Password:
more /etc/passwd
dlavigne:*:1000:1000:Dru Lavigne,,123-4567:/home/dlavigne:/bin/tcsh
注意在gecos综合字段中添加的两个逗号指出你正在读的值。它们总是这样的次序排列:
full_name,office_location,work_phone,home_phone
所以我知道123-4567是用户Dru Lavigne的工作电话。
现在,我以超级用户身份运行chpass。如果我给该命令一个用户名作为参数的话,我可以编辑属于该用户的项。来看一下超级可以为用户“dlavigne”作些什么:
chpass dlavigne
#Changing user database information for dlavigne.
Login: dlavigne
Password: pZV8Ju.2sEqsY
Uid [#]: 1000
Gid [# or name]: 1000
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/dlavigne
Shell: /bin/tcsh
Full Name: Dru Lavigne
Office Location:
Office Phone: 123-4567
Home Phone:
Other information:
~
/etc/pw.B32584: unmodified: line 1
你应该能看懂该用户的所有十个字段了吧。超级用户账号可以用chpass带上用户名作参数来更改任何用户的记录。如果超级用户只键入:
chpass
他就可以更改root账号的记录了。chpass工具带有一些开关可使超级用户用于更改一个用户记录的特定字段;请看man 1 chpass的细节。
在所有口令数据库文件中安全更改用户口令的工具是passwd。我以“test”用户登录然后为该用户建一个口令:
login: test
注意到没有提示我输入口令,因为“test”当前只有一个空口令。我用passwd工具来更改一下:
passwd
Changing local password for test.
New password:
Retype new password:
passwd: updating the database...
passwd: done
通常,当用户更改他们的口令,系统会提示他们输入旧口令;这就避免了其他用户来更改口令了。让我们再次以“test”运行passwd工具:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:在FreeBSD中添加用户(1)
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
