Linux 账户管理
Posted on
May 23rd, 2008 by
Keith
来源:不详
我将以介绍 /etc/passwd 文件开始,该文件定义了 Linux 系统上存在的所有用户。您可以通过输入“less /etc/passwd”来查看您自己的 /etc/passwd 文件。/etc/passwd 中的每一行定义一个用户帐户。这里有一个来自于我的 /etc/passwd 文件的示例行:
drobbins:x:1000:1000:Daniel Robbins:/home/drobbins:/bin/bash
您可以看到,这一行中有相当多的信息。实际上,每个 /etc/passwd 行由多个字段组成,每个字段用 : 隔开。
第一个字段:定义了用户名(drobbins)。
第二个字段:包含一个 x。在旧式的 Linux 系统上,该字段将包含一个用来认证的加密密码,但是事实上现在所有的 Linux 系统将这个密码信息存储在另一个文件中。
第三个字段:(1000)定义了与该特殊用户相关联的数字用户标识。
第四个字段:(1000)将用户与一个特殊组关联起来;在下面几屏中,我们将看到定义组 1000 的地方。
第五个字段:包含该帐户的文本描述 ― 在本例中,是用户的名称。
第六个字段:定义该用户的主目录。
第七个字段:指定用户缺省的 shell ― 当用户登录时,将自动启动的 shell。
/etc/passwd 技巧和窍门
您可能已经注意到,/etc/passwd 中定义的用户帐户比实际登录您系统的用户帐户多得多。
这是因为不同的 Linux 组件使用用户帐户来加强安全性。通常,这些系统帐户有一个小于 100 的用户标识(“uid”),这其中的很多系统帐户将像 /bin/false 这样的程序列为缺省的 shell。因为 /bin/false 程序什么也不做,而是返回一个错误码退出,这有效地阻止这些帐户被用作登录帐户 ― 他们只供内部使用。
/etc/shadow
这样,用户帐户本身在 /etc/passwd 中定义。Linux 系统包含一个 /etc/passwd 的同伴文件,叫做 /etc/shadow。该文件不像 /etc/passwd,只有对于 root 用户来说是可读的,并且包含加密的密码信息。我们来看一看 /etc/shadow 的一个样本行:
drobbins:34567890123456789012345678901:11664:0:-1:-1:-1:-1:0
每一行给一个特殊帐户定义密码信息,同样的,每个字段用 : 隔开
第一个字段:定义与这个 shadow 条目相关联的特殊用户帐户。
第二个字段:包含一个加密的密码。
第三个字段:自 1/1/1970 起,密码被修改的天数。
第四个字段:密码将被允许修改之前的天数(0 表示“可在任何时间修改”)。
第五个字段:系统将强制用户修改为新密码之前的天数(1 表示“永远都不能修改”)。
第六个字段:密码过期之前,用户将被警告过期的天数(-1 表示“没有警告”)。
第七个字段:密码过期之后,系统自动禁用帐户的天数(-1 表示“永远不会禁用”)。
第八个字段:该帐户被禁用的天数(-1 表示“该帐户被启用”)。
第九个字段:保留供将来使用 。
/etc/group
接下来,我们来看一看 /etc/group 文件,它定义了 Linux 系统上所有的组。这里有一个样本行:
drobbins:x:1000:
/etc/group 字段格式如下:
第一个字段:定义组名称。
第二个字段:是不再使用的密码字段(现在只是保留为 x)。
第三个字段:定义了这个特殊组的数字组标识。
第四个字段:定义是该组成员的所有用户。(上面的示例为空)
您将回想起样本 /etc/passwd 行引用的组标识为 1000。即使 /etc/group
组提示
关于用户和组相关联的一点提示:
在一些系统上,您将发现每个新的登录帐户与同名组(通常是标识号一样)相关联。
在其它系统上,所有登录帐户将属于单个用户组。在您管理的系统上,您使用的方法取决于您自己。为每个用户创建匹配组的好处是,通过将可信的朋友放在自己的个人组中,使用户能够更容易地控制对自己文件的访问权。
手工地添加用户和组
现在,我将为您展示怎样创建您自己的用户和组帐户。学习怎样完成这些工作的最好方法是,手工地将用户新添加到系统中。
为了开始学习,首先确保您的 EDITOR 环境变量设置为您喜欢的文本编辑器:
# echo $EDITOR
vim
如果不是,您可以通过输入这样的命令来设置 EDITOR:
# export EDITOR=/usr/bin/emacs
现在,输入:
# vipw
现在您应该发现自己在所喜欢的文本编辑器中,编辑器内 /etc/passwd 文件被装入,显示在屏幕上。
当修改系统 passwd 和 group 文件时,使用 vipw 和 vigr
命令非常重要。它们采用了额外的预防措施来确保您关键的 passwd 和 group 文件被恰当地锁定,使它们不会破坏。
编辑 /etc/passwd
既然您已经打开了 /etc/passwd 文件,则接着添加下面的代码行:
testuser:x:3000:3000:LPI tutorial test user:/home/testuser:/bin/false
我们刚刚添加了一个 UID 为 3000 的“testuser”用户。我们将他添加到 GID 为 3000 的组中,该组还未创建。
另一种做法是,如果愿意,我们还可以给这个用户分配 users 组的 GID。
这个新用户有一条注释为:LPI tutorial test user;该用户的主目录设置为 /home/testuser,出于安全的目的,该用户的 shell 设置为 /bin/false。如果我们正创建一个非测试帐户,那么我们可以将 shell 设置为 /bin/bash。OK,接着保存您所做的更改,然后退出。
编辑 /etc/shadow
现在,我们需要在 /etc/shadow 中给这个特殊用户添加一个条目。要这样做,输入:
vipw -s
您将会看到您喜欢的编辑器,它现在包含 /etc/shadow 文件。现在,接着复制一个现有用户帐户行(也就是有一个密码,并且长于标准系统帐户条目):
drobbins:34567890123456789012345678901:11664:0:-1:-1:-1:-1:0
现在,将所复制的代码行中的用户名改为您的新用户的名称,确保所有的字段(特别是密码的期限设置)设置为您喜欢的模式:
testuser:34567890123456789012345678901:11664:0:-1:-1:-1:-1:0
保存,然后退出。
设置密码
您将回到提示符。现在,是给您的新用户设置密码的时候了:
# passwd testuser
Enter new UNIX password: (enter a password for testuser)
Retype new UNIX password: (enter testuser’s new password again)
编辑/etc/group
既然 /etc/passwd 和 /etc/shadow 设置好了,现在该恰当配置 /etc/group 了。要这么做,输入:
# vigr
您的 /etc/group 文件将出现在您面前,准备好进行编辑。
现在,如果您选择给您的特殊的测试用户分配 users 缺省组,那么您不需要将任何组添加到 /etc/groups 中。但是,如果您选择给该用户创建新的组,接着添加下面的行:
testuser:x:3000:
保存,然后退出。
创建主目录
我们基本上已经完工。输入下面的命令来创建 testuser 的主目录。
# cd /home
# mkdir testuser
# chown testuser.testuser testuser
# chmod o-rwx testuser
我们用户的主目录现在已经到位,并且帐户已准备好可用。好的,基本就绪。
如果您想使用该帐户,您将需要使用 vipw 来将 testuser 的缺省 shell 改为 /bin/bash,使用户可以登录。
帐户管理实用程序
既然您知道怎样手工添加新帐户和组,我将要评论一下 Linux 下可用的各种省时的帐户管理实用程序。由于版面的限制,我将不深究描述这些命令的众多细节。请记住,通过查看命令的手册页,您总能够获得关于命令的更多信息。
我建议您花些时间来让您自己熟悉一下下面每一条命令。
newgrp
缺省情况下,用户创建的任何文件都被分配到 /etc/passwd 中所指定的用户的组。
如果用户属于其他组,他或她可以输入 newgrp thisgroup 来将当前缺省组的成员资格设置为组 thisgroup。然后,所创建的任何新文件将继承该组的成员资格。
chage
chage 命令用来查看和改变存储在 /etc/shadow 中的密码期限设置。
gpasswd
一个一般目的的组管理工具
groupadd/groupdel/groupmod
用来在 /etc/group 中添加/删除/修改组
更多的命令
useradd/userdel/usermod
用来在 /etc/passwd 中添加/删除/修改用户。这些命令还完成其它各种便利功能。要获取更多的信息,请参阅手册页。
pwconv/grpconv
用来将 passwd 和 group 文件转换为“新式”的 shadow 密码。事实上,所有 Linux 系统已经使用 shadow 密码,因此您应该不会需要使用这些命令。
pwunconv/grpunconv
用来将 passwd、shadow 和 group 文件转换成“旧式”的非 shadow 密码。您应该不会需要使用这些命令。
Leave a Reply
Pages:
Categories:
- blog
- ccnp
- Cisco
- Creative-Commons
- Dynamips
- DynamipsGUI
- Fedora Core
- firefox
- game
- huawei
- Internet
- IOS
- it
- linux
- Mdaemon
- Network
- SecureCRT
- skill
- tools
- Trendmicro
- trendspot
- ubuntu
