Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19726364
  • 博文数量: 679
  • 博客积分: 10495
  • 博客等级: 上将
  • 技术积分: 9308
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-18 10:51
文章分类

全部博文(679)

文章存档

2012年(5)

2011年(38)

2010年(86)

2009年(145)

2008年(170)

2007年(165)

2006年(89)

分类: LINUX

2006-11-22 09:15:09

Reference:

A.        鸟哥的 Linux 私房菜-基础学习篇    $13账号管理

B.        Red Hat Linux 9.0 基础教程        $13管理用户

C.        Linux 基础教程(1)操作系统基础     $11 账号管理

 

 

1,账号管理

登录过程

    1.   先找寻 /etc/passwd 里面是否有这个账号?如果没有则跳出,如果有的话则将该账号对应的 UID ( User ID ) GID ( Group ID )读出来,另外,该账号的家目录与 shell 设定也一并读出;
    2. 再来则是核对密码表啦!这时 Linux 会进入 /etc/shadow 里面找出对应的账号与 UID,然后核对一下你刚刚输入的密码与里头的密码是否相符?

如果一切都 OK 的话,就进入 Shell 控管的阶段啰!

 

·         UID:这个就是使用者识别码(ID)啰!通常 Linux 对于 UID 有几个限制需要说给您了解一下:

o        0 系统管理员,所以当你要作另一个系统管理员账号时,你可以将该账号的 UID 改成 0 即可;

o        1~500 保留给系统使用的ID,其实 1~65534 之间的账号并没有不同,也就是除了 0 之外,其它的 UID 并没有不一样,预设 500 以下给系统作为保留账号只是一个习惯。这样的好处是,以 named 为例,这个程序的预设所有人 named 的账号 UID 25 ,当有其它的账号同样是 25 时,很可能会造成系统的一些小问题!为了杜绝这样的问题,建议保留 500 以前的 UID 给系统吧!

500~65535 给一般使用者用的!

 

/etc/passwd 的格式如下:

其中第5列是说明,一般对finger有用, /sbin/nologin表示不能登录

root@Meil sda1]# vi /etc/passwd

 

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

 

/etc/shadow的格式如下:

如果是在密码栏的第一个字符为『 * 』或者是『 ! 』,表示这个账号并不会被用来登入的意思。

[root@Meil sda1]# vi /etc/shadow

 

root:$1$RwncvPop$qfQLAUu68mlq6SZGW1fyl/:13237:0:99999:7:::

bin:*:12594:0:99999:7:::

daemon:*:12594:0:99999:7:::

adm:*:12594:0:99999:7:::

lp:*:12594:0:99999:7:::

sync:*:12594:0:99999:7:::

shutdown:*:12594:0:99999:7:::

halt:*:12594:0:99999:7:::

mail:$1$VyKWowZJ$zCw3z1I.uJTWT3lau9ofd.:13473:0:99999:7:::

news:*:12594:0:99999:7:::

uucp:*:12594:0:99999:7:::

operator:*:12594:0:99999:7:::

games:*:12594:0:99999:7:::

gopher:*:12594:0:99999:7:::

ftp:*:12594:0:99999:7:::

 

 

  1.  
  2. 最近更动密码的日期:这个字段记录了『更动密码的那一天』的日期, 不过,很奇怪呀!在我的例子中怎么会是 12959 呢?呵呵,这个是因为计算 Linux 日期的时间是以 1970 1 1 日作为 1 ,而 1971 1 1 日则为 366 啦! 所以这个日期是累加的呢!得注意一下这个资料呦!那么最近的 2005 1 1 日就是 12784 啦,了解了吗?
  3. 密码不可被更动的天数: 第四个字段记录了这个账号的密码需要经过几天才可以被变更!如果是 0 的话, 表示密码随时可以更动的意思。这的限制是为了怕密码被某些人一改再改而设计的!如果设定为 20 天的话,那么当你设定了密码之后, 20 天之内都无法改变这个密码呦!
  4. 密码需要重新变更的天数: 由于害怕密码被某些『有心人士』窃取而危害到整个系统的安全,所以有了这个字段的设计。 你必须要在这个时间之内重新设定你的密码,否则这个账号将会暂时失效。 而如果像上面的 99999 的话,那就表示,呵呵,密码不需要重新输入啦! 不过,如果是为了安全性,最好可以设定一段时间之后,严格要求使用者变更密码呢!
  5. 密码需要变更期限前的警告期限:当账号的密码失效期限快要到的时候, 就是上面那个『必须变更密码』的那个时间时, 系统会依据这个字段的设定,发出『警告』言论给这个账号,提醒他『再过 n 天你的密码就要失效了,请尽快重新设定你的密码呦!』,如上面的例子,则是密码到期之前的 7 天之内,系统会警告该用户。
  6. 密码过期的恕限时间:如果用户过了警告期限没有重新输入密码, 使得密码失效了,也就是说,你在『必须变更密码的期限前,并没有变更你的密码!』 那么该组密码就称为『失效的密码』啰~怎么办?没关系,还有这个字段的天数设计啊~ 意思就是说,当密码失效后,你还可以用这个密码在 n 天内进行登入的意思。 而如果在这个天数后还是没有变更密码,呵呵!那么您的账号就失效了!无法登入!
  7. 账号失效日期:这个日期跟第三个字段一样,都是使用 1970 年以来的总日数设定。这个字段表示: 这个账号在此字段规定的日期之后,将无法再使用。 这个字段会被使用通常应该是在『收费服务』的系统中, 你可以规定一个日期让该账号不能再使用啦!

保留:最后一个字段是保留的,看以后有没有新功能加入。

认识 /etc/group /etc/gshadow 档案

·  /etc/group

这个档案就是在记录 GID 与群组名称的对应了~我的 /etc/group 内容有点像这样:

root:x:0:root

bin:x:1:root,bin,daemon

daemon:x:2:root,bin,daemon

sys:x:3:root,bin,adm

也是以冒号『:』作为字段的分隔符,共分为四栏,每一字段的意义是:

  1. 群组名称:就是群组名称啦!
  2. 群组密码:通常不需要设定,因为我们很少使用到群组登入! 不过,同样的,密码也是被纪录在 /etc/gshadow 当中啰!
  3. GID:就是群组的 ID 啊~
  4. 支持的账号名称:加入这个群组里面的所有的账号, 我们知道,一个使用者是可以加入多个群组的。举例来说,如果我想要让 dmtsai 也加入 root 这个群组,那么在第一行的最后面加上『,dmtsai』,注意不要有空格, 使成为『 root:x:0:root,dmtsai』就可以啰~

·  有效群组(effective group)与初始群组(initial group)

/etc/passwd 里面的第四栏GID是初始群组(initial group)

groups查看到的第一个组是有效群组(effective group)

可以使用newgrp 来改变有效群组(effective group):

 

[mail1@Meil mail1]$ groups

mail wheel

 

[mail1@Meil mail1]$ newgrp wheel

[mail1@Meil mail1]$ groups

wheel mail

同时切换到了新的shell

 

 

 


·  useradd

 

[root@linux ~]# useradd [-u UID] [-g initial_group] [-G other_group] \

>  -[Mm] [-c 说明栏] [-d home] [-s shell] username

参数:

-u  :后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个账号;

-g  :后面接的那个群组名称就是我们上面提到的 initial group 啦~

      group ID (GID) 会被放置到 /etc/passwd 的第四个字段内。

-G  :后面接的群组名称则是这个账号还可以支持的群组。

      这个参数会修改 /etc/group 内的相关资料喔!

-M  :强制!不要建立使用者家目录

-m  :强制!要建立使用者家目录!

-c  :这个就是 /etc/passwd 的第五栏的说明内容啦~可以随便我们设定的啦~

-d  :指定某个目录成为家目录,而不要使用默认值;

-r  :建立一个系统的账号,这个账号的 UID 会有限制 (/etc/login.defs)

-s  :后面接一个 shell ,预设是 /bin/bash 的啦~

范例:

 

范例一:完全参考默认值建立一个使用者,名称为 vbird1

[root@linux ~]# useradd vbird1

[root@linux ~]# ls -l /home

 

drwxr-xr-x   3 vbird1 vbird1 4096 Aug 30 17:33 vbird1

[root@linux ~]# grep vbird1 /etc/passwd /etc/shadow /etc/group

/etc/passwd:vbird1:x:502:502::/home/vbird1:/bin/bash

/etc/shadow:vbird1:!!:13025:0:99999:7:::

/etc/group:vbird1:x:502:

# 同时也要注意到,使用 useradd 新增使用者时,这个使用者的 /etc/shadow

# 密码栏会是不可登入的 ( !! 为开头),因此还需要使用 passwd

# 来给予 vbird1 密码后,才算新增完毕!

 

这个指令至少可能会更动到的地方有:

  • /etc/passwd
  • /etc/shadow
  • /etc/group
  • /etc/gshadow
  • /home/username

 

 

 

groupadd -g 902 -f nms

useradd -g nms -G wheel -u 902 nmsuser 2>/dev/null

groupadd -g 901 -f bbca

useradd -g bbca -G wheel -u 901 bbca 2>/dev/null

 

 

建立预设的账号:
基本设定就在 /etc/login.defs /etc/default/useradd 这两个档案

 

当你建立一个名为 testing 的账号时,预设的家目录会是『 /home/testing 』这个目录,而这个目录的内容就是由 /etc/skel copy 过去的!所以『当你想要让使用者的预设家目录内容更动时,可以直接将要更动的数据写在 /etc/skel 当中

阅读(3385) | 评论(0) | 转发(0) |
0

上一篇:2006-11-21 流水帐

下一篇:NTP Config Guide

给主人留下些什么吧!~~