每一个用户都由一个惟一的身份来标识,这个标识叫做用户ID.系统中的每一个用户也至少需要属于一个"用户分组".同样,用户分组屯是由一个惟一的身份来标识的,该标识叫做用户分组ID(GID).每位用户的权限可以被定义为普遍用户或者根用户,普通用户只能访问其拥有的或者有权限执行的文件.根用户能够访问系统全部的文件和程序,根用户通常也被称为"超级用户"其权限是系统中最大的,可以执行任何操作.
 
用户和组文件
用户账号--passwd
/etc/passwd文件用于用户登录时校验用户登录名.加密的口令数据项,用户ID(UID),默认用户分组ID(GID),用户信息,用户登录子目录和登录后使用的shell.这个文件的每一行保存一个用户的资料,而用户资料的每一个数据项采用冒号":"分隔.如下
LOGNAME:PASSWORD:UID:GID:USERINFO:HOME:SHELL
通常UID为0这个特殊值的用户登录名为"root",从0到99的UID保留用做系统用户的UID.如果在/etc/passwd文件中有两个不同的入口项有相同的UID,则这两个用户对文件具有相同的存取权限.
  每一个用户都需要有地方保存专属于自己的配置文件,这需要让用户服务工作在自己定制的操作环境中以免改变其它用户定制的操作环境,这个地方就叫做用户登录子目录,在这个目录中,用户不仅可以保存自己的配置文件,还可以保存自己日常工作用到的各种文件.出于一致性考虑,大多数站点都从/home开始安排用户登录子目录.并把每个用户的子目录命名为其上机使用的登录名.
  当用户登录进入系统时,都有一个属于自己的操作环境,用户遇到的第一个程序叫做shell.在LINUX系统里,大多数shell都是基于文本的,LIUNX操作系统带有好几种SHELL供用户选用,用户可以在/etc/shells文件中看到它们中的绝大多数.用户可以根据自己的喜好来选用不同的SHELL进行操作,按照最严格定义,在上面的/etc/passwd文件中,每个用户的口令数据项中并没有定义需要运行某个特定的SHELL,其中列出的是这个用户上机后第一个运行的程序是哪个.
下面查看下/etc/passwd文件.
 
用户影子文件--shadow
LINUX使用不可逆的加密算法如DES来加密口令,所以***从密文是得不到明文的.文件的每行是8个冒号分割的9个域,如下:
username:passwd:lastchg:min:max:warn:inactive:expire:flag
解释一下:
username:用户登录名
passwd:加密的用户口令
lastchg:表示从1970年1月1日起到上次修改口令所经过的天数
min:表示两次修改口令之间至少经过的天数
max:表示口令还会有效的最大天数,如果是99999则表示永不过期
warn:表示口令失效前多少天内系统向用户发出警告
inactive:表示禁止登录前用户名还有效的天数
expire:表示用户被禁止登录的时间
flag:保留域,暂未使用
下面看其文件.
 
下面看用户组账号文件---group
内容如下
用户分组名:加过密的用户分组口令:用户分组ID号:以逗号分隔的成员用户清单
 
组账号文件--gshadow
其格式如下:
用户组名:加密的组口令:组成员列表
 
使用pwk和grpck命令验证用户和组文件
pwk用来验证用户账号文件(/etc/passwd)和影子文件(/etc/shadow)的一致性.其验证文件中的每一个数据项中每个域的格式和数据的正确性.如果发现错误,该命令将会提示用户对出现错误的数据项进行删除.
主要验证每个数据项是否具有:正确的域数目,惟一的用户名,合法的用户和组标识.合法的主要组群,合法的主目录,合法的登录SHELL.
显示用户原来的用户账号文件
然后进行编辑,在最后一行添加一项并不存在的数据项.再进行保存退出.
然后验证出系统并不存在super用户,提示要不要删除.
对于组账号同样如此
查看原文件.
增加一项并不存在的TEXT项.
可看见同样验证出来了,并删除.
使用命令行方式管理用户和组
使用useradd命令添加用户使用命令格式:useradd 选项 用户名
参数:-c 描述新用户账号,通常为用户全名.
-d: 设置用户主目录,默认值为用户的登录名,并放在/home目录下.
-D:创建新账号后保存为新账号设置的默认信息
-e:用YYYY-MM-YY格式设置账号过期日期.
-f inactivity:设置口令失效时间.为0时,口令失效后账号立即失效;为-1时,使该选项失效.
-g:设置基本组
-k:框架目录:设置框架目录,该目录包含用户的初始配置文件,创建用户时该目录下的文件都被复制到用户主目录下
-m:自动创建用户主目录,并把框架目录(默认为/etc/skel)下的文件复制到用户主目录下.
-M:不创建用户主目录
-r:允许保留的系统账号使用用户ID创建一个新账号.
-s shell类型:设定用户使用的登录SHELL类型
-u 用户ID:设置用户ID.
建立一个用户名为xiao,描述信息为ming,用户组为yang,登录shell为/bin/sh登录主目录为/home/xiao.
并指定密码.
这里并指定用户ID,账户过期日期.
 使用usermod命令修改用户信息
使用格式:usermod 选项 用户名
参数与上面的一样.
将用户you,的组改为buding,其用户ID改为5600.
使用userdel命令删除用户
格式为:userdel 选项 用户名
-r:删除账号时,连同账号主目录一起删除。
#userdel manager
使用groupadd命令创建用户组
使用格式:groupadd 选项 用户组名
-g gid: 组ID值
-o:配合上面的参数选项使用,可以设定不惟一的组ID值。
-r:此参数用来建立系统账号
-f:新增一个已经存在的组账号,系统会出现错误信息然后结束该命令执行操作,如果是这样的情况,不新增这个群组;如果新增的组所使用的GID系统已经存在。
创建一个GID为5425,组名为testbed的用户组。然后再次创建同样的组名,创建失败,可验证必须惟一。
使用groupmod命令修改用户组属性
使用格式:groupmod 选项 用户组名
参数:-g gid:组ID值。
-o:配合上面的参数使用
-n group_name:更改组名
使用groupdel命令删除用户组
这个命令比较简单
 
下面来看使用用户管理器管理用户和组。
打开开始/系统设置/用户和组群。
创建用户
点添加用户
输入相关信息,点确定
下面来修改用户属性
点用户右键选择属性
可看到登录SHELL有好几种
设置帐号过期时间
设置口令过期。
设置加入组群。
下面看下创建组群
点添加组群
确定
看创建好的属性
可修改组名
可加入用户