2007-06-28
帐号管理
关键字: Linux 学习对于帐号管理,最重要的两个文件是/etc/passwd与/etc/shadow,这两个文件可以说是Linux中最重要的文件之一,如果没有这两个文件,您无法登入Linux。
passwd的构造
在这个文件中,每一行代表一个帐号,有几行就代表您的系统有几个帐号。不过,需要注意的是,其中很多帐号本来就是系统必要的(如bin,daemon,adm,nobody等),不要随意删除它们。
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/sh
daemon:x:2:2:daemon:/sbin:/bin/sh
adm:x:3:4:adm:/var/adm:/bin/sh
以上是Linux系统预设的几个帐号。请看第一行,即root的帐号。可以看出,每一行使用“:”符号分隔各项,共有七项,分别是:
- 帐号名称:帐号名称用于对应UID,例如root就是默认的系统管理员的帐号名称;
- 密码:早期的unix系统的密码就放在这个文件中,由于这样很容易造成数据被窃取,所以后来就将数据放到/etc/shadow中。在这里用一个x来表示密码,而真正的密码已经被转移到shadow这个加密后的文件了。
- UID:这就是用户识别码(ID),通常Linux对UID有几个限制,如下:
- 0:系统管理员。所以当您要设立另一个系统管理员帐号时,将该帐号的UID改成0即可
- 1--500:系统预留的ID。其实,1~65523之间的帐号没有什么不同,也就是说,除了0之外,其他的UID并没有什么不同,预设1~500给系统作为保留帐号只是一个习惯。
- GID:它与/etc/group有关。事实上,/etc/group与/etc/passwd差不多,只是它用来规范群组。
- 这个字段基本上没什么用途,只是用来解释这个帐号的意义。不过,如果使用finger程序,这个字段可以提供很多信息。
- 根目录:这是用户的根目录。例如:root的根目录就是/root,当root登录后,就马上转到/root中。如果想转到其他目录,就可以在这里更改,默认的用户根目录一般都是/home/yourIDname
- shell:所谓的shell是用来沟通用户与及其硬件的界面。我们通常使用/bin/bash这个shell进行指令的输入。有一个shell可以让用户无法登入,那就是:/bin/false。
由于/etc/passwd并不安全,人们后来将密码移到/etc/passwd文件中,并且在/etc/passwd中加入了很多限制参数。现在来了解下这个文件的构造:
root : $1$akladjfaldjlalfj/ : 11979 : 0 : 99999 : 7 : : :
bin : * : 11979 : 0 : 99999 : 7 : : :
daemon : * : 11979 : 0 : 99999 : 7 : : :
adm : * : 11979 : 0 : 99999 : 7 : : :
这就是shadow的形式,同样是以" :"作为分隔符号。共有9个字段,它们具有以下含义:
- 帐号名称:这和passwd相对应,和passwd的意义相同;
- 密码:这个才是真正的密码,而且是加密过的密码。如果密码栏 的第一个字符是“ * ”,表示这个帐号不会被用来登录。
- 上次更改密码的日期,这个字段记录了更改密码的最后日期。Linux计算日期的方法是以1970年1月1日作为1,1971年1月1日作为366,这个日期是累加的。因此,最近的2002年1月1日就是11689了。
- 密码不可被更改的天数:第四个字段记录了这个帐号的密码需要经过多少天才可以改变。如果是0,就表示密码随时可以更改;如果是其他的数字,则只能在规定的天数过后才可以更改密码。
- 密码需要重新变更的天数:由于害怕密码被某些人窃取而危害到整个系统的安全,所以安排了这个字段。您必须在这个时间内重新设定 密码,否则帐号将暂时失效。如果是99999,那就表示密码不需要重新输入。
- 密码变更期限快到前的警告期:当帐号的密码失效期快要到的时候,系统根据这个字段的设定发出警告,提醒用户"再过n天您的密码就要失效,请尽快重新设定你的密码“。
- 帐号失效期限:如果用户过了警告期而没有重新输入密码,使得密码失效,而该用户在这个字段限定的时间内有没有向root反映,让帐号重新启用,那么这个帐号将暂时失效。
- 帐号取消日期:这个日期与第三个字段一样,都是使用19700101作为日期设定方法。这个字段表示:这个帐号在此字段规定的日期之后将无法再被使用。
- 保留:最后一个字段是保留的,看以后有没有新功能加入。
认识帐号与密码是使用/etc/passwd与/etc/shadow,认识群组则是使用/etc/group与/etc/shadow。先来了解一下正两个文件的构造。
认识/etc/group
这个文件可以让您直接将帐号所要支持的群组加进来。例如你有一个帐号名为:myaccout,想让这个帐号支持root这个群组,可以直接在/etc/group中加入这个群组。
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
说明如下:
- 群组名称:就是群组的名称
- 群组密码:通常不需要设定,因为很少用到群组登入。不过,同样的,密码也被记录在/etc/gshadow中。
- 群组ID:就是所谓的GID
- 支持的帐号名称:这个群组中的所有帐号。要将某个帐号加入root这个群组,就在该群组后面加上该帐号名(不要有空格)。
root : : : root
bin : : : root,bin,daemon
daemon : : : root,bin,daemon
sys : : : root,bin,adm
adm : : : root,adm,daemon
一般来说,群组密码用来让那些非群组成员临时加入该群组。不过,因为牵涉到“密码”,不好管理,因此很少用。若想让对方加入,不如将对方加入该群组,用密码反而不方便。
发表评论
最新评论
-
工作两年了,发发牢骚
zpple 写道不赞成做技术,想发展就不要做技术,做上了技术就要跳到一个大公司, ...
-- by rxgp02a -
工作两年了,发发牢骚
yanshiyi 写道rxgp02a 写道个人感觉,谁的技术也不是白来的,同样的 ...
-- by rxgp02a -
工作两年了,发发牢骚
不赞成做技术,想发展就不要做技术,做上了技术就要跳到一个大公司,盯着一个项目组, ...
-- by zpple -
工作两年了,发发牢骚
rxgp02a 写道个人感觉,谁的技术也不是白来的,同样的时间别人进步比你快,那 ...
-- by yanshiyi -
工作两年了,发发牢骚
个人感觉,谁的技术也不是白来的,同样的时间别人进步比你快,那是因为别人比你努力, ...
-- by rxgp02a







评论排行榜