文件权限管理–详解

进程安全上下文

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

九个字段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

相关推荐

  • DevOpsDays大会,818坐标上海,我们来啦!!!

    DevOpsDays 818, 坐标上海, DevOpsDays上海大会, 我们来啦!!! 我们来啦!!! 我们来啦!!! 重要的事情说三遍。 标签: 运维  移动开发  IT技术  DevOps  2008年的敏捷会议上,Andrew Clay Shafer 和 Patrick Debois 讨论了关于“敏…

    Linux干货 2017-08-10
  • centos 7 修改sshd服务默认端口号

    由于最近sshd服务默认端口号22被匿名进行试探性的进行登入,为防止匿名用户再次进行试探性的登入,将sshd服务的默认端口号进行修改。 环境:centos 7.3  xshell 思路:先将sshd的被指文件进行修改,把sshd服务的默认端口号修改为所需要的端口号,然后重启sshd服务,发现重启报错。找其原因是应为selinux不允许自定义sshd…

    Linux干货 2017-04-06
  • N25 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [jizo@jizo ~]$ who | cut -d" " -f1 | uniq jizo  2、取出最后登录到当前系统的用户的相关信息。 [root@jizo ~]# who | tail -l jizo     …

    Linux干货 2016-12-18
  • 常用的MySQL数据库备份

    常用的MySQL数据库备份方式 前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复制BINARY LOG备份 使用lvm2快照备份数据 使用Xtrabackup备份 总结 前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可…

    2015-06-13
  • 文件元数据信息的含义、查看方法,和文件时间戳信息的修改方法

    文件数据分成两类 元数据,英文叫metadata,是数据的属性; 数据,英文叫data,是数据本身; 使用stat命令查看元数据信息 [0][root@localhost mylinux]# stat /etc/passwd File: ‘/etc/passwd’ Size: 889 Blocks: 8 IO Block: 4096 regular file…

    Linux干货 2018-03-01
  • 马哥教育网络班第21期+第一周课程作业

    一、 描述计算机的组成及其功能     计算机主机包括:运算器,控制器,存储器,输入设备,输出设备 1、运算器:功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。 2、控制器:运算器的功能是对数据进行各种算术运算和逻辑运算,即对从控制器取来…

    Linux干货 2016-07-12

评论列表(1条)

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

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