Linux中用户管理笔记

来源:互联网 发布:单片机项目承接 编辑:程序博客网 时间:2024/06/05 18:13
       Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也能帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和用户口令。用户在登录时键入正确的用户名和口令后,才能进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
<1>用户账号的添加、删除和修改。
<2>用户口令的管理。

<3>用户组的管理。

   在linux中系统中,它并不认识帐号名称。它认识的是我们的帐号ID,帐号ID保存在/etc/passwd文件中。我们在登录linux主机时,在输入完帐号和密码时,linux会先查找/etc/passwd文件中是否有这个帐号,如果没有则跳出,如果有的话,他会读取该帐号的user IDgroup ID同时该帐号的根目录和shell也读了出来。然后在去核对密码表,在/etc/shadow中找出我们刚刚输入的帐号和userID,核对我们输入密码是否正确。一切正确我们可以登录到当前用户shell。那么,我们首先了解一下用户帐号文件。

《一》用户管理文件详解

1./etc/passwd


我们首先看第一行root这一行,一共有七项,每一项使用:分开,他们代表的意思如下:


帐号名称:帐号名称由于对应用户ID,这个是系统默认用户root超级管理员,在同一个系统帐号名称是唯一的,长度根据不同的linux系统而定,一般是8位。
密码:由于系统中还有一个/etc/shadow文件用于存放加密后的口令,所以在这里这一项是“x”来表示,如果用户没有设置口令,则该项为空。如果passwd字段中的第一个字符是“*”的话,那么,就表示该账号被查封了,系统不允许持有该账号的用户登录。
用户ID:这个是系统内部用于来识别不同的用户的,不同的用户识别码不同,其中用户ID有以下几种:
0代表系统管理员,如果你想建立一个系统管理员的话,可以建立一个普通帐户,然后将该账户的用户ID改为0即可。1-500系统预留的ID,500以上是普通用户使用。
组ID:其实这个和用户ID差不多,用来规范群组,他与/etc/group有关。
描述信息:这个字段几乎没有什么作用,只是用来解释这个帐号的意义。一般常见的是用户全名信息。-
用户根目录:就是用户登录系统的起始目录,用户登录系统后将首先进入该目录。root用户默认的是/root,普通用户的是/home/用户名。
用户登录shell:就是用户登录系统时使用的shell,关于shell我们会在以后专门的研究一下。
通常我们可以使用vi编辑这个文件,也可以使用vipw命令对/etc/passwd对这个用户帐户文件进行编辑,使用的编辑器是vi。

2./etc/shadow

   在早期的unix操作系统中,用户的帐号信息和口令信息都保存在passwd文件中,尽管系统已经对口令进行了加密,并且以密文的方式保存在passwd文件中,但是由于passwd文件对于系统中的所有用户是可读的,口令比较容易破解,存在较大的安全隐患。现在使用“shadow”文件保存密文的用户口令,使用passwd文件保存用户帐号其它信息。“shadow”文件只有管理员用户才可以读取其中的内容。由于这个文件可能被破解,所以一定不要将该文件内容泄露给他人,保证系统安全。


同样,我们还是分析第一行,一共有九项,分别说明一下:


帐户名称:和passwd对应,和passwd的意思相同。
密码:这才是真正的密码,并且已经加密过了,只能看到一些特殊符号。需要注意的是这些密码很难破解,但是不等于不能。还有密码栏的第一个字符为“*”表示这个用户不用来登录,如果那个用户不想让他登录了,可以在他前面加个星;第一个字符为“!”号表示该用户被禁用,一般新创建的账号后还未设置密码该账号就是禁用状态,使用“!!”表示;第一个字符为“空”的话,代表该用户没有口令,登录时不需要口令。
上次改动密码的日期:这段记录了改动密码的最后日期,为什么是13798呢?这是因为linux计算日期的方法是以1970年1月1日作为1,1971年1月1日就是366,依次类推到我修改密码的日期表示为13798了。
密码不可被改动的天数:这个字段代表要经过多久才可以更改密码。如果是“0代表密码可以随时更改。
密码需要重新更改天数:由于害怕密码被人盗取而危害到整个系统的安全,所以安排了这个字段,你必须在这个时间内重新修改密码,否则这个帐号将暂时失效。上面的99999,表示密码不需要重新输入,最好设定一段时间修改密码。确保系统安全。
密码变更期期限快到前的警告期:当帐号的密码失效期限快到时,系统依据这个字段的设定发出警告,提醒用户“再过n天您的密码将过期,请尽快重新设定密码。默认的是七天。
帐号失效期:如果用户过了警告期没有重新输入密码,使得密码失效,而该用户在这个字段限定的时间内又没有向管理员反映,让帐号重新启用,那么这个帐号将暂时失效。
帐号取消日期:这个日期跟第三个字段一样,都是使用1970年以来的日期设定方法。这个字段表示:这个帐号在此字段规定的日期之后将无法再使用。这个字段通常用于收费服务系统中,可以规定一个日期让该帐号不能再使用。
保留:最后一个字段是保留的,看以后有没有新功能加入。
3. /etc/group查看一下这个文件

我们还是分析第一行,一共有四项,依次为:

群组名称:就是群组的名称了。
群组密码:通常不需设定,因为我们很少使用群组登录。不过这个密码也被记录在/etc/shadow中了。
群组ID:也就是组ID了。
支持帐号的名称:这个群组的所有帐号。如果你想让用户qiuri也属于root这个群组,就在第一行最后加上“,       qiuri”注意添加的时候没有空格。
通常我们使用vi编辑这个文件,也可以使用vigr这个命令编辑,等同于使用vi /etc/group编辑。

《二》用户管理命令

1、添加新的用户账号使用useradd命令,语法如下:

其中各选项含义如下:
       -c comment 指定一段注释性描述。
       -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,能创建主目录。
       -g 用户组 指定用户所属的用户组。
       -G 用户组,用户组 指定用户所属的附加组。
       -s Shell文件 指定用户的登录Shell。
       -u 用户号 指定用户的用户号,如果同时有-o选项,则能重复使用其他用户的标识号。
       -p这个命令是需求提供md5码的加密口令,普通数字是不行的。
      EG:
(1)最简单添加用户:


添加完成后查看passwd、shadow和group文件:

(2)复杂的添加用户
此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用           户主目录所在的父目录)。

此命令新建了一个用户gem,该用户的登录Shell是/bin/sh,他属于group用户组,同时又属于adm和root用户组,    其中group用户组是其主组。这里可能新建组:groupadd group 及 groupadd adm;增加用户账号就                在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件,如/etc/shadow,/etc/group等。
   2、删除用户账号管理userdel
如果一个用户账号不再使用,能从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删     除,必要时还要删除用户的主目录。删除一个已有的用户账号使用userdel命令,格式如下:
    userdel 选项 用户名
    常用的选项是-r,他的作用是把用户的主目录一起删除。

   此命令删除用户sam在系统文件(主要是/etc/passwd,/etc/shadow,/etc/group等)中的记录,同时删除用户的    主目录。
  3、修改帐号usermod

    修改用户账号就是根据实际情况更改用户(chgrp是针对文件而言)的有关属性,如用户号、主目录、用户组、登录    Shell等。
   修改已有用户的信息使用usermod命令,格式如下:

   usermod [选项] 用户名[只有终极管理员才有权限修改帐号名,如果用sudo命令来对普通帐号授权也行]
   常用的选项包括-c,-d,-m,-g,-G,-s,-u,-o等,这些选项的意义和useradd命令中的相同,能为用户指定新的资源    值。另外,有些系统能使用如下选项:
   -l  新用户名
   这个选项指定一个新的账号,即将原来的用户名改为新的用户名。 

    此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。
     
     此命令是改动用户zte1所属的组为cheng这个组
   4、查看帐号属性
     格式: id user1  显示user1的uid和gid ,缺省为当前用户的id信息 
     
  

<三>用户口令管理

用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,是被系统锁定的,无法使用,必须为   其指定口令后才能使用,即使是空口令。指定和修改用户口令的Shell命令是passwd。终极用户能为自己和其他用户指定口令,普通用户只能修改自己的口令。命令的格式为:
      passwd [选项] 用户名
       可使用的选项:
       -l 锁定口令,即禁用账号。
       -u 口令解锁。
       -d 使账号无口令。
       -f 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。
     例如:假设当前用户是sam,则下面的命令修改该用户自己的口令:
      $ passwd
     Old password:******
     New password:*******
     Re-enter new password:*******
如果是终极用户,能用下列形式指定任意用户的口令:
     # passwd sam
     New password:*******
    Re-enter new password:*******
    普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再需求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而终极 用户为用户指定口令时,就不必知道原口令。为了安全起见,用户应该选择比较复杂的口令,最佳使用不少于8位的口令,口令中包含有大写、小写字母和数字,并 且应该和姓名、生日等不相同。
    为用户指定空口令时,执行下列形式的命令:
    # passwd -d sam
    此命令将用户sam的口令删除,这样用户sam下一次登录时,系统就不再询问口令。
     passwd命令还能用-l(lock)选项锁定某一用户,使其不能登录,例如:
     # passwd -l sam


0 0
原创粉丝点击