用户账号:
   
  用户账号   描述    
  超级用户   root用户,进行系统管理使用。    
  普通用户  由管理员或root用户创建,只在用户自己的宿主目录中拥有完整权限。    
  程序用户  在安装应用程序时,会添加一些低权限用户账号,
            不允许登录到系统,用于维持系统或某个程序的正常运行。    
 
组账号:
    定义:  表示组内所有用户的账号。
    基本组(私有组): 每一个用户账号至少属于一个组。
    附加组(公共组): 该用户同时还在其他组中。
 
UID(用户标识号): 
  每一个用户账号都有一个数字形式的身份标记。每一个用户UID号唯一.
  Root用户的UID号:0
  程序用户账号UID : 1~499.
  普通用户UID : 500~60000

GID(组标识号):
  组账号也有一个身份标记。
  Root组账号的GID号:0
  程序组账号GID : 1~499.
  普通组账号GID : 500~60000
 
与用户账号相关的配置文件:
    /etc/passwd : 保存用户名称,宿主目录,登录shell等基本信息。
    /etc/shadow : 保存用户密码,账号有效期等信息。
 

 配置字段含义:
    用户账号名、密码占位符、用户UID号、基本组GID号、
    用户全名、宿主目录(默认工作目录)、登录shell等信息。
 
Shadow文件中的配置行格式:
Shadow文件(影子文件) : 
    保存有各用户账号的密码信息。
    用户账户名、使用MD5加密的密码字串信息,*或!!表示不能登录到系统、
    上次修改密码的时间、密码的最短有效天数、密码的最长有效天数、
    提前多少天警告用户口令将过期、
    在密码过期之后多少天禁用此用户、账号失效时间、保留字段。
 
添加用户账号:  useradd
为新用户设置密码: passwd
修改用户账号属性: usermod
删除用户账号: userdel
具体的使用方法:多看--help和man手册,info命令。
 
用户账号的初始配置文件
   添加新用户后,会自动在该用户的宿主目录中建立一些初始配置文件。
    来源于账号模板文件“/etc/skel”,

较常用的初始配置文件:
    .bash_logout 文件中的命令将在用户每次退出登录时执行。
    .bash_profile : 文件中的命令将在该用户每次登录时被执行。
    .bashrc  : 文件中的命令会在每次加载”/bin/bash” 程序时(包括登录系统)执行。
    /etc/bashrc和/etc/profile:
    为所有用户添加登录后自动运行的命令程序,自动设置变量等。
 
组账号管理:
  组账号文件: 
   /etc/group : 保存组账号名称,GID号,组成员等信息。
   /etc/gshadow :  保存组账号的加密密码字串等信息。
 
 添加组账号: groupadd命令。
 添加,设置,删除组成员: gpasswd命令。管理组账号的用户成员。
 删除组账号: groupdel命令。
 
查询账号信息:  
  Groups命令:  查询用户账号所属的组。
  Id 命令  : 查询用户账号的身份标识。
    Finger命令: 查询用户账号的登录属性。
  W命令:   查询当前主机的用户登录情况。
 
 
管理目录和文件的属性:
访问权限: 读取、写入、可执行等三种基本类型。
归属: 属主,属组。
 
文件类型: d(目录), b(块设备文件), c(字符设备文件),-(普通文件),  字母"l" (链接文件)。
设置目录和文件的权限: chmod命令。
设置目录和文件的归属: chown命令。


linux的特殊权限:

Centos7系统:
特殊权限: SUID,   SGID,   STICKY
安全上下文 : 
   1、进程以某用户的身份运行,进程是发起此进程用户的代理, 
      因此以此用户的身份和权限完成所有操作。
   2、权限匹配模型:
     (1) 判断进程的属主,是否为被访问的文件属主;
          如果是,则应用属主的权限;否则进入第2步。
     (2) 判断进程的属主,是否属于被访问的文件属组;
          如果是,则应用属组的权限;否则进入第3步。
     (3) 应用other的权限。
 
SUID  :
默认情况下 : 用户发起的进程,进程的属主是其发起者;因此,其以发起者的身份在运行。
 
SUID 的功用:
    用户运行某程序时,如果此程序拥有SUID权限,那些程序运行为进程时,
    进程的属主不是发起者,而是程序文件自己的属主。
    
 
 
特殊权限SUID,SGID详解:

  管理文件的SUID权限:
   Chmod u+ | - s  file .....
 
  展示位置:  属主的执行权限位,如果属主原本有执行权限,显示为小写s;
       否则,显示为大写s;
 
SGID :
  功用 : 当目录属组有写权限,且有SGID权限时,那么所有属于此目录的属组,
     且以属组身份在此目录中新建文件或目录时,
     新文件的属组不是用户的基本组,而是此目录的属组,
  
  管理文件的SGID权限:
     Chmod g+ | - s   file  .....
     
     展示位置: 属组的执行权限位,如果属组原本有执行权限,显示为小写s;否则,显示为大写s;
     
    
     
特殊权限Sticky及facl讲解:

   Sticky:
   功用:对于属组或全局可写的目录,组内的所有用户或系统上的所有用户对在此目录中都能创建新文件或删除所有的已有文件;
   如果为此类目录设置sticky权限,则每个用户能创建新文件,且只能删除自己的文件。
  
  管理文件的sticky权限:
    Chmod   o+ | -t   file ......
  展示位置:其它用户的执行权限位
       如果其它用户原本有执行权限,显示为小写t,否则,显示为大写T;
          系统上的/tmp和/var/tmp目录默认均有sticky的权限。  
   
    
管理特殊权限的另外一种方式:
    基于八进制方式赋权时,可于默认的三位八进制数字左侧再加一位八进制数字;
 
    
文件访问控制列表(file access control lists)
 文件的额外赋权机制:
   在原有的u,g,o之外,另一层让普通用户能控制赋权给另外的用户或组的机制。
 
   getfacl命令:
    getfacl  file.....
    user : username:mode
    group:groupname:mode

   setfacl命令:
    赋权给用户
    Setfacl  -m  u:username:mode   file.....
    赋权给组:
    Setfacl  -m  g:groupname:mode  file....
 
   撤销赋权:
   setfacl  -x  u:username  file....
   setfacl  -x  g:groupname   file....