用户、组及权限管理详解

用户类别:Liunx中用户标识范围在0-65535之间;

  • 超级用户(管理员) —— 默认为root,拥有所有权限。UID与GID值为0,
  • 普通用户
    • 系统用户 —— CentOS6中UID与GID值为1~499,CentOS7中UID与GID值为1~999。默认不能登录系统,存在主要是满足系统进程对文件属主的需求;
    • 登录用户 —— CentOS6中UID与GID值为500~65535,CentOS7中UID与GID值为1000~65535。是由拥有系统权限的人员添加的,可以登录系统,可以操作自己家目录中文件和目录的权限,和进入与浏览相关目录文件的权限(如/etc,/var/log),但是没有创建、修改、删除等权限;

组类别:

  • 管理员组,普通用户组:和上面的用户类别一样;
  • 基本组和附加组:基本组相当于亲生父母,附加组相当于干爹干妈;
  • 私有组、公共组:
    • 私有组:组名同用户名,且只包含一个用户;
    • 共有组:组内包含了多个用户;

认证信息(数据库文件):通过比对事先存储的,与登录时提供的信息是否一致;

/etc/shadow —— 用户的信息库
    名字;密码:属主ID:属组ID:注释信息:家目录:默认shell
/etc/gshadow —— 用户密码
    用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期段:过期期限:保留字
/etc/group —— 组的信息库
    用户组名:组密码:组ID:该组的用户成员

密码存储格式:目前有六种,是单向加密,并借助于随机数(salt)完成;

1.md5
2.sha1
3.sha224
4.sha256
5.sha384
6.sha512

权限管理:比如使用ls -l命令得到rwxrwxrwx字符串来显示权限;

  • 左三位 —— 定义属主user的权限
  • 中三位 —— 定义属组group的权限
  • 后三位 —— 定义其他other的权限

进程对文件的访问权限应用模型:
首先检查进程的属主与文件的属主是否相同;如果相同,则应用属主权限;否则,则检查进程的属主是否属于文件的属组;如果是,则应用属组权限;否则,就只能应用other的权限;

字母代表的含义:

  • r:读取
  • w:写入
  • x:执行

对于文件字母代表的含义:

  • r:可获取文件的数据;
  • w: 可修改文件的数据;
  • x:可将此文件运行为进程;

对于目录字母代表的含义:

  • r:可使用ls命令获取其下的所有文件列表;
  • w: 可修改此目录下的文件列表;即创建或删除文件;
  • x: 可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息;

权限组合机制:把位数看成0和1时可以用二进制来代表权限,还可以用8个数字来代表所有的状况;

 --- 000 0  
 --x 001 1  
 -w- 010 2  
 -wx 011 3  
 r-- 100 4  
 r-x 101 5  
 rw- 110 6  
 rwx 111 7

权限管理命令:chmod

  • chmod [OPTION]… MODE[,MODE]… FILE…
    • 赋权表示法:直接操作一类用户的所有权限位rwx,u= g= o= a=
    • 001
    • 授权表示法:直接操作一类用户的一个权限位r,w,x,u+ u- g+ g- o+ o- a+ a-
    • 002
  • chmod [OPTION]… OCTAL-MODE FILE…
  • 003
  • chmod [OPTION]… –reference=RFILE FILE…
  • 004
  • 选项:-R, –recursive:递归修改 ,只有授权表示法用的多些,其它方法不建议使用;用户只能修改属主为自己的那些文件的权限;
  • 005
  • 006

从属关系管理命令:chown, chgrp, 仅管理员可修改文件的属主和属组;

  • chown命令:可以更改属主和属组
    • chown [OPTION]… [OWNER][:[GROUP]] FILE…
    • chown [OPTION]… –reference=RFILE FILE…
    • 选项:-R:递归修改
    • 007
  • chgrp命令:更改属组
    • chgrp [OPTION]… GROUP FILE…
    • chgrp [OPTION]… –reference=RFILE FILE…

umask:文件的权限反向掩码,遮罩码;新建文件或目录的权限是减去umask得到的;

  • 文件:666-umask;用666,表示文件不能拥有执行权限;如果减后结果有执行权限,再加1;
  • 目录:777-umask
  • umask命令 —— 设定仅对当前shell进程有效
    • umask:查看当前umask
    • umask MASK: 设置umask

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92003

(0)
华龙华龙
上一篇 2018-03-07
下一篇 2018-03-08

相关推荐

  • Shell脚本编程—数组、字符串处理

    数组 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间     数组名:整个数组只有一个名字;     数组索引:编号从0开始;          [数组名索引]  &nbs…

    Linux干货 2016-08-30
  • 22期第十一周课堂练习

    1、详细描述一次加密通讯的过程,结合图示最佳。 发送方:BOB                        &nbsp…

    Linux干货 2016-12-12
  • 94-varnish

        一. Web Page Cache 相关概念

    2016-11-18
  • gitlib环境部署

         GitLab是利用 Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松…

    2016-05-19
  • 马哥教育网络班N22期+第9周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bashnolo_user=0login_user=0while read user;do    bash_type=$(e…

    Linux干货 2016-10-21
  • 马哥教育网络19期+第十二周课程练习

    1、请描述一次完整的http请求处理过程; a.向根域名服务器请求解析域名,然后根服务器返回相应的IP信息; b.用户的Web浏览器向服务器端的80端口通过三次握手建立TCP连接; c.建立完TCP连接后发送HTTP请求,请求的格式包括请求方法、URL和协议版本号,方法有GET、HEAD、POST、PUT、DELETE、OPTIONS、TRACE,如: &n…

    Linux干货 2016-08-22

评论列表(1条)

  • 马哥教育
    马哥教育 2018-03-20 22:04

    很棒