zoukankan      html  css  js  c++  java
  • Linux 文件权限详解

    查看文件详细信息

    参数说明

    权限说明

    文件类型说明

    •  d    目录

    •   -     普通文件

    •    l     连接文件

    •   b    存储设备,例如硬盘,U盘

    •   c    串行接口设备,例如键盘、鼠标

        

    设置文件权限

    命令:chmod  (change mode)

    赋予权限 

        方式一:chmod u=rwx,g=rwx,o=r foo.txt

        方式二:chmod 774 foo.txt

        数字表示法和权限的关系:

            有权限为1,没权限为0,转换成二进制,每三位一组再转换成十进制:

            第一组是文件拥有者的权限,第二组是组用户的权限,第三组是其他人的权限。

            举例:

                rwxrwxrwx  -->  111111111   -->  777

                rw-r--r--     -->  110100100   -->  644

                rw-------     -->  110000000   -->  600

    修改权限

       chmod u-x foo   :取消所有者对foo文件的执行权限。

       chmond  g+w  foo  : 增加组用户对foo文件的写权限。

    一张图搞定:

    权限详解

    权限作用于目录

      r   (read contents in directory):

            当对一个目录具有读(r)的权限时,就可以查看目录内的文件名信息。

            且只能查看文件名不能查看文件的权限等详情信息。

      w  (modify contents of directory)

            当对一个目录有写(w)的权限时,可以执行如下操作:

      •  查看目录中文件的详情信息。

      •  建立新的文件与子目录;

      •  删除已经存在的文件和目录(不管该文件的权限如何!)

      •  修改已存在的文件和目录的名称;

      •   移动该目彔内的文件、目录的位置。

             当具有写(w)一个目录的权限时,就可以重命名| 删除| 移动| 创建子目录和文件。

             与子目录或目录中文件本身的权限无关。

        x   (access directory)

             对目录具有执行(x)权限,表示可以把该目录作为工作目录。也就是可以cd到此目录内,执行命令。

    权限作用于普通文件

        r  (read contents ): 可以读取文件内容。

        w (edit contents)  :    可以编辑文件内容,如文本文件。

        x  (execute file)     :    可以执行文件。         


    如果要设置某个目录可以给任何人浏览,则至少要给予r和x权限,但是w权限要谨慎!看下面的例子。

    root用户:

    #用root用户在/tmp目录下创建testing目录,默认权限755
    [root@master tmp]# mkdir testing
    #修改目录权限为744
    [root@master tmp]# chmod 744 /testing
    drwxr--r--. 2 root   root   4096 Nov 21 17:33 testing
    #在testing目录下创建test2文件 默认权限644
    [root@master tmp]# touch testing/test2
    [root@master tmp]# ls -l testing/
    total 1
    -rw-r--r--. 1 root root 0 Nov 21 17:56 test2

    普通用户下操作上面创建的文件夹和文件

    #切换到普通用户hector
    [root@master tmp]# su hector
    #查看testing目录的内容,因为只具有r权限,所以无法查看详情信息,只显示文件名,其他信息显示为???。
    [hector@master tmp]$ ls -l testing
    ls: cannot access testing/test2: Permission denied
    total 0
    -????????? ? ? ? ?            ? test2
    #没有x权限的目录,不能作为工作路径
    [hector@master tmp]$ cd testing/
    bash: cd: testing/: Permission denied
     
    #使用root用户设置其他用户对testing目录具有rwx权限
    [root@master tmp]# chmod 747 testing
    drwxr--rwx. 2 root   root   4096 Nov 21 18:09 testing
     
    #普通用户对test2文件本身只有r权限,但是可以删除此文件。
    #因为普通用户hector对testing目录具有w权限,所有可以删除tesing目录中的任意文件和子目录,不管对目录中的文件本身具有什么权限。
    [hector@master testing]$ ll
    total 0
    -rw-r--r--. 1 root root 0 Nov 21 17:56 test2
    删除test2
    [hector@master testing]$ rm test2

    一张图搞定:

    默认权限设置

    命令:umas (user mask)

    功能:设置创建文件的预设权限

    参数:-S 查看详细权限

    一般文件主要用于保存数据,所以文件预设都不具有执行(x)权限;

    而对于目录,x权限意味着可以把该目录作为工作空间,所以目录预设都具有执行(x)权限。

    查看用户的默认权限

    权限掩码:由4位数字组成,与一般权限相关的是后3个数字,第一个数字为特殊权限,不做讨论。

    权限掩码,是要减去的权限:例如掩码是022,表示,创建的文件夹默认权限是777- 022=755 即:rwxr-xr-x

    如果是普通文件,还要再减去执行(x)权限即,755 - 111 = 644,即:rw-r--r--

    说明:一次执行多条linux命令,命令之间用;分号隔开。

    修改默认权限掩码

    umask后写上要设置的掩码即可。

    修改用户所有者

    命令:chown  (change owner)

        功能:修改文件的拥有者

        格式:chown [参数] 用户名 文件名

        参数: -R(recursive) 递归修改文件或目录的拥有者

        实例:# chown  user1   f1

        # chown  -R user1   filegroup1    

    命令:chgrp (change group)

        功能:修改文件或目录的所属组

        格式:charp [参数] 用户组名 文件名 

        参数: -R(recursive) 递归修改文件或目录的所属组

        实例:# chgrp users install.log


      Thanks a lot !

      END!

  • 相关阅读:
    datanode报错Problem connecting to server
    使用命令查看hdfs的状态
    Access denied for user root. Superuser privilege is requ
    ElasticSearch默认的分页参数 size
    SparkStreaming Kafka 维护offset
    【容错篇】Spark Streaming的还原药水——Checkpoint
    251 Android 线性与相对布局简介
    250 Android Studio使用指南 总结
    249 如何解决项目导入产生的中文乱码问题
    248 gradle更新问题
  • 原文地址:https://www.cnblogs.com/lukeguo/p/8824770.html
Copyright © 2011-2022 走看看