文件权限管理–详解

进程安全上下文

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

九个字段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)
yywyyw
上一篇 2016-08-04
下一篇 2016-08-04

相关推荐

  • 马哥教育网络班21期+第七周课程练习

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

    Linux干货 2016-08-30
  • Linxu系统的启动过程

    Linxu系统的启动过程 启动流程 1、引导Linux启动是从BIOS中的地址0xFFFF0处开始的,BIOS由两部分组成:POST代码和运行时服务,运行时服务是为操作系统提供一些接口,如温度检测等。 BIOS的第一个步骤是加电自检(POST),完成对硬件的的检测,如某些硬件出现错误无法通过检测就导致系统无法启动,POST完成之后将被清出内存; BIOS的第…

    Linux干货 2016-09-13
  • Function函数实例

    函数:function     把一段独立功能的代码当做一个整体,而后为之取一个名字,命令的代码段,即为函数。 注意:     定义函数的代码段不会自动执行,在调用时执行;所谓调用函数,在代码中给定函数名即可     函数名出现的任何位置,…

    Linux干货 2016-08-21
  • 马哥教育网络班21期-第七周课程练习

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

    Linux干货 2016-08-29
  • 第一周-2:Linux部分常用命令使用示例、查看命令行工具使用手册以及LinuxFHS部分目录简介

    一、部分命令使用示例: 1、ifconfg 在命令行界面下或系统配置脚本中用于配置、控制及查询TCP/IP网络接口的系统管理工具 [netartisan@localhost 桌面]$ ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 &n…

    Linux干货 2016-11-07
  • awk的基本原理

    awk的工作原理 一次读取一行文本,按输入分隔符进行切片,切成多个组成部分,将每片直接保存在内建的变量中,$1,$2,$3….,引用指定的变量,可以显示指定断,或者多个断。如果需要显示全部的,需要使用$0来引用。可以对单个片断进行判断,也可以对所有断进行循环判断。其默认分隔符为空格 awk的基本用法格式awk [options…

    Linux干货 2017-07-11

评论列表(1条)

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

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