Unix Linux文件类型与权限管理

 在小白与计算机的平常中,常常会碰到文件无(读、写、执行)权限,包括不少刚入门的程序员,也经常在别人的博客里会看到相似 chmod 777 XX.filechmod u+x XX.filechmod g-w XX.file这些不明觉厉的命令,今天来帮还不清楚的童鞋科普一下,电脑中每一个文件的权限 系统到底是如何管理的,又如何修改文件的权限。程序员

看懂文件类型与权限等信息

 先不慌,打开终端,在任意非空目录下咱们输入:安全

ls -l
复制代码

终端会输出该目录下全部文件的信息: bash

好,咱们来对每一列是什么分别介绍:

  1. -r-xr-xr-x:文件类型及权限信息
    咱们会发现任意一个文件第一列都是一个由 - d l p s b c D r w x + @ 这些字符组成的字符串,这一串字符到底是由哪几部分组成又分别表明什么呢?
    • 第一位字符:文件类型信息,-表明这是一个常规文件--Regular file,d表明这是一个文件夹--Directory,l表明文件连接--Symbolic link,更多文件类型(p-Named pipe、s-Socket、b/c-Device file、D-Door)请参考Unix file types
    • 第2-10位,这九位字符每三个为一组,每组的三个字符分别表明读(r)、写(w)、执行(x)权限,三组分别表明不一样全部者对该文件的权限,第一组:文件全部者的权限、第二组:这一组其余用户的权限、第三组:非本组用户的权限,总结以下图:
    • 在MacOS系统中,输入ls -l 发现文件权限格式与Linux稍有不一样,部分文件权限信息的末尾有”+“或”@“符号:
      咱们直接看官方说明:终端输入man ls,咱们能够看到这一段说明:
If the file or directory has extended attributes, the permissions 
    field printed by the -l option is followed by a '@' character.  
    Otherwise, if the file or directory has extended security 
    information (such as an access control list), the permissions 
    field printed by the -l option is followed by a '+' character.
复制代码

那什么是“extended security”呢?其实就是扩展安全信息
执行 ls -le 查看extended security: 网络

你会发现权限末尾有'+'的都会有 0: group:everyone deny delete,意义就很明显啦~

那什么又是“extended attributes”呢?继续查看“@”的含义,
执行 ls -l@xattr -l XX.file 查看扩展属性: spa

简单理解@就是表示文件或目录有额外属性,好比在MacOS上 从网上下载个文件有时会提示“此文件来自网络下载不安全”,就是这个属性起的做用。而从MacOS下copy文件到Linux系统上时也会由于这个属性出现打不开的状况。能够手动去除掉: xattr -c XX.file

  1. 其他每一列对应的信息以下:
    [类型+权限]---[链接]-[全部者]-[所属组]-[文件大小]-[最后修改日期]-[文件名称]

文件权限的修改:

一张图看懂修改文件权限的命令: 设计

经过按位与的设计巧妙的用三个二进制位表示了三种权限产生的8种组合。
用符号改变权限时,如: chmod a+r XX.file表示对用户、组、其余 所有添加读取权限。

以上,有任何疑问欢迎留言~code

相关文章
相关标签/搜索