• Linux文件和目录权限详解


    一、Linux文件和目录权限管理

    1、文件权限说明:

      (1)r:表示具有读取文件内容的权限;

      (2)w:表示具有新增,修改文件内容的权限;

      (3)x:表示具有执行文件的权限,同时需要有r权限;

    2、目录权限说明;

      (1)r:表示具有浏览目录下有哪些文件的权限,必须同时用x权限才可以;

      (2)w:表示具有新增、删除、移动目录内容文件的权限,同时需要有x权限;

      (3)x:表示具有进入目录的权限;

    3、权限获取顺序

    • 先看用户是不是文件所有者,再看是不是所属组,最后看是不是其他用户,如果是其中一个,就有权限;
    • 对普通用户来说,没有权限是不能访问资源的;
    • 读写权限对root用户不受限制,但x权限受控制;
    • 需要注意的是:对root用户来说,如果root没有x权限,只要属组和其他有x权限,root用户就能执行,而普通用户不行;

    4、文件的属主和属组

      (1)修改文件的属主:chown user file   修改文件的属主;

                  chown - R user.group file   递归修改文件属主;

                  chown .group file 修改文件属组;

      (2)修改文件的权限:chmod ugo=rwx flie  修改一类用户的所有权限;

                  chmod ugo+/- rwx file  修改一类用户某位或者某些位权限;

                    -R 递归修改;

    二、文件和目录的默认权限与umask

      (1)root用户默认umask为022,普通用户默认为002

      (2)umask表示用户创建文件的默认权限,目录的最高权限为777,文件最高666;

      (3)目录默认权限=777-umask;文件默认权限=666-unamk,所得结果奇数位加1

      (4)目录新创建后的默认权限是755,文件创建后的默认权限是644;

    三、Linux系统文件的特殊权限(SUID,SGID,Sticky)

     Set UID

    • 当s这个标志出现在文件所有者的x权限上时,例如 “-rwsr-xr-x” ,此时被称为Set UID,简称为SUID的特殊权限。
    • SUID权限仅对二进制程序有效;
    • 执行者需要对此程序具有x的可执行权限;
    • 本权限仅在执行该程序的过程中有效;
    • 执行者将具有该程序所有者的权限;

      例如:/etc/shadow是记录系统所有账号的密码的文件,它的权限为-r--------1 root root,只有root才能强制修改此文件内容。但是普通用户也可以修改自己的密码,原因是普通用户修改密码的时候执行了/usr/bin/passwd(-rwsr-xr-x)这个程序,执行的过程中临时获得了root权限,所以可以修改/etc/shadow这个文件,从而修改密码。如果用户执行其他不具有SUID权限的程序,则不能访问/etc/shadow,如用户执行/bin/cat(-rwxr-xr-x)这个程序时,是无法读取/etc/shadow的。

    Set GID

    • SGID可以针对文件或目录设置。
    • 当s标志出现在用户组的x权限上时,例如“-rwx–s–x”为Set GID,简称为SGID的特殊权限,SGID可以针对文件或目录设置。
    • 对于文件来说:SGID对二进制程序有用;程序执行者对于该程序来说,须具备x的可执行权限;执行者在执行的过程中将会获得该程序用户组的支持;
    • 当一个目录设置了SGID的权限后,它将具有以下功能:用户若对此目录具有r与x的权限时,该用户能够进入此目录;用户在此目录下的有效用户组将会变成该目录的用户组;若用户在此目录下具有w的权限,则用户创建新文件的用户组与此目录的用户组相同;

    Sticky Bit

    • Sticky Bit,简称SBIT。目前只针对目录有效,针对文件已经无效。
    • SBIT的作用:当一个用户对某目录是具有用户组或其他人的身份,并具有w权限(即具有写入的权限时),这表明该用户可以对该目录下任何人新建的目录或文件进行删除、移动、重命名等操作。不过,如果该目录具有SBIT权限时,则仅有文件属主和root才能删除、移动、重命名此文件,普通用户无法删除该目录下不属于自己的文件。
  • 相关阅读:
    一次惨痛的debug的经历-RuntimeError: CUDA error: an illegal memory access was encountered
    Rank loss调研
    守护进程 supervisor
    PHP实现异步请求非阻塞
    PHP实现图片和文字水印(PHP给图片添加水印功能)
    虚拟机相关博客
    小师妹学JavaIO之:文件系统和WatchService
    后端 Java ActionEvent getModifiers()
    Java中常见的锁简述
    关键系统的JVM参数推荐
  • 原文地址:https://www.cnblogs.com/jiangzuofenghua/p/9278370.html
Copyright © 2020-2023  润新知