零、Linux中的权限为什么重要?

  权限直接关系数据安全!

一、用户基础概念:

  1. 所有者(owner):拥有这个文件的用户。一般拥有目录或文件的所有权限。
  2. 用户组(group):几个用户组成一个用户组,一般来说组内用户同时具有某些权限。
  3. 其他人(others):相对于owner和group的其他人。一般比前两者少某些权限。

二、目录与文件的权限的意义:

  1. 文件是实际包含数据的,一般文本文件、数据库文件、二进制可执行文件等,因此权限对于文件来说,意义如下:
    1. r(read):可读取此文件的实际内容,例如读取文本文件hello.txt里的hello,world!
    2. w(write):可以编辑、新增或是修改文件的内容(注:不包含删除该文件本身的权限
    3. x(eXecute):该文件具有被系统执行的权限(注:Linux下,文件能否被执行,不像windows下看文件扩展名,而是由文件是否具有x权限来决定的
  2. 目录主要的内容是记录文件名列表。权限对于目录来说,意义如下:
    1. r(read contents in directory):表示具有读取目录结构列表的权限,当具有一个目录的r权限时,就可以使用ls将其打印出来
    2. w(modify contents of directory):这个可写入权限对于目录来说很强大,它代表者你可以:
      1.   新建新的文件与目录
      2.   删除已经存在的文件与目录(且不论该文件的权限如何)
      3.   将已存在的文件或目录重命名
      4.   转移该目录内的文件、目录位置。
      5.  总之、目录的w权限与该目录下的文件名变动有直接关系。
    3. x(access directory):目录x代表用户是否能进入该目录成为工作目录,例如我具有/data的x权限,那么我可以cd /data,反之则不行。

例如:查看/data下的test.txt文件的详细信息可以看到:

[root@oldboy2 /]# ls -l /data/test.txt
-rw-r--r--. 1 oldboy users 296 Apr 29 11:15 /data/test.txt

  打印的结果中:

  1. 第一个字符 [-] :表示此文件为普通文件

      • 若是[d]则是目录
      • 若是[-]则是文件
      • 若是[l]则是连接文件(linkfile)
      • 若是[b]则表示设备文件里面可供储存的接口设备
      • 若是[c]则表示设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取设备)

  2、后面的[rw-r--r--]字符:表示此文件的权限信息,三个一组。

  • 第一组[rw-]:表示所有者的权限为r、w,可读可写。
  • 第二组[r--]:表示同用户组的权限为r,只能读。
  • 第三组[r--]:表示其他非本用户组的权限为r,只能读。

三、Linux存放用户身份和用户组记录的文件。

/etc/passwd                     #默认情况下,所有系统上的账号与一般身份用户以及root的信息都记录在这个文件里
/etc/shadow #记录个人的密码
/etc/group #记录所有的用户组名称
#这三个文件是Linux里账号、密码和用户组信息的集中地。不可随意删除。

四、更改文件用户组、所有者、权限的命令。(注:以下操作都在root下进行)

  1. 改变文件用户组chgrp(change group)

    chgrp users  /root/install.log                            #要改变的组名必须在/etc/group下存在
                                      #将install.log文件用户组改为users
  2. 改变文件所有者chown(change owner)
    chown xiaoming /data/test.txt                             #目标用户必须在/etc/passwd下存在
                                      #将test.txt文件的所有者为xiaoming
  3. 改变文件权限chmon
    1. 方法一,Linux中每种权限对应着一个分数,对应表如下

      r(read)                    ==    4
      w(write) == 2
      x(executable) == 1

更改文件的权限就把需要的权限分数相加后放在对应的owner、group、others位置上。如下

chmod     /data/test.txt                                         #将/test.txt权限更改为-rw-r-----
                                     #6==4+2 对应rw-;4对应r--;0对应---。只有owner可读写,group可读,others无任何权限)

     2.方法二,前面说过user(也就是owner)、group、others三种身份,在Linux中用u,g,o代表这三种身份的权限。如下: 

        u                 +(加入某个权限)                    r
        g -(去除某个权限) w
        o =(设置某个权限) x
        a(all)

      实践:例如要设置一个文件的权限为-rwxr-xr-x,也就是user具有可读、可写和可执行权限,group与others(g/o)具有可读与可执行的权限。代码如下:

[root@oldboy2 /]# chmod u=rwx,go=rx /data/test.txt
[root@oldboy2 /]# ls -l /data/test.txt                        #查看权限
-rwxr-xr-x. oldboy users Apr : /data/test.txt            

参考:1、鸟哥的Linux私房菜

   2、https://linux.cn/

Linux目录与文件的权限的更多相关文章

  1. Linux目录与文件的权限意义

    ls -l和ls -al的区别:第一个不会显示隐藏文件,第二个会显示隐藏文件(以点(.)开头的文件) 一.权限对文件(r.w.x主要针对文件的内容而言)的重要性 r:可读取文件内容 w:可以编辑.新增 ...

  2. linux下为目录和文件设置权限

    摘:linux下为目录和文件设置权限 分类: Linux2012-05-09 03:18 7456人阅读 评论(1) 收藏 举报 linuxwordpressweb数据库serverfile linu ...

  3. Linux "ls -l"文件列表权限详解

    ls Linux "ls -l"文件列表权限详解 1.使用 ls -l 命令 执行结果如下(/var/log) : drwxr-x--- root adm -- : apache2 ...

  4. Linux学习之文件特殊权限详解(SetUID、SetGID、Sticky BIT)(十一)

    Linux学习之文件特殊权限详解(SetUID.SetGID.Sticky BIT) 目录 SetUID SetGID Sticky BIT SetUID SetUID简介 只有可以执行的二进制程序和 ...

  5. Linux目录和文件——查询目录和文件的命令

    Linux目录和文件——查询目录和文件的命令 摘要:本文主要学习了在Linux系统中是如何查询目录和文件的. which命令 which命令是根据PATH环境变量设置的路径,去搜索执行文件. 基本语法 ...

  6. Linux目录和文件——管理目录和文件的命令

    Linux目录和文件——管理目录和文件的命令 摘要:本文主要学习了Linux系统中关于目录和文件的操作. cd命令 cd命令用来切换工作目录,是Change Directory的缩写. 基本语法 cd ...

  7. linux 目录下文件批量植入和删除,按日期打包

    linux目录下文件批量植入 [root@greymouster http2]# find /usr/local/http2/htdocs/ -type f|xargs sed -i "   ...

  8. linux新手向-文件的权限及修改

    如果访问或执行一个文件显示Permission deny,一般是权限问题. 使用"ls -l"可以查看该目录下文件的详细信息. 1.读懂权限 第一列就是权限信息,形如: drwxr ...

  9. Linux目录和文件——目录格式

    Linux目录和文件——目录格式 摘要:本文主要了解了Linux系统的目录格式. 一切皆文件 Linux下“一切皆文件”是Unix/Linux的基本哲学之一. Linux中所有内容都是以文件的形式保存 ...

随机推荐

  1. SLF4J 的几种实际应用模式--之三:JCL-Over-SLF4J+SLF4J

    我们前面已经讲过了 SLF4J 的两种用法:SLF4J+Log4J  和 SLF4J+Logback,那是在比较理想的情况下,所用组件只使用了 SLF4J 这一种统一日志框架的时候.可是 JCL 一直 ...

  2. java学习笔记 --- 数组

    一.Java的内存分配   A:栈内存: 存储局部变量,只要是在方法中定义的变量都是局部变量.一旦变量的生命周期结束该变量就被释放.   B:堆内存: 存储所有new出来的,及实体(对象),每一个实体 ...

  3. iOS开发之transform

    transform主要应用于动画 1.让一个按钮每次向上移动100的距离 UIButton *head = (UIButton *)[self.view viewWithTag:10]; head.t ...

  4. C—动态内存分配之malloc与realloc的区别

    在程序的执行期间分配内存时,内存区域中的这个空间称为堆(heap).还有另一个内存区域,称为堆栈(stack),其中的空间分配给函数的参数和本地变量.在执行完该函数后,存储参数和本地变量的内存空间就会 ...

  5. 视频swiper轮播

    关于本次文章的内容,实际上是咪咕阅读详情页中的一个前端需求要做的效果,不过比起原需求,此次案例已经被删减掉许多部分了.音频部分舍弃,调用客户端接口舍弃,并做一些整理.最后留下的是这个精简版的案例.方便 ...

  6. xlwt 格式控制

    Examples Generating Excel Documents Using Python’s xlwt 使用Python的xlwt生成Excel文档示例 Here are some simpl ...

  7. [C++]STL容器Vector的内存释放

    直接抛出两句话,说明到底应该如何释放Vector占用的内存. “vector的clear不影响capacity,你应该swap一个空的vector.” <Effective STL>中的“ ...

  8. 【C++】模拟实现auto_ptr

    看了<Effctive C++>,里面提到用对象去管理资源,可以有效防止内存泄漏. 结合auto_ptr特性,稍微思考了一下,实现了一个简单的auto_ptr (因为代码量小,就不分文件了 ...

  9. 老李案例分享:MAT分析应用程序服务出现内存溢出过程

    老李案例分享:MAT分析应用程序服务出现内存溢出过程   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loa ...

  10. ACdream 1112 Alice and Bob (sg函数的变形+素数筛)

    题意:有N个数,Alice 和 Bob 轮流对这些数进行操作,若一个数 n=a*b且a>1,b>1,可以将该数变成 a 和 b 两个数: 或者可以减少为a或b,Alice先,问谁能赢 思路 ...