Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1799133
  • 博文数量: 600
  • 博客积分: 10581
  • 博客等级: 上将
  • 技术积分: 6205
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 10:13
文章分类
文章存档

2016年(2)

2015年(9)

2014年(8)

2013年(5)

2012年(8)

2011年(36)

2010年(34)

2009年(451)

2008年(47)

分类:

2009-10-13 14:29:40

      
            目标
            完成这一章,你能做以下事情:
            ※列出建立一个用户帐号的一、最少的要求
            ※了解/etc/passwd文件的每一个字段的含义
            ※了解/etc/group文件的每一个字段的含义
            ※创建,修改,和删除一个用户的帐号。
            ※启用和禁止一个用户的帐号
            1.1 用户与用户组—使用系统资源和数据
            为了使用系统的资源,用户首先要登录系统。为了控制其他人进入系统,你可以阻未授权的用户运行程序消耗系统资源,同样,你可以控制对存储在你系统中的数据的存取。
            系统中的用户被分成一个或多个用户组。一种典型的情况是:文件可以被一个组的用户存取,但是不能被用户组之外的用户存取。用户对文件和目录的存取权限都是基于他所属的组的定义。
            你为每一个会使用你的系统的用户分配一个用户名(或叫登录名)。你同样也能选择组名和决定那一个用户名被分配到那一个组。
            用户可以使用命令/usr/bin/id来检查自己的用户id和所属的组。
            1.2 用户帐号的定义
            用户登录一个系统,必须要有一个有效的用户名,用户id
            号,密码,和定义在/etc/passwd中的其他的帐号信息。用户可以被授权到其他的组,同过文件/etc/group。最后,大多数的用户在/home目录下都有一个home目录,在这个目录下,他们可以存储自己的文件和目录。
            你可以通过命令行 useradd,userdel,和usermod和手工用vi 编辑器来管理用户的帐号。
            1.3 /etc/passwd文件
            /etc/passwd文件中包含用户登录的必须的信息。文件的每一行代表系统中的每一个有效用户。所有的域以冒号(:)作为分割符。
            用户名
            ????用户名是用户在登录时候使用的命令。用户名的长度应在1到8个字符之间,第一个字符必须是字母。如果用户名超过8个字符,只有前8个字符有效。
            密码?????经过加密处理的口令。当用户使用passwd命令设置密码的时候,系统
            会对用户输入的口令进行加密。密码应该是6到8个字符,其中应该有一个数字或其他特殊字符。如果密码这个域为空,登录的时候就不需要密码。但这会使系统很容易被入侵。密码域为星号会使一个用户帐号失效,你键入的任何字符都不能被加密成为星号,所以,没有人可以使用这个帐号登录系统。
            用户ID ???系统中每一个用户都必须被分配一个用户ID号。ID 号0是为root保留
            的。UID号1-99是为系统其他预定义的帐号保留的。
            组ID 号 ? ?组ID号(GID)。这个号码对应/etc/group文件中一个行信息。
            ID 字符窜
            ??这是一个注释字段,你可以在这里加上关于这个用户的其他的信息。例如用户的全名,电话号码,部门,和门牌号,行打印缓冲系统和finger命令会使用这个字段中的内容。
            Home目录 ??当用户登录时所在的目录的绝对路径名。如这个目录不存在,或是无效,用户就不能登录系统。
            命令
            ????当用户登录系统时要执行的命令的绝对路径名,在典型的情况下,这个命令会是shell,通常使用的shell是/user/bin/sh,/usr/bin/ksh,和/usr/bin/csh。例如系统UID的shell是/sbin/sh,这是一个特殊的(POSIX)shell。如果这个字段为空,系统会默认为/usr/bin/sh。
            ??????命令字段不必都是一个shell,例如,你可以在/etc/passwd文件中创建一个条目
            ???date:rc70x.4.hgjdc:20:1::/:/usr/bin/date
            在这里命令字段为/usr/bin/date。如果使用date作为登录名,然后键入正确的密码,系统会运/bin/date命令。然后退出系统登录。
            注意;passwd文件的许可权限只能被设置为只读(r—r—r--)同时属主必须为root。
            编辑/etc/paswd文件
            当你正在用vi命令来编辑/etc/passwd文件时,一个用户试图更改他的密码,这个用户的更改不会写到这个文件中,为了避免这种情况出现,在编辑/etc/passwd文件时请使用vipw命令
            $vipw
            这个命令通过拷贝/etc/passwd文件为/etc/passwd.tmp文件,并对/etc/passwd文件进行锁定。如果这时有一个用户想要更改密码,他会被告之passwd文件正忙。当你使用完vipw,系统会进行一些检查,如果你的修改正确,临时文件会被移动到/etc/passwd中。否则,/etc/passwd文件会保持不能修改的状态。
            检查/etc/passwd文件
            使用/usr/sbin/pwck命令可以检查/etc/passwd文件的一致性。它会检查每一行的域的数目,登录的目录和登录执行的程序是否存在,验证登录名,用户ID和组ID。
            1.4 /etc/group 文件
            /etc/group文件被用来定义组。组的字段使用冒号(:)分割。
            组名 ????一个关于这个组的助记符。如果你对一个文件使用ll命令,你会看到在“组” 域中的名字会显示出来。
            密码???一般都没有使用,所以为空。如果你想要执行有权限的组,这个域可以为一个经过加密的组密码。
            组ID
            ???组ID(GID)。这个号码就是在文件/etc/passwd中的组ID字段中的号码。这个号码对组的成员共享。推荐系统管理员在创建组ID号的时候大于100,这样可以避免同当前和将来的系统需求冲突。
            组员列表:?组的成员的用户名的一个列表。在有的unix操作系统中,不是所有的组的成员都在/etc/group文件中列出。用户初始登录组是在/etc/passwd文件的第四个域中定义的。而不是在/etc/group
            中定义。
            请注意,一个用户可以同时属于不同的组,用户可以使用newgrp命令来切换到不同的组中去。
            $newgrp group_name
            这个新组成为用户的有效组。切换到新的组不会不会更改/etc/passwd文件中的关于用户的主组的定义。而仅仅会更改使用newgrp命令后,用户创建的任何文件的组的定义。不带任何参数执行newgrp名会返回这个用户在/etc/passwd文件中被分派的组。
            使用/usr/sbin/grpck命令可以检查/etc/group文件的一致性。这个命令可以检查每一行的域的数目,和是否所有的登录名都在/etc/passwd中存在。
            1.5 使用命令行管理用户帐号
            useradd,usermod,userdel
            groupadd,groupmod,groupdel
            管理帐号和组的一个方式是使用命令。useradd命令会在/etc/passwd和/etc/group中增加一行。也可以选择使用这个命令在增加用户的同时创建用户的home目录和从一个目录拷贝文件到用户的home目录下。
            语法;
            useradd [ -u uid [-o]] [-g group] [-G group [group]] [-d dir] [-s
            shell]
            [ -c command] –m [ -k skel dir]] login
            其中-o选项允许多个UID,-m选项使建立home目录。其中的许多的选项都是默认的。
            例子:
            1)
            为用户renay创建一个帐号,并且建立一个/home/renay的home目录。使用/etc/skel作为框架目录,/usr/bin/sh作为shell。并且使用下一个最高的UID。
            useradd –m –s /usr/bin/sh renay
            2)为名叫Tracy的用户创建一个帐号。Tracy的主组为staff,tracy同时也是pe和chemistry组的成员。创建一个home
            目录。剩下的所有的都使用默认值。
            Useradd –m –g staff – G pe,chemistry tracy
            显示useradd命令的默认值。
            useradd –D
            更改默认的组为其他的组
            useradd –D –g others
            使用userdel命令删除用户。语法为:
            userdel –r login
            -r选项会删除用户的home目录。 groupadd命令语法为:
            groupadd [-g gid [-o]] group
            例子:
            增加一个叫economics的组。使用大于ID号100,并且最接近100的有效的组ID号。
            groupadd economics
            1.6 使用命令行方式更改用户的密码
            任何用户(普通用户和超级用户)更改密码,都需要使用passwd命令。通常,用户都能更改自己的密码(但是没有人可以修改别人的密码)。当使用这个命令的时候,用户被提示输入现在的密码。然后再输入新的密码。然后系统会要求你再输入一次新密码。目的是为了验证的目的和避免输入错误。如果第二个密码同第一个密码不一致,密码不会被修改,并会退出到shell提示符下。
            如果用户忘记了他的密码,他必须寻求系统管理员的帮助。系统管理员可以通过passwd命令修改任何用户的密码。
            有一个选项在创建用户帐号的时候可以禁止用户修改他们的密码。在这种情况下,只有超级用户可以修改这个用户的密码。
            当更改或是分配一个用户的密码的时候请注意以下事情:
            密码必须包括至少6个字符。虽然可以超过6个字符,但只有前6个有有效。
            密码必须有两个字母(大写或小写字母)。至少有一个数字或特殊的字符。这种方式是为了使密码的安全考虑。
            注意:当你使用passwd命令的时候,旧的/etc/passwd文件的一个拷贝会存储为/etc/opasswd文件。
            你也可以用passwd命令来更改一个密码的时限。
            passwd –f –n min –x max name
            min和max都是以天为单位。-f选项会强迫用户在下一次登录的时候修改他的密码。
            例子:
            限制帐号fontana的密码的有效期限
            passwd -n 7 -x 35 fontana
            强迫用户buddy在下一次登录的时候修改他的密码:
            passwd –f buddy
阅读(1302) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~