14.6. 修改帐户

UNIX® 的处理用户帐户的环境中有很多不同的命令可用. 最普通的命令如下, 接下来是详细使用它们的例子。

命令摘要
adduser(8)在命令行添加新用户.
rmuser(8)在命令行删除用户.
chpass(1)一个灵活的用于修改用户数据库信息的工具.
passwd(1)一个用于修改用户口令的简单的命令行工具.
pw(8)一个强大灵活修改用户帐户的工具.

14.6.1. 添加用户

adduser(8) 是一个简单的添加新用户的命令. 它为用户创建 passwdgroup 文件。 它也为新用户创建一个主目录, 之后, 它会复制一组默认的配置文件 (dotfiles) 从 /usr/share/skel 这个目录, 然后给新用户发送一封带欢迎信息的邮件。

例 14.1. 在 FreeBSD 中添加一个新用户
# adduser
Username: jru
Full name: J. Random User Uid (Leave empty for default):
Login group [jru]:
Login group is jru. Invite jru into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]: zsh
Home directory [/home/jru]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username   : jru
Password   : ****
Full Name  : J. Random User
Uid        : 1001
Class      :
Groups     : jru wheel
Home       : /home/jru
Shell      : /usr/local/bin/zsh
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jru) to the user database.
Add another user? (yes/no): no Goodbye!
#

注意:

您输入的口令并不会回显到屏幕上, 此外系统也不会显示星号。 请务必确保没有输错口令。

14.6.2. 删除用户

您可以使用rmuser(8) 从系统中完全删除一个用户. rmuser(8) 执行如下步骤:

  1. 删除用户的 crontab(1) 记录 (如果有的话).

  2. 删除属于用户的at(1) 工作.

  3. 杀掉属于用户的所有进程.

  4. 删除本地口令文件中的用户.

  5. 删除用户的主目录 (如果他有自己的主目录).

  6. 删除来自 /var/mail属于用户的邮件.

  7. 删除所有诸如 /tmp的临时文件存储区中的文件.

  8. 最后, 删除 /etc/group中所有属于组的该用户名.

    注意:

    如果一个组变成空,而组名和用户名一样,组将被删除. adduser(8)命令建立每个用户唯一的组.

rmuser(8) 不能用来删除超级用户的帐户, 因为那样做是对系统极大的破坏.

默认情况下, 使用交互模式, 这样能够让您清楚的知道您在做什么.

例 14.2. 删除用户 交互模式下的帐户删除
# rmuser jru Matching password entry:
jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh 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.
#

14.6.3. chpass

chpass(1) 可以改变用户的口令, shells, 和包括个人信息在内的数据库信息.

只有系统管理员, 即超级用户, 才可以用 chpass(1) 改变其他用户口令和信息。

除了可选择的用户名, 不需要任何选项, chpass(1) 将显示一个包含用户信息的编辑器. 可以试图改变用户在数据库中的信息.

注意:

如果您不是超级用户的话, 在退出编辑状态之后, 系统会询问您口令。

例 14.3. 以超级用户交互执行 chpass 命令
#Changing user database information for jru.
Login: jru
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jru
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:

普通用户只能改变他们自己很少的一部分信息.

例 14.4. 以普通用户交互执行 chpass 命令
#Changing user database information for jru.
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:

注意:

chfn(1)chsh(1) 只是到 chpass(1) 的符号连接, 类似地, ypchpass(1), ypchfn(1) 以及 ypchsh(1) 也是这样。 NIS 是自动支持的, 不一定要在命令前指定 yp。 如果这让您有点不太明白, 不必担心, NIS 将在 第 30 章 网络服务器 介绍。

14.6.4. passwd命令

passwd(1) 是改变您自己作为一个普通用户口令或者作为超级用户口令常用的方法.

注意:

用户改变口令前必须键入原来的口令, 防止用户离开终端时非授权的用户进入改变合法用户的口令。

例 14.5. 改变您的口令
% passwd Changing local password for jru.
Old password:
New password:
Retype new password:
passwd: updating the database...
passwd: done

例 14.6. 改变其他用户的口令同超级用户的一样
# passwd jru Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: done

注意:

就象 chpass(1)一样, yppasswd(1) 只是一个到 passwd(1)的连接, 所以NIS用任何一个命令都可以正常工作.

14.6.5. pw命令

pw(8) 是一个用来创建、删除、修改、显示用户和组的命令行工具。 它还有系统用户和组文件编辑器的功能。 pw(8) 有一个非常强大的命令行选项设置, 但新用户可能会觉得它比这里讲的其它命令要复杂很多。

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.