Linux 用户,用户组及权限体系
一.首先对linux的用户,用户组做一下介绍
用户:
   1.在linux系统中用UID来标识用户,用户是能够登录并使用linux的用户,用户组是用户的分组,用GID标识。
Linux 系统分为3种用户:
root 用户:linux系统的超级管理员,可以操作任何文件和命令,拥有最高的权限,UID为0
虚拟用户:这类用户不具有登录系统的能力,但是是系统运行不可缺少的用户,例如bin,daemon,ftp,mail等,这些用户是系统自身拥有的,UID为1-499
普通真实用户:这类用户可以登录系统,但是只能操作自己的家目录,可以自行添加,UID为500-60000
2. 下面是对两个文件的介绍
    Linux的用户信息保存在/etc/passwd文件中,另外,/etc/shadow文件存放的是用户密码相关信息
    

以冒号为分隔符分别对应的是:
  用户名:用户密码:UID:GID:说明信息:默认的登录shell
    下面是另一个文件
 

  1.用户名:
  2.用户密码:经过加密。
  3.最后更改密码的日期:以1970.01.01开始算,到今天的天数
  4.密码最小生存周期: 几天之内不能更改密码。
  5.密码最大生存周期: 密码的有效天数。
  6.密码过期,提前几天提醒用户:如果是7,就是在密码失效前7天就    开始发出警告信息。
  7.密码过期后几天账号会被取消:密码过期后仍然可以登录系统,不过一旦登录就会被强制要求更改密码。
  8.帐号失效时间:过了宽限时间还没更改密码,这个帐号就失效了,无法被使用。
  9.保留:保留的栏位,看以后有没有新内容加入。(没用)
用户组:
Linux 的用户组信息保存在/etc/group 文件中,另外,/etc/gshadow文件存放的是用户密码相关信息
   

以冒号为分隔符分别对应的是:
用户组名:组密码:GID:组内用户(多个用户用,分隔开)
        

以冒号为分隔符分别对应的是:
     用户组名:组密码:用户组管理员的用户名:组内用户(多个用户用逗号分隔)
3.相关命令
  useradd   添加用户
  userdel   删除用户
  usermod    修改用户的属性
  passwd     为用户设置密码
useradd:
-c 描述信息
-d 家目录     注:不需要建立用户的同名目录
-g 指定主组 可以用ID或组名(组必须先创建)
-G 指定附加组 可以用ID或组名(组必须先创建)
      -s  指定登录的shell
      -u   指定uid 
例:
  useradd -c manager u1 描述信息
  useradd -d /test/u2  u2 家目录
  useradd -g u2 u3        组名     注:主组必须已经存在
  useradd -G u2 u4             组名
  useradd -s /bin/csh  u5 指定shell
  useradd -u 600 u7                        指定uid
userdel :  删除用户
-r  删除用户的同时删除家目录
例:
  useradd u1
  useradd -r u1
usermod: 
    usermod的参数和useradd基本一致,与 useradd 参数差不多,一个是在创建用户时设定,一个是用户创建好后修改
   -u -g -G -d -s
例:
  usermod -L u1    锁定用户,无法登录  lock(也可以直接修改/etc/shadow密码前加了个!)
  usermod -U u1    为用户解锁        unlock
passwd :    
root 用户可以修改任何一个用户的密码
 例 :passwd  u1
二.权限体系
1. 基本文件拥有者分类
    u      所有者 user
    g      所属组 group
    o      其他人 others
    a      所有人  al
 2. 基本权限 
 文件权限:
  r   读权限   -读取文件内容                                                  w  写权限   -修改文件内容           
  x   可执行权限  
目录权限:
r   读权限   -读取目录内容
w  写权限   -修改目录内容      单独使用没有意义,与x权限一起 使用时删除文件或生成文件或给文件改名
x   访问权限  access  
8进制数表示方法:
r:    4 
w:    2
x:    1
0代表没有权限
 

 
4、 文件访问权限的相关设置方法
Chmod:设置文件的访问权限
         格式:chmod [参数]权限 文件名
    R :递归修改目录文件的权限
    V :显示指令执行过程、
chmod命令权限值的格式
例:
  chmod   u+x  test
  chmod   o-w  test
  chmod   a=x   test
三位8进制数字
例:
  chmod  664  test
  chmod  640  test
chown:修改文件的拥有者
格式:chown [参数]用户名 文件名
例:chown  u1 f1
chown  root:t1  test   文件所有者为root,所属组为t1
charp: 修改文件或目录的所属组
         格式:charp [参数]用户组名 文件名 
参数: -R递归修改文件或目录的所属组
例: chgrp  u1  /test/t1
3.特殊权限
     suid; 所有者  suid权限:只能所有者使用    suid用4来表示
作用:有效用户:是普通用户瞬间获得root权限
例:  chmod  4177 f ile   必须保证所有者有x权限,才可以添加suid权限
  (注意:如果你系统上的vi 被赋予了suid 权限,可以肯定你的系统已经被***!!!!)
     sgid; 所属组  2     2777    给用户组权限
作用:有效用户组:瞬间具有该组的权限
   针对目录
该目录内所有用户在创建文件时,文件属组与目录属组相同
  针对文件
  例:chmod 2717 file 必须保证所属组有x权限,才可以添加sgid权限
    sticky;  其他人  1     1777
针对目录
防止普通用户在公共目录里互相残害对方的文件。 有了t权限,用户就只能处理自己的文件
   例:#chmod 1777 /shared
       #chmod o+t /shared
       #chmod o-t /shared
4.  隐藏权限
   chattr  添加隐藏权限
L  sattr   查看隐藏权限
   格式:
  chattr  [+-]   [ai]  filename
a: 只允许文件内容被追加
i: 不可变,重要的系统文件 (不能被删除)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
例:chattr  +i  file
lsattr
5.   acl访问控制列表
需求:针对一部分普通用户开放权限
   命令:
查看:getfacl 
设置:setfacl 
 需求:需要文件系统支持acl
    选项:
-m :添加一个 ACL 规范;
-x :删除一个 ACL 规范;
-b :全部的 ACL 规范都移除;
例:
# setfacl -m u:u1:rw c1    针对c1文件给u1用户加权限
# setfacl -m u:u1:rwx abc/  针对abc目录给u1用户加权限
# setfacl -x u:u1 c1  删除u1用户在c1上的权限
# setfacl -b c1   删除所有用户的权限