• Linux文件权限概念


    一、Linux文件属性

      

      1、第一列代表这个文件的类型与权限(permission): 共有10个字符

      

       第一个字符代表这个文件的类型,是“目录,文件或链接文件等”:

        [d]---->目录

        [-]----->文件

        [l]------>连接文件(linkfile)

        [b]------>表示文件里面的可供存储的接口设备

        [c]------>表示设备文件里面的串行端口设备,例如键盘,鼠标(一次性读取设备)

          接下来的字符中,以3个为一组,且均为“rwx”的3个参数的组合。

        [r]------>可读read

        [w]------>可写write

        [x]------->可执行execute

        [-]-------->无权限

        第一组为“文件所有者权限”

        第二组为“同用户组的权限”

        第三组为“其他非本用户组的权限”

      2、第二列表示有多少文件名连接到此节点(i-node)

        每个文件都会将他的权限与属性记录到文件系统的i-node中,不过我们使用的目录树却是使用文件名来记录,因此每个文件名就会连接一个i-node。这个属性记录的就是有多少不同的文件名连接到相同的一个i-node号码。

      3、第三列表示这个文件(或目录)的“所有者账号”

      4、第四列表示这个文件的所属用户组

        在Linux系统下,你的账号会附属于一个或多个的用户组中。

      5、第五列为这个文件的容量大小,默认单位为B

      6、第六列为这个文件的创建文件日期或者是最近的修改日期。

          如果这个文件被修改的时间距离现在太久了,那时间部分就仅会显示年份。

          如果想要显示完整的时间格式, 可以使用ls的参数,即“ls -l --full-time

      7、第七列为文件名

          如果文件名之前多一个“.”,则这个为隐藏文件

    二、如何改变文件属性与权限

      chgrp------>改变文件所属用户组

      chown-------->改变文件所有者

        chmod-------->改变文件的权限 

      1、改变所属用户组:chgrp

        要被改变的组名必须要在/ect/group文件内存在才行,否则就会显示错误。

        语法:chgrp [-R] 用户组名 dirname/filename 

        选项与参数:

          -R: 进行递归(recursive)的持续更改,即连同子目录下的所有文件,目录都更新为这个用户组

        

      2、改变文件所有者:chown

         要注意,用户必须是已经存在于系统中的账号,也就是在/etc/passwd这个文件中有记录的用户名称才能改变。

        chown 还可以顺便直接修改用户组的名称。

        语法: chown [-R] 用户名:用户组名  文件或目录

        选项与参数:

          -R: 进行递归(recursive)的持续更改,即连同子目录下的所有文件,目录都更新为这个用户组

      什么时候要使用chown或chgrp呢?最常见的例子就是在复制文件给你之外的其他人时。如下将.bashrc文件复制成为.bashrc_test文件,并且是要给bin这个人

      

      3、改变权限:chmod

        设置权限有两种方法:使用数字或者符号进行权限的更改。

        数字类型改变文件权限:

          Linux文件的基本权限就有9个,分别是owner,group, others三种身份各有自己的read,write,execute权限。我们可以使用数字代表各种权限,

        r:4    w:2     x:1

        每种身份(owner, group, others)各自的三个权限(r,w,x)分数是需要累加的,如[-rwxrwx---], 分数则是:

        owner=rwr=4+2+1=7

        group=rwr=4+2+1=7

        others=---=0+0+0=0

        所以该文件权限是770

        数字改变权限

        chmod语法如下:chmod [-R] xyz 文件或目录     

        选项与参数:

          xyz: 就是刚刚提到的数字类型的权限属性,为xyz属性数值的相加。

          -R: 进行递归(recursive)的持续更改,即连同子目录下的所有文件,目录都更新为这个用户组

        

        符号类型改变文件权限

          通过u,g,o来分别代表user,group,others 3种身份。此外a代表all,即全部的身份。

    chmod

    u

    g

    o

    a

    +(加入)

    -(除去)

    =(设置)

    r

    w

    x

    文件或目录

          如下设置“-rwxr-xr-x”权限:

          

        如果我不知道原先的文件属性,而我只想增加.bashrc这个文件的每个人均可写入的权限,那么我就可以用:

         而如果是要将权限去掉而不更改其他属性,如去掉全部人的可执行权限,则:

        

     三、目录与文件的权限意义

      1、权限对文件的重要性:主要针对“文件的内容”

        r(read): 可读取此文件的实际内容

        w(write): 可以编辑、新增或者是修改该文件的内容(但不含删除该文,删除该文件与此文件的父目录是否有w权限有关)

        x(execute): 该文件能否被执行。

      2、权限对目录的中要性

        目录主要的内容是记录文件名列表,文件名与目录有强烈的关联。

        r(read contents in directory):

          表示具有读取目录结构列表的权限,所以当你具有读取一个目录的权限时,表示你可以查询该目录下的文件名数据,所以你就可以利用ls这个命令将该目录的内容列表显示出来。

        w(modify contents of directory):

          具有更改该目录结构列表的权限:

            新建新的文件与目录;

            删除已存在的文件与目录;

            将已存在的文件与目录进行重命名;

            转移该目录内的文件、目录位置。

        x(access directory):

           目录的x代表的是用户能否进入该目录成为工作目录的用途,所谓的工作目录就是你目前所在的目录

           与cd命令有关系

    四、Linux文件种类与扩展名

      1、文件

        a、文件种类:

          普通文件(regular file)

          纯文本文件(ASCII):内容为我们可以直接读到的数据

          二进制文件(binary)

          数据格式文件(data): 有些程序在运行的过程中会读取某些特定格式的文件,那些特定格式的文件可以被称为数据文件。

        b、目录(directory): 第一个属性为[d]

        c、连接文件(link):类似Windows系统下面的快捷方式,第一个属性为  [l]

        d、设备与设备文件(device)

          与系统外设及存储等相关的一些文件,通常都集中在/dev这个目录。通常又分为两种:

            块(block)设备文件:

              就是一些存储数据,以提供系统随机访问的接口设备,例如硬盘,软盘等。你可以随机地在硬盘的不同快读写,这种设备就是成组设备,你可以自行查一下/dev/sda看看,会发现第一个属性为[b].

            字符(character)设备文件:

              一些串行端口的接口设备,例如键盘、鼠标等。这些设备的特征就是“一次性读取”,不能够截断输出。其第一个属性为[c] 

          套接字(sockets):

            数据接口文件,这种文件通常被用在网络上的数据连接,其第一个属性为[s], 通常在/var/run这个目录中可看到这种文件类型。

          管道(FIFO,pipe): 

            FIFO一种特殊的文件类型,它主要的目的在解决多个程序同时访问一个文件所造成的错误问题。FIFO--》first-in-first-out,第一个属性为[p]

      2、Linux文件的扩展名

        常用的扩展名:

          a. *sh: 脚本或批处理文件(scripts),因为批处理文件为使用shell写成,所以扩展名就编成.sh

          b. *Z、*.tar.gz、*.zip、*.tgz:经过打包的压缩文件。

          c. *.html、*.php: 网页相关文件,分别代表HTML语法与PHP语法的网页文件。

      3、Linux 文件名长度限制

        使用默认的Ext2/Ext3文件系统时,针对文件的文件名长度限制为:

          单一文件或目录的最大容许文件名为255个字符;

          包含完整路径名称及目录(/)的完整文件名为4096个字符

      4、 Linux文件名的限制

        避免一些特殊字符: * ?< > ; & ! [ ] | ' " ` ( ) { } - +

  • 相关阅读:
    一个非常简单的IMPDP事儿
    在线修改redo日志大小
    OGG-02803 Encountered a Data Guard role transition
    Linux新加磁盘挂载和重启自动挂载
    ORACLE字符集修改ORA-02374ORA-12899ORA-02372
    oracle nid修改dbname
    python模块PIL-获取带噪点噪线的随机验证码
    mysql两个重要的日志redolog和binlog
    在Spring中使用数据验证组件hibernate-validator
    SpringMVC接收请求参数所有方式总结
  • 原文地址:https://www.cnblogs.com/SamLXW/p/6117148.html
Copyright © 2020-2023  润新知