zoukankan      html  css  js  c++  java
  • Linux文件属性及权限

    原创作品,转载请注明出处:https://www.cnblogs.com/shrimp-can/p/10039288.html

    在Linux中,一个十分重要的内容就是文件权限。

    一、文件存取访问身份

    Linux的优秀之处在于她的多用户多任务环境,为了方便文件的管理,有三种文件存取访问身份,分别是:用户、用户组、其他

    二、文件属性

    我们在用ls列举出当前工作目录下的文件时,显示的只是文件或目录名,要想显示属性,使用ls -l,要列举出隐藏文件,使用ls -al。

    下图是我列举出的桌面下的部分文件及其属性的显示。

    第一列为10个字符,代表这个文件的类型和权限。在下面会重点介绍。

    第二列是一个数字,表示有多少文件名链接到此节点。(Linux的目录树是使用文件名来记录的)

    第三列表示这个文件的所有者账号。

    第四列表示这个文件的所属组账号。

    第五列的数字代表这个文件的大小,单位是Byte。

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

    最后列是文件名,如果文件名前多个‘.’,代表这个文件是隐藏文件。

    三、文件属性的更改

    1.改变文件所有者chown

    chown [-R] 账号名称 文件或目录

    要更改目录下所有子目录或文件的所有者,加上-R参数,代表进行递归更改。

    例1:将install.log文件的所有者改为bin

    chown bin install.log

    2.改变文件所属用户组chgrp

    chgrp [-R] 用户组 文件或目录

    要更改目录下所有子目录或文件的所有者,加上-R参数,代表进行递归更改。

    注意:用户组的名字必须要存于/etc/group中,不然不能更改成功

    例2:将文件install.log的所属用户组改为users

    chgrp users install.log

    3.文件属性需要修改的常见场景

    我们复制文件时,如使用cp

    cp 源文件 目标文件

    复制后的目标文件与源文件会具有相同的属性和权限,如将文件传给bin,若文件中对其他人只有读的权限,那么bin就不能对文件进行修改等操作,因此需要修改文件所有者和用户组

    四、文件权限

    在Linux中,用户对文件有三种访问权限:read、write、excute

    在文件属性中,第一列代表文件类型和权限。其中,第一个字符代表文件的类型,Linux中的文件类型表示后面会介绍。接下来的字符中,每3个为一组

    第一组为文件所有者的权限,第二组为所属用户组权限,第三组为其他人的权限。

    1.文件权限含义

    文件权限三个为一组,均为“rwx”三个参数的组合

    r:read代表可读

    w:write代表可写

    x:execute代表可执行

    这个三个权限的位置不会发生改变,如果没有该权限,就用-替代。

    例3:-rwxr-xr--

    -:表示文件类型,-表示这是一个文件

    rwx:所有者的权限,可读、可写、可执行

    r-x:所属用户组的权限,可读、可执行

    r--:其他用户的权限,可读

    2.文件权限的数字表示

    三个权限的位置不会改变,可以使用数字来代表各个权限

    r:4

    w:2

    x:1

    每种身份的权限为这三个权限的和

    例4:-rwxr-xr--

    所有者权限为:4+2+1=7

    用户组权限为:4+1=5

    其他人的权限为:4

    所以该文件权限为754

    3.文件权限的修改chmod

    1.数字类型的修改

    chmod [-R] number 文件或目录

    -R:进行递归修改,连同子目录下的所有文件都会更改

    例5:将.bashrc这个文件的权限改为-rw-r--r--

    chmod 644 ./bashrc

    2.字符类型的修改

    有user、group、others三种身份,用u、g、o来代表,a代表全部的身份

    chmod

    u

    g

    o

    a

    +

    -

    =

    r

    w

    x

    文件或目录

    例6:设置文件./bashrc的权限为-rwxr-xr-x

    chmod u=rwx,go=rx ./bashrc

    例7:增加./bashrc这个文件的每个人均可写入的权限

    chmod a+w ./bshrc

    例8:去掉./bashrc这个文件的每个人均可写入的权限

    chmod a-w ./bashrc

    4.目录与文件的权限意义

    1 文件的权限意义

    r:可读取文件的内容

    w:可以编辑、增加或修改文件的内容

    注意:不能删除该文件

    x:该文件有被系统执行的权限

    在Windows下一个文件是否具有执行能力是通过扩展名来判断的,如.exe, .bat, .com等,Linux下是由是否具有x权限来决定的,与文件名没有绝对关系

    2 目录的权限意义

    r:可以读取目录结果列表,即可以查询该目录下的文件名数据,利用ls将该目录的内容列表显示出来

    w:可以更改目录结果列表包括:

    a:信件文件与目录

    b:删除以及存在的文件与目录(不管该文件的权限为何)

    c:将以存在的文件或目录重命名

    d:转移目录内的文件、目录位置

    x:用户可以进入该目录成为工作目录

    例9:有个目录权限如下:drwxr--r--,系统有个账号叫vbird,但是这个账号并没有支持用户组,请问vbird对这个目录有何权限,是否可切换到此目录中

    vbird对此目录只有r权限,因为没有x权限,所以不能切换到此目录内

    例10:有个账号dmtsai,他的主文件夹在/home/dmtsai,dmt对此目录有rwx权限,若此目录下有个the_root.data的文件,权限为:-rwx------,dmtsai对此文件的权限是什么,可否删除此文件

    dmtsai对此文件来说是others身份,没有任何权限。这个文件在他的主文件夹下,他对主文件夹有rwx的权限,所以他可以删除此文件

    五、文件种类以及其属性表示

    -:一般文件

    d:目录文件

    l:链接文件

    b:块设备文件,即一些存储数据以提供系统随机访问的接口设备,如硬盘、软盘等

    c:字符设备文件,即一些串行端口的接口设备,如鼠标、键盘等

    s:套接字,数据接口文件,通常被用在网络上的数据传输

    p:FIFO文件

     

  • 相关阅读:
    [译]Vulkan教程(03)开发环境
    [译]Vulkan教程(02)概况
    [译]Vulkan教程(01)入门
    CSharpGL(57)[译]Vulkan清空屏幕
    CSharpGL(56)[译]Vulkan入门
    CSharpGL(55)我是这样理解PBR的
    CSharpGL(54)用基于图像的光照(IBL)来计算PBR的Specular部分
    [译]背景:着色的物理和数学(4)
    [译]背景:着色的物理和数学(3)
    [译]背景:着色的物理和数学(2)
  • 原文地址:https://www.cnblogs.com/shrimp-can/p/10039288.html
Copyright © 2011-2022 走看看