红联Linux门户
Linux帮助

Linux帐号管理的passwd和shadow文件

发布时间:2011-07-01 15:21:06来源:Linux社区作者:linux使用者

  关于某个用户的帐号的管理,最重要的就是/etc/passswd和/etc/shadow;而关于用户群组的管理,最重要的就是/etc/group和/etc/gshadow两个文件。下面来介绍一下关于用户管理的/etc/passwd和/etc/shadow这两个个文件。


  /etc/passwd的构造

  它是一个纯文本文件,每行采用了相同的格式:

  name:password:uid:gid:comment:home:shell ,如下面这段:

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

  bin:x:1:1:bin:/bin:/bin/sh

  daemon:x:2:2:daemon:/sbin:/bin/sh

  .............


  说明:

  --- 在这个文件中,每一行代表一个帐号,有几行就代表在系统中有几个帐号

  --- 每一行使用“:”符合分割各项,共有7项,分别是:


  1、帐号名称

  2、帐号密码:此域中的口令(密码)是加密的,当用户登录系统时,系统对输入的口令采取相同的算法,与此域中的内容进行比较,如果正确则登录成功。如果此域内容为空,表明该用户登录时不需要口令;如果它的内容为x,表示有密码,且此域其实是密码存储的一个映射,密码真正存储在文件/etc/shadow中(几乎所有linux都用shadow文件来管理密码);如果内容是“*”,表示该用户有效但不能登录;如果是一串乱码,则这些乱码其实经过加密的用户密码(几乎现在所有的linux都不用这种方式保存密码了,而用shadow文件来保存)。

  3、UID:用户的ID,0表示是系统管理员,所以哪个帐号的UID是0表示她就是系统管理员;1~500是系统预留的ID;500~65535供一般用户使用,你可以为某个用户指定某个ID;linux系统的UID在1~65535之间的用户其实都是一样的,只是1~500是系统不建议你使用,作为预留而用做系统保留帐号。用户登录进系统后,系统通过该值,而不是用户名来识别用户。

  4、GID:用户群众的ID。

  5、用来保存用户的真实姓名和个人细节等对帐号的注释信息。

  6、用户根目录:默认新建用户的根目录是/home/yourIDname。

  7、用户登录默认使用的SHELL。


  /etc/shadow的构造

  为了系统的安全,linux对密码采用了“影子机制”,用户的密码被转存到/etc/shadow文件中,次文件只要root能读,而同时/etc/passwd的密码只保留x,这样最大限度保证密码的安全。

  /etc/shadow文件的每行是8个冒号分割的9个域,格式如下:

  username: passwd: lastchg: min: max: warn: inactive: expire: flag ,如下面这段:

  root:$1$xkigrtllfgw4rhrm5nwQn:11979:7:::

  bin:*:11979:0:99999:7:::

  ..................


  说明:

  和/etc/passwd一样,每行代表一个用户,使用符号“:”分割。

  1、username:用户名

  2、passwd:密码,如果为空,表示用户密码为空,如果是“*”,表示该用户有效但不能登录。

  3、lastchg:表示从1970年1月1日起到上次修改口令所经过的天数。

  4、min:表示两次修改口令之间至少经过的天数。

  5、max:表示口令还会有效的最大天数,如果是99999则表示永不过期。

  6、warn:表示口令失效前多少天内系统向用户发出警告。

  7、inactive:表示禁止登陆前用户名还有效的天数。

  8、expire:表示用户被禁止登陆的时间,其算法而3相同。

  9、flag:无意义,未使用,留做扩展。


  用户管理的几个命令

  useradd:添加用户

  adduser:添加用户

  passwd:为用户设置密码

  usermod:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;

  pwcov:同步用户从/etc/passwd 到/etc/shadow

  pwck:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;

  pwunconv:是pwcov的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;

  finger:查看用户注释信息的工具

  id:查看用户的UID、GID及所归属的用户组

  chfn:更改用户信息工具

  su:用户切换工具

  sudo:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo不需要root密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;

  visudo:visodo是编辑/etc/sudoers的命令;也可以不用这个命令,直接用vi来编辑/etc/sudoers 的效果是一样的。

  sudoedit:和sudo功能差不多。