用户和组管理 :
    注 : 实现资源分配的机制 
    Authentication : 认证,验证用户身份是否合法或者验证用户是否有权使用资源,但并不能具体确定用户可以使用那些资源以及可以使用多少资源
    Authorization : 授权,Linux中一切皆文件,而正是通过文件上某些元数据的修改,以实现对用户的授权
    Audition/Accounting : 审计,审核用户权利的使用是否合理
    属主(owner) : 即文件归谁所有
    属组(group) : 为linux上一组相似用户建组,并以组为单位进行授权
                  1,将属组所拥有的权限与属组内的用户建立关联
                  2,为数组添加新的用户
    Linux用户(Username)
        UID : linux以数字标识和追踪用户身份
        管理员用户 : root,0
        普通用户 : 1-65535
            系统用户 : CentOS 6 : 1-499;CentOS 7 : 1-999,对守护进程获取资源进行的权限分配
            普通用户 : CentOS 6 : 500+;CentOS 7 : 1000+,交互式登陆
        linux的安全上下文 :
            进程 : process,运行中的程序
            注 : 某个进程是在以发起者的身份在运行,因此发起者的身份决定了进程所能够访问的资源的权限,进程作为发起者的动作,其本身并没有任何区别,区别在于发起者的身份
                 决定了动作能否执行以及执行的程度
        linux组的类别 :
            用户的基本组(主组) : 即用户的基本或主要身份,用户拥有的大部分或主要权限都集中在在这个组中
            用户的额外组(附加组) : 用户的额外身份,主要集中了用户的少有的特殊权限
            私有组 : 组名同用户名,且组中只有一个用户,创建新用户时,未指定用户的基本组,均默认为用户创建私有组
        linux用户和组的相关配置文件 :
            /etc/passwd : 用户及其属性信息
                文件组织格式 :
                    name : password : UID : GID : GECOS : directory : shell
                    用户名 : 密码 : UID : GID : 用户的完整信息(如家庭住址,电话号码等,信息多元时,以","分隔) : 用户的家目录 : 为用户指定的默认shell
                    注: 密码字段中,并未真正存储用户密码,而仅仅只是以一个占位符占位而已
            /etc/group : 组及组属性信息
                文件组织格式 :
                    group_name : password : GID : user_list
                    组名 : 组密码 : GID : 以该组为附加组的用户列表(用户多元时,以","分隔)
                    注 : 组密码字段中,并未真正存储密码,仅仅只是以一个占位符占位而已
            /etc/shadow : 用户密码及其相关属性信息
                文件组织格式 :
                    用户名 : 加密后的密码 : 最近一次更改密码的时间 : 密码的最小使用期限 : 密码的最大使用期限 : 密码的警告时间段 : 密码的禁用期 : 账号的过期日期 : 保留字段
                加密机制 : 
                    加密 : 明文 -> 密文
                    解密 : 密文 -> 明文
                    单向加密 : 提取数据指纹,数据与数据指纹之间一一对应,数据不变,数据指纹就不会变,但无法根据数据指纹还原数据
                    加密算法 :
                        md5 : message digest(摘要),128bits
                        sha1 : secure hash algorithm,160bits
                        sha224 : 224bits
                        sha384 : 384bits
                        sha256 : 256bits
                        sha512 : 512bits
                    雪崩效应: 明文的微小改变,就会导致密文的巨幅改变,目的在于防止根据密文的相似度逆推明文的相似度
                    定长输出 : 只要加密算法一样,最终输出的密文长度就不会改变
                    注 : 为避免多个用户输入的密码相同,导致一个用户可以根据自己的密文推出其他用户的密码,因此系统会自动在用户密码的后面加入一串随机数,联合用户密码生成密文
                         每次在用户登陆时,都会在用户密码后,加入该随机数,完成用户的认证
                    密码结构 : $加密方法及版本$杂质$密码密文
                    密码的复杂性原则 : 
                        1,至少要使用数字,小写字母,大写字母,特殊字符中的三种
                        2,要足够长
                        3,使用随机密码
                        4,定期更换,不要使用最近使用过的密码
         =======================================================================================================================================================================
         用户和组相关的管理命令 :
             用户创建 : useradd 
                 useradd login_name
                     -u UID : 指定用户UID,[UID_MIN,UID_MAX],定义在/etc/login.defs文件中,默认创建的用户UID为最近一次创建的用户UID加一
                     -g GID/group_name : 指定用户所属的基本组,可为基本组的组名,也可为基本组的GID,但组必须事先存在
                     -G GID : 为用户指定附加组,组多元时,以都“,”隔开
                     -c,--comment “COMMENT” : 为用户指定详细信息,信息多元时,以“,”,分隔
                     -d /path/to/home_dir : 指定用户家目录
                     -s SHELL : 为用户指定默认shell,/etc/shells:保存有可用shell列表
                     -r : 创建系统用户,CentOS 6 : 1-499,CentOS 7 : 1-999
                     useradd -D : 配合上述选项使用,修改不给任何选项,创建用户时的默认设置,仅对当前shell进程,当前会话有效
                     
             组创建 :groupadd
                 groupadd group_name
                     -g GID : 指定组ID,[GID_MIN,GID_MAX],定义在/etc/login/defs文件中
                     -r : 创建系统组,CentOS 6:1-499;CentOS : 1-999
                =====================================================================================================================================
                id : 显示用户的id信息
                    -u : 仅显示用户UID
                    -g : 仅显示基本组GID
                    -G : 显示用户基本组和附加组信息
                    -n : name,显示用户及组名,而非组或用户id
                =========================================================================================================================================
                su : 以另一个用户身份执行命令或实现用户之间切换
                    切换用户的方式 : 
                        不完全切换 : 即暂时获得其他用户权限,但同时用户当前用户的权限,并不会读取目标用户的配置文件
                            su user_name
                        完全切换 :即彻底变成另外一个用户,取得另外一个用户的权限,但仅拥有另一个用户的权限,不再拥有当前用户的权限,会读取目标用户的权限
                             su - user_name
                        注 : root用户切换到其他用户不需要密码,但普通用户切换到其他用户需要密码
                    以其他用户身份执行命令 : 
                        su [-] -c 'COMMAND'
                     选项:
                         -l : 登录式切换,即完全切换
                ============================================================================================================================================
                usermod : 修改用户属性
                    usermod [option]... user_name
                        -u UID : 新的UID
                        -g GID : 新的基本组
                        -G GROUP,... : 新的附加组,用户原有的附加组将会覆盖,如果要保留原有附加组,可符合选项-a一起使用
                        -s SHELL : 新的默认shell
                        -c 'COMMENT' : 新的用户基本信息
                        -d DIRECTORY : 新的用户家目录,但仅使用该选项,系统并不会将用户原目录下的文件移至新的家目录下,也不会为用户创建新的家目录,但若要将用户原本家目录下的
                                       文件移至新的家目录下,需配合-m选项一起使用
                        -e : 指定用户账户的过期日期
                        -f : 指定用户密码的非活动期限
                        -l : 修改用户登录名
                        -L : 锁定指定用户
                        -U : 解锁指定用户
               ===================================================================================================================================================
               为指定用户添加或修改密码 : passwd
                   passwd user_name : 修改指定用户的密码,仅root权限
                   passwd : 修改用户自己的密码,不允许前提是用户有密码,否则用户添加密码或修改密码
                       -l : 锁定指定用户
                       -u : 解锁指定用户 
                       -n MIN_DAYS : 指定密码的最小使用期限
                       -x MAX_DAYS ; 指定密码的最大使用期限
                       -w WARN_DAYS : 指定密码的警告期限
                       -i INACTIVE_DAYS : 指定密码的非活动期限
                       --stdin : 从标准输入接受用户密码,如echo 'passwd' | passwd --stdin user_name
                   ======================================================================================================================================================
                   删除用户 : userdel
                       userdel [option]... user_name
                       -r : 删除用户家目录
                   ===========================================================================================================================================================
                   组属性修改 : groupmod
                       groupmod [option]... group_name
                           -n : 指定新组名
                           -g GID : 执行新的组ID
                   ======================================================================================================================================================
                   组删除 : groupdel
                       groupdel GROUP
                   ===========================================================================================================================================================
                   组密码添加 :gpasswd
                       组密码作用 : 当本用户既非某组的基本组用户,又非某组的附加组用户,但有需要取得该组的权限时,此时需要组密码,临时成为该组用户
                        gpasswd GROUP : 添加或修改组密码
                            -a USER : 将user添加至指定组
                            -d user : 从该组中删除指定用户
                            -A user1,user2,.... : 添加具有管理权限的用户列表
                   ============================================================================================================================================
                   newgrp : 为用户临时切换基本组
                       注 : 如果但前用户不属于该组,则需要组密码
                   =============================================================================================================================================
                   pwck : 检查密码文件的完整性,即检查用户及其认证信息的完整性,检查/etc/passwd,/etc/shadow格式是否正确,数据是否有效
                   ==========================================================================================================================================
                   修改用户属性 : chage
                       chage [option]... login_name
                           -d last_day : 修改用户最近一次修改密码的时间
                           -E expire_date : 修改用户账户过期日期
                           -I inactive : 修改用户密码禁用期
                           -m min_days : 修改用户密码的最小使用期限
                           -M max_days : 修改用户密码的最大使用期限
                           -W warn_days : 修改用户密码的提醒警告期
                   =================================================================================================================================================
                   其他命令 : 
                       chfn ; 修改用户的详细信息(即家庭住址,电话号码等信息)
                       finger : 查看用户的详细信息
                       chsh ; 修改用户的默认shell
                   =================================================================================================================================================
    权限管理: 
        文件的权限主要针对三类用户: 
            属主 : owner,u
            属组 : group,g
            其他 : others,o
        每个文件对每个用户都定义了三种权限 :
            r : readable
            w : writable
            x : excutable
            文件 : 
                r : 可使用文件查看类工具查看文件内容
                w ; 可修改文件内容
                x : 可将文件提交内核启动为一个进程,但为避免文件被恶意利用,任何文件在创建时,都默认没有执行权限
            文件夹 :
                r : 可使用ls命令查看此目录中的文件列表
                w : 可在此目录中创建文件,也可在此目录中删除文件
                x : 可使用ls -l查看此目录中的文件列表,也可使用cd命令进入此目录,默认创建目录时,均有此权限
        权限的另外表示方法 : r---w---x -> 100010001 -> 421
    修改文件权限 : chmod
        chmod [option]... OCTAL_MODE(八进制) FILE...
            -R : 递归修改权限,当修改目录权限时,目录中文件的权限也会跟着一起改变
        chmod [option]... mode,... FILE...
            mode :
                修改某一类用户的权限 : 
                    u=r
                    ug=rw
                    u=r,g=w
                    注:没有写出的权限,均默认没有该权限
                修改某一类用户的某一位权限 :
                    u+r
                    ug+r
                    u+r,g+r
                    增加某用户在某一位的权限
                    u-r
                    ug-w
                    u-x,g-x
                    去除某类用户在某一位的权限
         chmod [option]... --reference=RFILE FILE...
             参考RFILE文件的权限,将FILE文件的权限修改的和RFILE文件的权限一模一样
      =================================================================================================================================================
      修改文件的属主和属组,仅root用户权限
          chown [option][:[GROUP]] FILE...
          注: 命令中的“:”可用“.”替代
              -R :递归修改文件的属主
          chown [option]... --reference=RFILE FILE,.....
              参看RFILE修改FILE的属主
      ===========================================================================================================================================
      修改文件的属组 :chgrp
          chgrp [option]... GROUP FILE...
          chgrp [option]... --reference=RFILE FILE...
              -R : 递归修改文件的属组
      =======================================================================================================================================
      文件或目录创建时的遮罩码 : umask
          注 : 遮罩码用户创建文件或文件夹时,为文件或文件夹指定默认权限
              FILE : 666 - umask
                  注 : 当某类用户创建文件时,权限减得的结果中包含x权限,则结果加一,直至无x权限
              DIR : 777 - umask
              umask : 查看umask的值
              umask # : 修改umask的值,仅对当前用户有效