一.用户和用户组     

    Linux用户和组的主要配置文件:

      /etc/passwd:用户及其属性信息(名称、UID、主组ID等)

      /etc/group:组及其属性信息

      /etc/shadow:用户密码及其相关属性

      /etc/gshadow:组密码及其相关属性  

1. /etc/passwd文件结构

[zhang@localhost ~]$ grep zhang /etc/passwd
zhang:x:500:500:zhang:/home/zhang:/bin/bash

    login name:登录用名(wang)

    passwd:密码(x)

    UID:用户身份编号(1000)

    GID:登录默认所在组编号(1000)

    GECOS:用户全名或注释

    home directory:用户主目录(/home/wang)

    shell:用户默认使用shell (/bin/bash)

2./etc/group文件结构

[zhang@localhost ~]$ grep zhang /etc/group
zhang:x:500:

    群组名

    群组密码

    GID

3./etc/shadow文件结构

[root@localhost /]# grep zhang /etc/shadow

zhang:$6$Vz/vlzvJ$iZKI7R7/OsdoMxGcn3sL8co2X50p4Nu.HApyLyTI0cdkd5cYNB0jJYJlOoaKUd6QqQf5oI2g48b1MTVGUOm.X1:17011:0:99999:7:::           

    登录用名

    用户密码:一般用sha512加密

    从1970年1月1日起到密码最近一次被更改的时间

    密码再过几天可以被变更(0表示随时可被变更)

    密码再过几天必须被变更(99999表示永不过期)

    密码过期前几天系统提醒用户(默认为一周)

    密码过期几天后帐号会被锁定

    从1970年1月1日算起,多少天后帐号失效。

4./etc/gshadow

[root@localhost /]# head -3 /etc/gshadow
root:::
bin:::bin,daemon
daemon:::bin,daemon

    用户组名

    密码列,开头为!表示无合法密码,所以无用户管理员

    用户组管理员的账号

    该用户组的所属账号


二.账号管理

   要实现用户的管理,要完成以下几个方面,用户账户的添加/删除与修改,用户口令的管理,用户组的管理.

1.useradd

   useradd[options] LOGIN

   选项:

     -u UID: [UID_MIN, UID_MAX]定义在/etc/login.defs

     -o 配合-u 选项,不检查UID的唯一性

     -g GID:指定用户登录组的GID或组名

     -c "COMMENT":给新用户添加备注

     -d HOME_DIR:指定用户的家目录,如果此目录不存在,则使用-m选项,可以创建家目录.

     -s SHELL: 指明用户的默认shell程序  可用列表在/etc/shells文件中

     -G GROUP1[,GROUP2,...]:指定用户所属的附加组,组必须事先存在

     -N 不创建私用组做主组,使用users组做主组

     -r 创建系统用户(CentOS 6: ID<500,CentOS 7: ID<1000)          

实例:

(1)创建用户gentoo,附加用户组为zhang,默认shell为/bin/csh,注释信息为"GentooDistribution"   

[root@localhost /]# useradd -G zhang -s /bin/csh -c "GentooDistribution" gentoo

(2)创建用户Tom,指定家目录为/usr/Tom

[root@centos7 ~]# useradd -d /usr/tom -m tom  (目录不存在可以用-m选项)

  userdel

  userdel 选项 用户名

  常用选项:

     -r:把用户的主目录一起删除

实例:

删除用户sam

 [root@centos7 ~]# userdel tom
[root@centos7 ~]# ls /home/
123  test  zhang  zhangx

注意:(删除/etc/passwd,/etc/shadow,/etc/group的记录),同时删除用户的主目录

  usermod

   usermod [ options ] LOGIN

   选项:

    - a:把用户追加到某些组中,仅与-G选项一起使用

    - c:修改/etc/passwd文件第五段comment

    - d:修改用户的家目录通常和-m选项一起使用

    - e:指定用户帐号禁用的日期,格式YY-MM-DD

    - f:用户密码过期多少天后采用就禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1

    - g:修改用户的gid,改组一定存

    - G:把用户追加到某些组中,仅与-a选项一起使用

    - l:修改用户的登录名称

    - L:锁定用户的密码

    - m:修改用户的家目录通常和-d选项一起使用

    - s:修改用户的shell

    - u:修改用户的uid,该uid必须唯一

    - U:解锁用户的密码,将!去掉

实例

用户密码在2016/8/1号失效

[root@centos7 ~]# usermod -e "2016-8-1" sam

把sam修改为tom

[root@centos7 ~]# usermod -l tom sam

  passwd[--stdin]

  选项:

    -l:是lock的意思,会将?etc/shadow第二列最前面加上!是密码失效

    -u:与l相对,是unlock的意思

    -S:列出密码相关参数,即shadow文件内的大部分信息

    -n:后面接天数,shadow的第四字段,多久不可修改密码

    -x:后面接天数,shadow的第五字段,多久内必须要改动密码

    -w:后面接天数,shadow的第6字段,密码过期前的警告天数

    -i:后面接日期,shadow的第七字段,密码失效日期

实例:

(1)查看tom账号,并让它失效

[root@centos7 ~]# passwd -S tom
tom PS 2016-07-31 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@centos7 ~]# passwd -l tom
Locking password for user tom.

(2)使用standard input 新建用户密码

[root@centos7 ~]# echo test |passwd --stdin tom
Changing password for user tom.
passwd: all authentication tokens updated successfully.