文件权限管理–详解

进程安全上下文

进程安全上下文:
    进程对文件访问权限应用模型
    进程的属主与文件的属主是否相同,如果相同则运行属主权限
    进程的属主与文件的属主不相同,对比属组权限是否相同,相同则应用属组权限
    进程的属主既不是文件的属主也不是同一属组,则应用其他人权限

九个字段RWX-RWX-RWX
        前三个是属主
        第二个是属组
        第三个是其他人
        R:读
        W:写
        X:执行

自己理解的:进程是用户的代理,代理用户去访问资源,继承用户的—所有者和所属组。某用户对文件或资源的访问权限,只的是进程以uid和gid身份去访问获取资源。系统用进程的uid和gid对比资源的三类用户(ugo)权限(rwx),实现权限分配管理。

对于文件
        R:可获取文件的数据
        W:可修改文件的数据
        X可将此文件运行为进程,普通文件没有执行权限
对于目录:
        R:可使用ls命令获取其下的所有文件列表,但是不包括详细信息不能使用ls -l
        W:可以膝盖此目录下的文件列表,即创建删除文件
        X:可以cd至此目录中,可使用ls -l

八进制权限表示法:r=4 w=2 x=1

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

三位数字,每个数字分别表示相应的权限如:777,664,640,600,755,750,775

注意:

    ****用户仅能修改属主为自己的那些文件的权限

    ****只有root用户能修改别人文件的权限
    ****只有root用户能够修改文件的属主和属组

Linux权限管理命令

修改文件权限:chmod

chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...

三种mode

修改权限(一)chmod [OPTION]... MODE[,MODE]... FILE...
    1、修改一类用户的所有权限-------覆盖修改权限
     u=
     g=
     o=
     ug=
     a=      代表所有用户
     u=,g=

        等号后面是=rwx
        注修改权限,可以单一用户的赋权,如果两类用户一样权限一样也可一起赋权。等号后面为空,是取消该用户的所有权限。---------覆盖式授权
        等号=后面的值可以是wrx中任意几位或空
    2、修改一类用户某位或某些位权限------------追加权限
     u+
     u-
    注:可以针对单一用户的三种权限中的一位进行添加或删除,三类用户都需要添加或删除同一权限可用写在一起 ug+wr或u+wr,g+wr


修改权限(二)2、chmod [OPTION]... OCTAL-MODE FILE...
                chmod 576 file


修改权限(三)chmod [OPTION]... --reference=RFILE FILE...
    参考RFILE文件的权限,将FILE的修改为同RFILE;


[option] 常用选项为-r递归改变文件权限

修改文件权限:install

install - copy files and set attributes
            复制并设置文件属性、

    install [OPTION]... [-T] SOURCE DEST      单源复制
    install [OPTION]... SOURCE... DIRECTORY   多源复制
    install [OPTION]... -t DIRECTORY SOURCE...多源复制
    install [OPTION]... -d DIRECTORY..        创建目录

[常用选项]
        -m --mode=MODE      设定文件的权限
        -o --owern=USERNAME 设定文件的属主
        -g --group=USERNAME 设定文件的属组
        -d                  创建权限

修改文件的属主和属组:

    chown [OPTION]... [OWNER][:[GROUP]] FILE...
            用法:
                OWNER ---------------修改属主
                OWNER:GROUP----------修改属主和属组
                :GROUP---------------仅修改属组
                注: 命令中的冒号可用.替换;
            -R: 递归

    chown [OPTION]... --reference=RFILE FILE...
        参考文件的属主和属组更改目标文件的属主和属组

    修改文件的属组:chgrp
        chgrp [OPTION]... GROUP FILE...
        chgrp [OPTION]... --reference=RFILE FILE...
        -R

umask

文件或目录创建时的遮罩码:umask

    从目录或文件上屏蔽掉最大权限相应位,从而得出默认的权限。

    文件: 666-umask

        666-umask结果中出现奇数的加1,偶数的不变,-1为0。

    目录: 777-umask   

    umask: 查看

    umask #: 设定

    umask ug=rwx 0=    表示希望新建文件的全显示就是ug=rwx g=

    umask–S 模式方式显示
    [user2@localhost /]$ umask -S
    u=rwx,g=rwx,o=rx

    umask–p 输出可被调用
    umask 234

    全局设置:/etc/bashrc
    用户设置:~/.bashrc

    Linux上的一般文件通常是不需要执行权限的,一般文件有执行权限容易给系统带来安全风险。
    修改umask只对当前shell有效

linux系统上的特殊权限

    SUID:
        默认情况下,用户发起的进程,进程的属主不是其发起者;因此是不是以其发起者的身份运行,                                                
        而是以文件自己的属主身份运行。

        SUID的功能:用户运行某程序时,如果此程序拥有SUID的权限,程序以其属主身份运行
        passwd命令具有SUID
        一般情况下,不建议给程序设置SUID,风险较大。
        有执行权限的为小写的s
        没有执行权限的为大写S

        chmod 设置SUID
            chmod u+/-s file
            chmod 4777 file
SGID:

    1、作用于目录
    一般用户创建目录时应用此权限的目录,其他用户在此目录下创建文件的属组为SGID组。不是用户的主组

    2、作用在二进制文件,还是以进程发起者的身份运行。只是该进程继承了该程序属组的权限。
        该程序,访问文件时,所有者不匹配,开始匹配所属组。匹配的是进程的属组,而不是进程发起者的基本组。

    chmod设置SGID
            chmodg +s DIR...
            chmodg -s DIR...

STICKY
    功能:对于属组或全局可写的目录组内的所有用户或系统上的所有用户在此目录中都能创建新文件或删除文件;如果为此类目录设置sticky权限,则每个用户能创建文件,且只能删除自己的文件。
    chmod设置STICKY
        chmod o+t DIR...
        chmod o-t DIR...
    如果其他用户原本有执行权限则是小写t
    否则是大写T
    系统上的/tmp和/var/tmp均有STICKY权限


管理特殊权限的另一种方式
        000    0
        001    1
        010    2
        011    3
        100    4
        101    5
        110    6
        111    7
        chmod  1755
       
       

----------


根据个人理解制作了导图,如有错误请指正。

文件权限模型.jpg特殊权限.jpg

原创文章,作者:yyw,如若转载,请注明出处:http://www.178linux.com/28860

(0)
上一篇 2016-08-04 21:40
下一篇 2016-08-04 21:45

相关推荐

  • Ansible应用介绍

    Ansible 简介 ansible是个什么东西呢?官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具。这个工具的目标有这么几项:自动化部署APP;自动化管理配置项;自动化的持续交互;自动化的(AWS)云服务管理。所有的这几个目标从本质上来说都是在一个台或者几台服务器上,执行一系列的命令而已。通俗的说…

    Linux干货 2015-07-03
  • Linux基础学习总结(二)

    经过前两周的学习,我们大家对于Linux系统和操作已经有了一定的认识。基于Linux平台进行开发,确实要更方便和高效,我经过自己的学习消化,现在将自己的理解的几点总结下来: Linux哲学思想的几句话,简洁的阐明了linux系统的特点。其中一切都是一个文件这句话特别精辟,在实际学习和操作linux系统之后,更是深刻体会到了这句话的内涵,感受颇深。它具体指明了…

    Linux干货 2018-03-16
  • 浅谈DNS基本原理以及实现方法(一)

     DNS(Domain Name System,域名系统),是目前互联网上最不可或缺的服务器之一,我们在互联网从访问一个网站,到发送一封电子邮件,再到定位域中的域控制器,无时无刻不再使用着DNS为我们提供的服务,那为什么我们会需要这样一个服务那?带着这样一个疑问让我们先来认识一下什么是DNS吧  DNS最核心的工作就是域名解析,也就是把计…

    Linux干货 2015-12-15
  • 马哥教育网络20期第七周课程练习

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; fdisk /dev/sdb ; mke2fs -t ext4 -b 2048 -L MYDATA -m 2 –O acl /dev/sdb1 (2) 挂载至/data/mydata目录,要求挂载…

    Linux干货 2016-08-15
  • Linux运维学习历程-第一天-基础知识

    什么是Linux   Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 为什么学Linux…

    Linux干货 2016-08-03
  • 第七周

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; fdisk /dev/sdb欢迎使用 fdisk (util-li…

    Linux干货 2016-09-19

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-05 11:21

    对命令的总结很详细,如果能对特殊权限的应用场景有一些模拟会让你对各个权限理解会更深刻哦。