zoukankan      html  css  js  c++  java
  • Linux文件权限管理

    说明:通过 ls命令 查看文件的具体权限。

    一、文件权限管理命令

      1、chown     修改文件的用户和组

             用法: chown 用户名:组 filename

             选项:

    chown -R       修改目录及其内部文件的用户和组

    chown --reference=/filename            参照/filename修改文件用户和组

      

      2、chgrp       修改文件的所属组

      3、chmod     修改文件权限

             用法:

    (1) 使用8进制形式

    # chmod 777 /filename

    (2) 使用ugoa形式,u表示用户,g表示组,o表示其他,a表示所以默认省略

    # chmod u=rwx,g=rwx,o=rwx /filename

    (3) 参照其他文件权限修改

    # chmod --reference=/path/to/somefile

             选项:

    chmod -R      同时修改目录及内部文件的权限,符号链接文件除外

     

      4、umask      显示或者设置文件的权限掩码

    umask的值可以用来定义在创建文件时的权限,新建普通文件的权限为:666 -umask。新建目录的权限为:777-umask。如果所得结果某位存在执行(奇数)权限,则将其权限+1

    root的umask是022,普通用户的权限为002

         选项:

    umask           查看当前用户umask

    umask #        设定当前用户的umask为#

    umask -S       模式方式显示

    umask -p       输出可被调用

    二、Linux文件系统上的特殊权限

      1、suid   给二进制命令加的权限,脚本文件无效

    任何用户执行此可执行文件时,不再以用户自己的身份当作进程的属主,而是继承二进制程序的所有者的权限,SUID目的主要是为了提权限,让普通用户使用命令具有root用户使用命令的权限

    /etc/shadow,普通用户无法修改文件,但是可以通过passwd命令修改此文件内容

    -rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd

    任何用户执行passwd,相当于此文件所有者root执行此文件

    suid表现为文件属主执行权限位上的s或S

    x:s

    -:S

    如何设定suid权限

    chmod u+s FILE …

    或者:假设原来的权限是755

    chmod 4755 FILE

      2、sgid  给二进制命令加的权限,脚本文件无效

    任何用户执行此可执行文件时,不再以用户自己的身份当作进程的属主,而是继承二进制程序的所属组的权限,与suid相对

                  sgid表现为文件属组执行权限位上的s或S

    x:s

    -:S

    如何设定sgid权限

    chmod g+s FILE …

    或者:假设原来的权限是755

    chmod 2755 FILE

    特殊用法:具有sgid的目录,某用户在此目录下创建文件时,新建文件的属组不再是某用户的基本组,而是目录的属组

      3、sticky       粘滞位,给目录加的权限,如/tmp文件

    默认情况下,对于一个目录权限为777的目录,其他用户可以删除里面别人创建的文件;但如果设置了sticky位,用户可创建文件,可以删除自己的文件,但是无法删除别的用户的文件

    sticky表示为文件其他执行权限位上的t或T:

    x:t

    -:T

    如何设定sticky权限

    chmod o+t FILE …

    或者:假设原来的权限为755

    chmod 1755 FILE

    三、访问控制列表facl

    facl:文件访问控制列表,ext4,xfs文件系统支持facl。facl是附加原有权限模型之上另一层权限控制机制,保存至文件扩展属性信息中。

    facl的使用场景:如果某个目录里面的文件特别多,权限比较复杂,要给某一个用户增加访问所有文件的权限,通过chmod,chown传统命令就很难。此时通过facl给该用户增加权限,删除权限,不会破坏此目录其他文件的原有权限。

      1、getfacl      查看文件facl属性

      2、setfacl       设置文件的facl属性

        用法:setfacl [options] 文件名

        选项:

    setfacl -m u:UserName:rwx         给UserName用户设定rwx权限

    setfacl -m g:GroupName:rwx      给属于GroupName组的所有用户设置rwx权限

    setfacl -m::rwx                    设置mask,除了属主,其他用户的权限不能超过他

    setfacl -x u:UserName         取消UserName用户的所有权限

    setfacl -x g:GroupName      取消GroupName组用户的所有权限

    setfacl -x m:                        取消mask

    setfacl -b                            清空所有的facl权限

    setfacl -R                            递归,对文件夹内的文件也生效

    facl检查顺序:相当于getfacl命令显示结果的顺序

    (1)、是否是属主,属主权限最大,不检查facl

    (2)、facl列表中user设置的权限

    (3)、是否是属组

    (4)、facl列表中group设置的权限

    (5)、other权限

      

  • 相关阅读:
    bash 教程 shell 基础语法
    使用 Flutter 开发 Windows 桌面应用 [MD]
    小tips:使用babelupgrade从babel6升级babel7
    JS的可选链操作符(?.)与双问号(??),你用到了吗?
    JS处理html的编码(encode)与解码(decode)
    pdf A3 到 A4
    grub4dos 制作U盘启动盘
    amixer的用法
    一个tomcat设置多个端口
    PostgreSQL 配置内存参数
  • 原文地址:https://www.cnblogs.com/ysuwangqiang/p/11376943.html
Copyright © 2011-2022 走看看