• Linux 文件权限总结


    Linux系统中一切皆文件
    一般权限rwx--特殊权限sst--隐藏权限--ACL--sudo---默认权限;
    权限虽然是文件的属性,但其实是对于用户来说的,即用户对文件是否有某权限;

    文件类型用不同字符区分,常见如下:
    -:普通文件,最多
    d:目录文件,可用cd进入
    l:链接文件,快捷方式
    b:块设备文件,一般指硬盘
    c:字符设备文件,串行接口设备
    p:管道文件,FIFO
    s:套接字文件,网络数据连接
    说明:linux中文件扩展名没有实际意义,只是为了帮助我们了解文件作用


    一、一般权限
    Linux系统中每个文件都有其所有者和所属组,
    并规定了文件所有者,所属组,其他人对其的可读r,可写w,可执行x等权限,
    对目录来说,可读即能读取到目录内文件列表,可写即能在目录能增删重命名文件,
    可执行即能够cd进入该目录,能进入才能读取,一般目录都会给x;
    文件rwx权限可分别用数字421来表示,
    数字表示法可简化权限表示,如rwxrw-r--可表示为764,三者独立;
    文件属性信息包括:
    文件类型-访问权限-所有者-所属组-文件大小-最近修改日期时间-文件名;
    对于自己家目录里的文件,即使不是所有者,没有w权限,也能修改删除,会自动变成所有者;

    二、特殊权限
    在复杂多变的Linux系统中,单纯的rwx权限无法满足实际需求,
    所以就有了特殊权限位,进一步控制文件权限,主要有三种;
    SUID-一种对二进制程序文件进行设置的特殊权限,
       可以让二进制程序执行者临时拥有所有者的权限,
       只能对有执行权限的二进制程序设置,只在执行时有效,
       文件所有者的可执行x会变成s,若原本不可执行-,则变成S,
       典型如passwd命令修改/etc/shadow文件;
    SGID-让执行者临时拥有所属组的权限,只能对拥有执行权限的二进制程序设置,
       只在执行时有效,文件所属组的可执行x会变成s,若原本不可执行-,则变成S,
       在某个目录中创建的文件自动继承该目录的用户组,只能对目录进行设置,
       可用于目录共享,且目录中创建的文件也共享;
    SBIT-确保用户只能删除目录内自己的文件,只能对目录进行设置,
       文件其他人的可执行x会变成t,若原本不可执行-,则变成T;
    说明:以上三种特殊权限可分别用参数u+s,g+s,o+t来设置,
       也可用数字法421分别表示,放在一般权限数字前面,
       如rwsrw-r--可表示为4764,四者独立;

    修改文件属性或权限的最常用命令:
    chown-修改文件或目录的所有者和所属组
    chgrp-修改文件或目录的所属组
    chmod-设置文件或目录的权限
    说明:只有文件所有者和root才能执行上述命令,
       一般权限参数可用ugoa +-= rwx来设置;


    三、隐藏权限
    一种被隐藏起来默认不能直接被用户察觉的权限;
    chattr-设置文件的隐藏权限
    lsattr-显示文件的隐藏权限
    说明:chattr命令只有root可以使用,
       可通过+-参数来添加或删除文件的隐藏权限,
       可能导致root都不能修改删除某个文件,
       不宜对目录 /、/dev/、/tmp/、/var/ 等进行设置;


    四、文件访问控制列表(ACL)
    前三种权限是针对某一类用户设置的,ACL可以对某个指定的用户进行单独的权限控制,
    即 针对指定的用户或用户组设置文件或目录的操作权限;
    setfacl-设置文件的ACL权限
    getfacl-显示文件的ACL权限
    说明:可设置是否对目录递归或继承,
       可设置有效权限mask,即设置的ACL只在有效范围内才生效,一般为rwx即可,
       若设置没有任何权限,则在参数中权限字段加上一个减号-;


    五、su命令和sudo服务
    可以给普通用户提供额外的权限来完成只有root才能完成的任务;
    su-用户身份切换,减号-代表环境也完全切换
    sudo-把特定命令的执行权限赋给指定用户,需配置/etc/sudoers文件
    visudo-配置/etc/sudoers文件,禁止多个用户同时修改且有语法检查,仅限root
    说明:若只想要执行一次root的命令,可用 su - -c "命令串" 的方式,
       配置文件修改格式为:用户名/用户组 允许的主机=(可切换身份) 可执行命令,
       可通过别名变量来批量修改,要使用大写字符,
       可执行的命令字段要填写绝对路径,且可另加限制参数,
       使用sudo服务时,可以设置无需输入密码;


    六、默认权限
    在Linux系统中,文件默认权限是666,目录默认权限是777,
    但新建文件或目录的实际权限值需要再减去权限掩码值;
    umask-设定当前用户创建文件或目录的权限掩码值
    注意 这里指的是默认权限值需要减去的权限值
    有四组数字,对应特殊权限和一般权限,如0022;

    大概就是

    1. 文件权限分为三部分(所属人,所属组,其它组)

    2. 文件权限第一位表示文件类型,d 目录、l 链接文件、- 普通文件、p 管道文件

    3. 文件权限第2-4位表示所属人的权限,r--读、w--写、x--执行

    4. 文件权限第5-7位表示的是所属组的权限

    5. 文件权限第8-10位表示的是其它组的权限

    6. r=4,w=2,x=1

    7. 通过chmod命令来进行对权限的修改,chmod 第一个数字表示的是所属人,第二个数字表示的是所属组,第三个数表示是其它组 chmod 777 文件名

    8. 通过chattr +i 文件名,限定为只读文件

    9. 通过chattr +a 文件名,限定为只能追加

  • 相关阅读:
    Windows2012修改光驱盘符
    推薦幾個海外片源站
    Learning Puppet — Variables, Conditionals, and Facts
    红灯是否可以掉头?
    Windows Server 2008
    Learning Puppet — Resource Ordering
    Learning Puppet — Manifests
    Learning Puppet — Resources and the RAL
    quotas and disk replace on netapp
    美国夏令时与冬令时的区别
  • 原文地址:https://www.cnblogs.com/kyooo/p/13209861.html
Copyright © 2020-2023  润新知