Linux用户:UserName/password
        UID:0-65535
            管理员:0
            普通用户:1-60000
                系统用户:
                    CentOS6: 1-499
                    CentOS7:1-999
                登录用户:
                    CentOS6: 500+
                    CentOS7: 1000+
    用户的基本组:
        用户的私有组;
    用户的附加组

Linux用户和组的相关的配置文件:
    /etc/passwd:用户名、UID、基本组等信息
    /etc/group:组名、GID、组内包含的用户;
    /etc/shadow:用户密码及相关属性;
    /etc/gshadow:组的密码及相关属性;

    /etc/passwd:
        name:password:UID:GID:GECOS:directory:shell

        登录名:x:UID:GID:comment:主目录:用户默认shell

    /etc/shadow:
        login name:encrypted password:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field

        $6$YNzGOv5VyXxmDU2n$PxariU7Ag0mBlzBoNLWUjubn9OBtoLJauXIfoRqQ1FtZt058FrQKJO6QVJTUXkP4LUKPsiH7ejWo8bg6c4RrC1
            6:加密算法


        单向加密:
            提取数据指纹;

            md5, sha1, sha224, sha256, sha384, sha512

            雪崩效应:
            定长输出:

        相对于Unix元年;
            1970年1月1号;

    /etc/group
        group_name:password:GID:user_list

密码的复杂性策略:
    1、使用数字、小写字母、大写字母、特殊字符四类中至少三类;
    2、足够长;
    3、使用随机密码;
    4、定期更换;

用户和组管理的相关命令:
        useradd、usermod、passwd、userdel
        groupadd、groupmod、gpasswd、groupdel
        chage, chsh, chfn
        id, w, who, whoami
        su

useradd命令:  useradd(选项)(参数)

useradd命令用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.

而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

选项:   

-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;

-d<登入目录>:指定用户登入时的启始目录;

-D:变更预设值;

-e<有效期限>:指定帐号的有效期限;

-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;

-g<群组>:指定用户所属的群组;

-G<群组>:指定用户所属的附加群组;

-m:自动建立用户的登入目录;

-M:不要自动建立用户的登入目录;

-n:取消建立以用户名称为名的群组;

-r:建立系统帐号;

-s:指定用户登入后所使用的shell;

-u:指定用户id。
参数:用户帐号名

实例:

1.默认值新建一个帐户,用户名为:mageedu

[root@localhost ~]# useradd mageedu
[root@localhost ~]# ll -d /home/mageedu
drwx------. 4 mageedu mageedu 4096 8月  30 23:54 /home/mageedu

[root@localhost ~]# grep mageedu /etc/passwd /etc/shadow /etc/group
/etc/passwd:mageedu:x:502:502::/home/mageedu:/bin/bash
/etc/shadow:mageedu:!!:16677:0:99999:7:::
/etc/group:mageedu:x:502:   <==默认会创建一个与帐号一模一样的用户组名

2.创建用户Oracle,所属附加组database和sql,ID号为3000, 家目录为/home/database

[root@localhost ~]# groupadd database  <==首先创建两个附加组
[root@localhost ~]# groupadd sql

[root@localhost ~]# useradd  -G database,sql -u 3000 -d /home/database Oracle

 

Groupadd命令

groupadd [选项] 参数

选项

-g:指定新建工作组的id;

-r:创建系统工作组,系统工作组的组ID小于500;

-K:覆盖配置文件“/ect/login.defs”;

-o:允许添加组ID号不唯一的工作组。

参数: 组名,指定新建工作组名称

实例:

1.新建一个用户组,名称为:mageedu

[root@localhost ~]# groupadd mageedu
[root@localhost ~]# grep mageedu /etc/group /etc/gshadow
/etc/group:mageedu:x:3001:
/etc/gshadow:mageedu:!::     #用户组的内容与这两个文件相关:/etc/group , /etc/gshadow

 

2.将刚才新建的mageedu组名称更改为Mygroup,GID为201.

[root@localhost ~]# groupmod -g 201 -n Mygroup mageedu

[root@localhost ~]# grep Mygroup /etc/group /etc/gshadow
/etc/group:Mygroup:x:201:
/etc/gshadow:Mygroup:!::


id:查看用户相关的id信息;
    id [OPTION]... [USER]
        -u: UID
        -g: GID
        -G: Groups
        -n: NAME

[root@localhost ~]# id Oracle
uid=3000(Oracle) gid=3000(Oracle) 组=3000(Oracle),503(database),504(sql)

[root@localhost ~]# id  <== 查看当前用户的id信息。
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

su:switch user, 切换用户或以其它用户的身份执行命令;
            切换方式:
                su USERNAME: 非完全切换;非登录式切换
                su - USERNAME或su -l USERNAME: 完全切换;登录式切换

            仅以指定用户的身份执行指定的命令:
                su - USERNAME -c 'COMMAND'

[root@localhost ~]# su wwg8708
[wwg8708@localhost root]$

[wwg8708@localhost root]$ su -   <==普通用户切换为root用户
密码:
[root@localhost ~]#

[root@localhost ~]# exit    <==离开su的环境
logout
[wwg8708@localhost root]$

[wwg8708@localhost root]$ su - -c"命令"    <=如果只是执行一个只有root才能进行的命令,且执行完毕就恢复原本的身份,则执行此命令,然后输入root密码。

使用root切换成为任何用户时,并不需要输入新用户的密码。

虽然su很方便,不过缺点是,当我的主机是多人管理的环境时,如果大家都要使用su 来初换成为root身份,那么不就每个人都知道root的密码,这样密码太多人知道可能会流传出去,很不妥当,怎办?

通过sudo来处理即可!

usermod:用户属性修改
            usermod [OPTION]... LOGIN
                -u UID
                -g GID
                -G GID[,GID,...]:修改用户所属的附加组;同时使用-a选项;
                -s SHELL
                -c 'COMMENT'
                -d HOME: 修改用户的家目录为新位置时,用户原来的文件是不会被移动至新家;-m选项可实现同时将其迁至新的家目录;
                -l LOGIN:

                -L:lock user
                -U: unlock user

实例:

1.修改用户mageedu的用户名为mageedu1

[root@localhost ~]# usermod -l mageedu mageedu1

 

usermod:用户属性修改
        usermod [OPTION]... LOGIN
            -u UID
            -g GID
            -G GID[,GID,...]:修改用户所属的附加组;同时使用-a选项;
            -s SHELL
            -c 'COMMENT'
            -d HOME: 修改用户的家目录为新位置时,用户原来的文件是不会被移动至新家;-m选项可实现同时将其迁至新的家目录;
            -l LOGIN:

            -L:lock user
            -U: unlock user

 

 

usermod:用户属性修改
        usermod [OPTION]... LOGIN
            -u UID
            -g GID
            -G GID[,GID,...]:修改用户所属的附加组;同时使用-a选项;
            -s SHELL
            -c 'COMMENT'
            -d HOME: 修改用户的家目录为新位置时,用户原来的文件是不会被移动至新家;-m选项可实现同时将其迁至新的家目录;
            -l LOGIN:

            -L:lock user
            -U: unlock user

实例:修改ma

usermod:用户属性修改
        usermod [OPTION]... LOGIN
            -u UID
            -g GID
            -G GID[,GID,...]:修改用户所属的附加组;同时使用-a选项;
            -s SHELL
            -c 'COMMENT'
            -d HOME: 修改用户的家目录为新位置时,用户原来的文件是不会被移动至新家;-m选项可实现同时将其迁至新的家目录;
            -l LOGIN:

            -L:lock user
            -U: unlock user

实例:

[root@localhost ~]# usermod -d /home/bak/ mageedu  #修改mageedu用户的家目录

[root@localhost ~]# usermod -e 12/31/2015 mageedu #修改用户的有效期

 

passwd:给用户添加密码
            passwd [OPTION] [UserName]

                -l: lock user
                -u: unlock user

                -n mindays: 最短使用期限;
                -x maxdays:默认为99999天;
                -w warndays:
                -i inactivedays:

                --stdin:从标准输出接收用户密码;

                    echo 'centos' | passwd --stdin centos

实例:

[root@localhost ~]# passwd mageedu1
更改用户 mageedu1 的密码 。
新的 密码:

[root@localhost ~]# passwd -d mageedu1
清除用户的密码 mageedu1。
passwd: 操作成功

 

userdel:删除用户
            userdel [-r] USERNAME
                -r:删除用户的同时删除其家目录;

实例:

[root@localhost ~]# userdel -r amdin  
[root@localhost ~]#

groupmod: 组属性修改
            groupmod [OPTION] GROUPNAME
                -n GROUP_NAME
                -g GID

实例:

[root@localhost ~]# useradd test
[root@localhost ~]# groupmod test -n test2 #将test组名换可test2

[root@localhost ~]# groupmod -g 1111 test2  #将test2的gid换成1111

 

gpasswd:设定组密码

实例:

[root@localhost ~]# gpasswd test2        #设置test2组密码
Changing the password for group test2
New Password:
Re-enter new password:
[root@localhost ~]#

 

newgrp:切换基本组为指定的组

[root@localhost ~]# newgrp test2  登录到test2群组

 

groupdel:删除组

[root@localhost ~]# groupdel tests

 

chage:密码失效是通过此命令来管理的。

  参数意思:
  -m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
  -M 密码保持有效的最大天数。
  -W 用户密码到期前,提前收到警告信息的天数。
  -E 帐号到期的日期。过了这天,此帐号将不可用。
  -d 上一次更改的日期
  -I 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
  -l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
 

[root@localhost ~]# chage -M 90 test #设置密码有效期为90天

finger  用 户名  查看用户信息

[root@localhost ~]# finger test
Login: test                       Name:
Directory: /home/test                   Shell: /bin/bash
Never logged in.
No mail.
No Plan.