文件权限管理–详解

进程安全上下文

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

九个字段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 21:40
下一篇 2016-08-04 21:40

相关推荐

  • ip命令详解

      Linux中的ip命令功能强大,可以完成接口配置、路由管理等任务。   格式:ip [ OPTIONS ] OBJECT { COMMAND | help }   下面使用ip命令来完成一些常用的操作:     1、查看接口状态       ip link show [设备名…

    Linux干货 2016-01-14
  • 菜鸟教你如何磁盘分区与创建文件系统以及挂载(1)

    何为磁盘分区,为什么要分区?    计算机中存放信息的主要的存储设备就是硬盘,但是硬盘不能直接使用,必须对硬盘进行分割,分割成的一块一块的硬盘区域就是磁盘分区。在传统的磁盘管理中,将一个硬盘分为两大类分区:主分区和扩展分区。主分区是能够安装操作系统,能够进行计算机启动的分区,这样的分区可以直接格式化,然后安装系统,直接存放文件。 MBR分…

    Linux干货 2016-08-27
  • lamp平台 php解析器基于模块和php-fpm

    首先,我先介绍一下实验环境: http服务器:192.168.236.128(php解析器基于modules) mysql服务器:192.168.236.129 编译和配置http服务器,http版本是2.4以上的。 由于http依赖于apr apr-util这两个包,但是我们系统上的rpm包版本比较低,我们也需要下载这两个源码包来编译,解决依赖关系。 还要…

    Linux干货 2015-08-31
  • samba服务部署WordPress

    简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微软又把 SMB 改名为 CIFS(Common Inter…

    Linux干货 2017-04-28
  • Nginx介绍及使用

       Nginx(engine x)是一个高性能的HTTP和反向代理服务器, 也是一个IMAP/POP3/SMTP服务器. Nginx是由IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的, 第一个公开版本在2004年发布. 因为它的稳定性, 丰富的功能集, 示例配置文件和低系统资源的消耗而闻名. Nginx是一款轻量…

    Linux干货 2016-11-11
  • python使用paramiko 模块建立ssh通讯

    一 paramiko简介 下文是我从别人博客那里copy下来的: paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。 由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOSX, Windows…

    Linux干货 2017-03-07

评论列表(1条)

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

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