热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

CentOS6.4文件属性和默认权限

图一:linux文件属性图二:linux默认权限在图一中,我们看到了,图中分为七栏,每一栏分别代表什么我会在下面详细说明,在图二中,我们看到test1文件与test2目录文件默认权限,那又分别又代表什么,好了废话不多说,我们下面来详细说一下。1.

图一:linux 文件属性

图二 : linux 默认权限

在图一中,我们看到了,图中分为七栏,每一栏分别代表什么我会在下面详细说明,在图二中,我们看到test1文件与test2目录文件默认权限,那又分别又代表什么,好了废话不多说,我们下面来详细说一下。

1. 文件的默认属性

在图一中,我们可以看到,文件有默认属性分为七栏,其意义分另为:

第一栏: 代表这个文件的类型与权限(permission)

文件类型:     
           -:普通文件 (f)      
           d: 目录文件      
           b: 块设备文件 (block)      
           c: 字符设备文件 (character)      
           l: 符号链接文件(symbolic link file)      
           p: 命令管道文件(pipe)      
           s: 套接字文件(socket)

文件权限: 9位,每3位一组,每一组:rwx(读,写,执行), r--

           第一组为: 文件拥有者的权限, 该文件的拥有者可以读写,但不可执行;

           第二组为: 同群组的权限

           第三组为: 其他非本群组的权限

第二栏: 文件硬链接的次数 (我会在磁盘管理时详细说明)

第三栏: 表示这个文件(或目录)的拥有者(owner)

第四栏: 表示这个文件的所属群组(group)

第五栏: 为这个文件的容量大小,默认单位为bytes

第六栏: 为这个文件的建档日期或者是最近的修改日期

           访问:access     
           修改:modify,文件内容发生了改变      
           改变:change,metadata,元数据

第七栏: 为这个文件的文件名

2. 文件与目录的默认权限

从上面的讲解中我们可以看到,一个文件有若干个属性,包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 、文件 (-) 等等的属性! 要修改属性的方法在我在前面的博客中也讲过 (chgrp, chown,chmod) 。那么现在我们知道如何创建或者是改变一个目录或文件的属性了,不过, 你知道当你创建一个新的文件或目录时,他的默认权限会是什么吗?嘿嘿!那就与 umask 这个玩意儿有关了!那么 umask 是在做什么呢?基本上,umask 就是指定 目前使用者在创建文件或目录时候的权限默认值, 那么如何得知或配置umask 呢?

3. umask(遮罩码)命令

如下图:

1). 查看方式有两种,一种可以直接输入 umask ,就可以看到数字型态的权限配置分数, 一种则是加入 -S (Symbolic) 这个选项,就会以符号类型的方式来显示出权限了!从第一种方式,我们看到了四组数字,奇怪不应该是三组吗?其实第一组是特殊权限用的,我们暂时不用去管它,在后面的博客中我会详细讲解,先卖个关子!在默认权限的属性上,目录与文件是不一样的。我们知道 x 权限对于目录是非常重要的(不理解的朋友可以看下面,目录与文件的权限意义)!但是一般文件的创建则不应该有运行的权限,因为一般文件通常是用在于数据的记录嘛!当然不需要运行的权限了。因此,默认的情况如下:

若使用者创建为”文件“则默认“没有可运行( x )权限”,亦即只有 rw 这两个项目,也就是最大为 666 ,默认权限如下:     
-rw-rw-rw-

若使用者创建为”目录“,则由于 x 与是否可以进入此目录有关,因此默认为所有权限均开放,亦即为 777 ,默认权限如下:     
drwxrwxrwx

2). 要注意的是,umask 的值指的是“该默认值需要减掉的权限!”因为 r、w、x 分别是 4、2、1 ,所以!也就是说,当要拿掉能写的权限,就是减去2 ,而如果要拿掉能读的权限,也就是减去4 ,那么要拿掉读与写的权限,也就是减去 6 ,而要拿掉运行与写入的权限,也就是减去 3 ,这样了解吗?请问你, 5 是什么?呵呵! 就是读与运行的权限啦!

如果以上面的例子来说明的话,因为 umask 为022 ,所以 user 并没有被拿掉任何权限,不过 group 与 others 的权限被拿掉了 2 (也就是 w 这个权限),那么当使用者:

创建文件时:(-rw-rw-rw-) - (-----w--w-) ==> -rw-r--r-- (666-umask)

创建目录时:(drwxrwxrwx) - (d----w--w-) ==> drwxr-xr-x (777-umask)

以上就是umask作用,你懂了吗?对于r、w、x 分别代表 4、2、1 下面会详细讲解(数字权限)!

4. 目录与文件的权限的重要性

1). 权限对文件的重要性

文件是实际含有数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件(binary program)等等。 因此,权限对于文件来说,他的意义是这样的:

  • r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等

  • w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件)

  • x (execute):该文件具有可以被系统执行的权限

那个可读(r)代表读取文件内容是还好了解,那么可执行(x)呢?这里你就必须要小心啦! 因为在Windows底下一个文件是否具有执行的能力是由扩展名来判断的, 例如:.exe, .bat等等,但是在Linux底下,我们的文件是否能被执行,则是藉由是否具有x这个权限来决定的!跟扩展名是没有绝对的关系的!至于最后一个w这个权限呢?当你对一个文件具有w权限时,你可以具有写入/编辑/新增/修改文件的内容的权限,但并不具备有删除该文件本身的权限!对于文件的rwx来说,主要都是针对文件的内容而言,与文件名的存在与否没有关系喔!因为文件记录的是实际的数据嘛!


2). 权限对目录的重要性

文件是存放实际数据的所在,那么目录主要是储存啥玩意啊?目录主要的内容是在记录文件名的列表,文件名与目录有强烈的关联性! 所以如果是针对目录时,那个 r, w, x 对目录是什么意义呢?

  • r (read contents in directory):       
    表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!

  • w (modify contents of directory):       
    这个可写入的权限对目录来说,是很了不起的! 因为他表示你具有异动该目录结构列表的权限,也就是底下这些权限:        

    • 建立新的文件与目录

    • 删除已经存在的文件与目录(不论该文件的权限为何!)

    • 将已存在的文件或目录进行更名

    • 搬移该目录内的文件、目录位置


    总之,目录的w权限就与该目录底下的文件名异动有关就对了啦!


  • x (access directory):       
    目录的执行权限有啥用途啊?目录只是记录文件名而已,总不能拿来执行吧?没错!目录不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的用途!所谓的工作目录(work directory)就是你目前所在的目录啦!举例来说,当你登入Linux时, 你所在的家目录就是你当下的工作目录。而变换目录的指令是cd(change directory),你能否改变目录,就得看x权限啦,嘿嘿!

5. 数字权限

数字类型与文件权限


Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限, 先复习一下刚刚上面提到的数据:文件的权限字符为:-rwxrwxrwx, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

r:4     
w:2      
x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:[-rwxrwx---] 分数则是:    
owner = rwx = 4+2+1 = 7     
group = rwx = 4+2+1 = 7      
others= --- = 0+0+0 = 0
所以等一下我们设定权限的变更时,该文件的权限数字就是770啦!是不是很简单啊!

推荐阅读
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • windows便签快捷键_用了windows十几年,没想到竟然这么好用!隐藏的功能你知道吗?
    本文介绍了使用windows操作系统时的一些隐藏功能,包括便签快捷键、截图功能等。同时探讨了windows和macOS操作系统之间的优劣比较,以及人们对于这两个系统的不同看法。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
author-avatar
沙胆建筑_829
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有