用户与组的分类
   Linux系统对用户分配如下:
   -系统管理员:root
   -普通用户:普通用户分为以下两种
              系统用户:系统用户通常是不可登陆的,执行某些服务及进程的帐号
              登录用户:一般用户,
   我们登录linux系统时,输入的是我们的帐号,但是linux系统并不会直接识别你的帐号,而是通过我们建立帐号时系统分配的ID号码,对于用户类型ID分配如下:
   -系统管理员ID:0 (root用户ID)
   -普通用户ID:1~65535,
          系统用户ID:1~499(CentOS 6),1 ~999(CentOS 7)
          登录用户ID:500~+(CentOS 6),1000~+(CentOS 7)   
   在建立用户帐号时,系统会为用户帐号分配至少两个ID,一个用户ID(UserID,简称UID),一个用户组ID(GroupID,简称GID),上面是UID,下面了解一下GID:
   -管理员组:0 (root组ID)
   -普通组:1~65535,
          系统组ID:1~499(CentOS 6),1 ~999(CentOS 7)
          非系统组ID:500~+(CentOS 6),1000~+(CentOS 7) 
   对于一个用户而言,只有唯一个UID,但是可以有多个不同的组,分别为主组和附加组,主组组名与用户名相同,且只有一个用户,也可以称为私有组。主组以外的组为附加组。

相关的配置文件
用户和组的相关配置文件如下:
   /etc/passwd: 用户帐号的相关信息
   /etc/group: 组帐号的相关信息
   /etc/shadow: 用户密码及相关属性
   /etc/gshadow: 组密码及相关属性
1
2
3
4
配置文档详解:
/etc/passwd:文件结构
[root@smartwy ~]# cat /etc/passwd | grep 'wangye' 
     wangye:x:1008:1008:samrtwy:/home/wangye:/bin/bash
1
2
 passwd文件以”:”将信息分为7字段,各字段意义如下:
      1字段:用户名称
     2字段:用户密码,早期密码就在这个字段,后因安全问题,改放到/etc/shadow
      3字段:UID,该帐号是登录用户,UID(CentOS7)分配为1000+
      4字段:GID
      5字段:对用户的说明信息,(注释)
      6字段:用户的家目录
      7字段:用户的shell
     

/etc/group:文件结构 
 [root@smartwy ~]# cat /etc/group | grep 'wangye'       
 wangye:x:1008:
1
2
   group文件以”:”将信息分为4字段,各字段意义如下:
     1字段:组名称
     2字段:用户组密码,因安全问题,改放到/etc/gshadow
      3字段:GID
      4字段:以此组为附加组的用户名称
     

/etc/shadow:文件结构 
 [root@smartwy ~]# cat /etc/shadow | grep 'wangye'       
 wangye:!!:17251:0:99999:7:::
1
2
   shadow文件以”:”将信息分为4字段,各字段意义如下:
     1字段:用户名称
     2字段:用户密码,该用户暂未设置密码
      3字段:最后一次变更密码的日期,从1970年1月1日开始计算
      4字段:密码变更锁定天数,与第3段相比锁定天数过后才可变更密码
      5字段:密码使用期限,与第3段相比在此天数内需要重设你的密码
      6字段:密码变更前警告期,与第5段相比密码快要到期时,系统会依据这个字段的天数设置发出”警告”
      7字段:密码过期宽限时间,在此天数内用户没有登录变更密码,那么该帐号的密码将会”失效”
      8字段:帐号失效日期,无论密码是否过期,这个帐号都不能再被使用
      9字段:保留字段
     
   建议:密码的复杂性策略
      1,使用数字,大写字母,小写字母及特殊符号中至少3种
      2,使用非规律密码且足够长
      3,定期更换
      

/etc/gshadow:文件结构 
 [root@smartwy ~]# cat /etc/gshadow | grep 'wangye'       
 wangye:!::
1
2
   gshadow文件以”:”将信息分为4字段,各字段意义如下:
     1字段:组名称
     2字段:用户组密码,该用户组暂未设置密码
      3字段:用户组管理者,缺省代表没有管理者
      4字段:组内用户列表,因为这是用户的私有组所以没有其他用户

用户和组管理命令
新增,变更与删除用户:useradd,passwd,chage,usermod,userdel
useradd:新建用户
  [root@smartwy ~]# useradd [OPTIONS] username
  [OPTIONS]选项参数如下:
      -u:指定UID
      -g:指定GID(此组需存在)
      -G:指定用户附加组,多个附加组需使用逗号分隔开(此组需存在)
      -c:指定注释信息
      -d:指定用户家目录
      -s:指定shell,可在/etc/shells文件里查看shell可用种类
      -r:创建系统用户
      -D:修改用户默认选项(修改的是/etc/default/useradd中选项)

passwd:添加密码
  [root@smartwy ~]# passwd [OPTIONS] username
  [OPTIONS]选项参数如下:
      -l:锁定指定用户密码
      -u:解锁指定用户密码
      -d:清除指定用户密码
      -e:终止用户密码
      -i:非活动期限
      -n:指定密码最短试用期
      -x:密码最长使用期限
      -w:提前多少天警告变更密码
      –stdin:echo “12345678” | passwd –stdin username,将12345678设定为username的密码,一般用于批量新建用户初始密码

chage:修改密码参数
  [root@smartwy ~]# chage [OPTIONS] username
  [OPTIONS]选项参数如下:
      -l:列出该用户的密码详细参数
      -d:修改shadow第3段(最后一次变更密码的日期)设置为0时,用户首次登录需要变更密码
      -m:修改shadow第4段(密码变更锁定天数)
      -M:修改shadow第5段(密码使用期限)
      -W:修改shadow第6段(密码变更前警告期)
      -I:修改shadow第7段(密码过期宽限时间)
      -E:修改shadow第8段(帐号失效日期)  

usermod:用户属性修改
  [root@smartwy ~]# usermod [OPTIONS] username
  [OPTIONS]选项参数如下:
      -u:指定UID
      -g:指定GID(此组需存在)
      -G:指定用户附加组,多个附加组需使用逗号分隔开(此组需存在)
      -c:指定注释信息
      -d:指定用户家目录
      -s:指定shell,可在/etc/shells文件里查看shell可用种类
      -r:创建系统用户
      -l:更改用户名
      -L:锁定用户,密码前添加”!”
      -U:解锁用户,去掉密码前的”!”

userdel:删除用户
  [root@smartwy ~]# userdel [OPTIONS] username
  [OPTIONS]选项参数如下:
      -r:删除用户家目录

新增,变更与删除组:groupadd,gpasswd,groupmod,groupdel
groupadd:新建组
  [root@smartwy ~]# groupadd [OPTIONS] groupname
  [OPTIONS]选项参数如下:
      -g:指定GID
      -r:创建系统组

gpasswd:组密码
  [root@smartwy ~]# gasswd [OPTIONS] groupname
  [OPTIONS]选项参数如下:
      -a user:将用户user添加进该组
      -d user:将用户user移除该组
      -A userlist:设置有组管理权限的用户列表

groupmod:组属性修改
  [root@smartwy ~]# groupmod [OPTIONS] groupname
  [OPTIONS]选项参数如下:
      -g:修改GID
      -n:修改组名称

groupdel:删除组
  [root@smartwy ~]# groupdel groupname

扩展id与su
id:查看用户相关ID信息
  [root@smartwy ~]# id [OPTIONS]… [USER]
  [OPTIONS]选项参数如下:
      -g:查看该组GID
      -u:查看该用户ID

su:切换用户
  [root@smartwy ~]# su [user[args]]
           非登录式切换,不会读取目标用户的配置文件
  [root@smartwy ~]# su - [user[args]]
           登录式切换,读取目标用户的配置文件
   注意:root切换其它用户无需密码,非root切换用户时需要密码