基于 Red Hat Enterprise Linux 7.5 或者 CentOS 7.4


基本概念

Linux最核心的一个概念就是:Linux里面任何东西都可以被视为一个文件,包括系统本身(说到底Linux启动不就是调用那些开机文件再连带启动其他的文件么~~~)

User:文件拥有者

Group:文件所属群组

Others:非本文件持有者或者所属群组的其他人员

  • User就是字面上的意思,即文件是谁的(具体可执行哪些操作看权限)
  • Group则代表一个拓展版User,代表加入到该组内的所有人对这个文件具有特定的操作权限,但Group可以不包含User,也就是说一个文件的User可以不在这个文件的Group内
  • Others很好理解,不是本人也不是这个所属组的第三方人员
  • 注意:无论如何设置权限,唯有root是无法被阻挡的

其实权限的好处就是在生产环境变得更为安全,保证特定数据不会被职权外的人员所访问

包括root的所有账号信息都存储在/etc/passwd,密码在/etc/shadow,群组则在/etc/group,这三个文件请不要随意删除!


文件权限

-rw-r--r--.      1    root   root   2403    7月  20 05:34 initial-setup-ks.cfg
[文件类型和权限][连接数][User][Group][文件大小][ 最后修改时间 ][      文件名        ]

类型与权限:

 -         rw-   r--    r--
[文件类型][User][Group][Others]

权限分为4段

  • 文件类型:这表示这个文件是一个“文件”、目录或者是快捷方式

    • -(横杠):这是一个文件
    • d:这是一个目录
    • l(小写L):这是一个快捷方式
    • b:块设备文件,即以块的方式进行存储,其实指的就是硬盘
    • c:字符设备文件,IO设备,也就是鼠标、键盘这些使用物理接口的外设
    • p:管道文件(以后会补充)
    • s:套接口文件,怎么说呢,感觉类似网络的监听端口这样吧(以后会补充)
  • User:请向上看基本概念说明
  • Group:请向上看基本概念说明
  • Others:请向上看基本概念说明
  • rwx在下面会详细说明

连接数:i-node

User:拥有者账号

Group:该文件所属群组

文件大小:容量,预设单位为Bytes

最后修改时间:代表这个文件的建立日期或者最后修改日期,如果时间距离现在太久,只显示年份

文件名:就是文件的名字,但如果这个文件的名字前有“.”(例如 .alice )代表这个文件是一个隐藏文件

常用命令

chown [-R] filename/dirname

修改文件拥有者

-R:递归修改,这个参数是用在批量修改目录上面的,即修改一个目录的时候不加-R参数的话,只是修改目录表面的持有者,不会对目录里面的文件进行拥有者修改

chgrp [-R] filename/dirname

修改文件所属群组

-R:递归修改,和chown -R的效果是一个意思

chmod [-R] xyz filename/dirname

修改文件权限

xyz每个字母都代表0~7的数字

-R:递归修改,意思和chown -R、chgrp -R一个意思

  • r(4):可读,即读取
  • w(2):可写,即往文件里面增加、修改、删除内容
  • x(1):可执行,用Windows的说法就是这个文件能不能启动,虽然在Linux上你可以给任何文件加上x权限来执行,但具体能不能用还是看这个文件的后缀名有没有相关程序来执行功能,所以从Windows的角度来看Linux的x权限不大好理解这个;但需要注意的是,Linux下文件能不能被执行与后缀名是没有关系的,只和x权限有关,所以能不能执行这个后缀名的文件就是另外一回事了

r、w、x的对应数字为4、2、1,即为什么说xyz的地方为0~7就很好理解了吧,满权限rwx加起来的数值刚好就是7,没有任何权限加起来就是0,为什么要rwx定为421的原因其实就是电脑的运行方式(稍微有点计算机基础的都知道用电脑是如何用二进制是来表示十进制数)

举点例子好了:
-rwxr-x-wx 就是[4+2+1][4+0+1][0+2+1],各部分加起来就是753
-----wx--x 就是[0+0+0][0+2+1][0+0+1],即031

rwx转换数字这个需要多加练习,最好能一眼看出一个文件的3组rwx对应总权限数字是多少

当然如果不习惯xyz这种方式添加权限的话还有另一种方式

chmod  u(User)                       +(加上)     r(可读)      filename/dirname
g(Group) -(减去) w(可写)
o(Others) =(设定) x(可执行)
a(All,即User+Group+Others) u、g、o都可以理解,a指的是同时指定User、Group、Others,也就是a选项是同时操作ugo
+:添加这个权限,如果ugo对应位置有相应权限则不变,如果没有就加上
-:去掉这个权限,如果ugo对应位置没有相应权限则不变,如有有就去掉
=:设定这个权限,这个和+和-就完全不一样了,=是设定了相应权限之后那么ugo对应组就有哪些权限,假设某个文件权限本身是-rwxrwxrwx,那么 chmod u=r,g=w,o=x 就会变成-r---w---x了哦 以alice这个文件为例,下面每一个例子都是互相独立的
-rw-r--r--. 1 root root 0 7月 26 06:06 alice chmod u-r alice
--w-r--r--. 1 root root 0 7月 26 06:06 alice chmod g-r,o+rx ailce
-rw----r-x. 1 root root 0 7月 26 06:06 alice chmod a-r alice
--w-------. 1 root root 0 7月 26 06:06 alice chmod a=rw alice
-rw-rw-rw-. 1 root root 0 7月 26 06:06 alice

权限对于文件和目录的意义(重点)

  • 权限对档案的重要性
    • r:可读,可以读取文件的实际内容
    • w:可写,即往文件里面增加、修改、删除内容
    • x:可执行,可以被系统执行的权限(具体看chmod关于x权限的说明)
    • 注意:文件本身是否可以删除与文件本身的权限无关,是由该文件所处目录的w权限来决定的
  • 权限对于目录的重要性
    • r:可读,可以读取目录的结构清单,也就是可以将该目录有哪些文件可以列出来
    • w:可写,这个权限对目录来说非常重要,也就是说w权限可以修改该目录结构
      • 在该目录内建立新文件或者子目录
      • 删除该目录内已存在的文件或者子目录(无论该文件或者子目录的权限是什么)
      • 将该目录内已存在的文件或者子目录进行重命名
      • 移动该目录内已存在的文件或者子目录

也就是说,w权限可以理解成目录内有关的文件名修改就对了,怎么说呢……新增加了一个文件,目录的结构列表就多了一个名字;删除一个文件,目录结构列表就少了一个名字;重命名一个文件,目录一个文件的名字就修改了嘛~~~

补充一点就是,w权限可以无视子文件和子目录的权限进行删除的原因在于子文件和子目录的权限只是决定了对其自身内容的修改,并不决定自身,所以自身是否能删除是取决于所在的父目录的权限决定的

一个不是很恰当的例子就是,我的书架里面放了一本别人上了锁的日记,我既不能看也没法做其他的操作;但这是我的书架,我可以将别人放在我书架上的上锁日记拿出来放到(是移动不是复制)其他地方或者直接扔进垃圾桶里面

    • x:可进入,这个和文件的x权限意义就不一样了,对于目录来说,执行就是进入这个目录,同时也是目录最核心的权限

重点来了~~ rwx的重要性由高到低来说,文件是rwx,目录是xwr

可能很多人不是很注意这个权限问题,但对于文件操作来说这点至关重要

  • 为什么文件的权限重要性顺序是rwx?

首先,你要能读取(r)文件的内容,你才能去写入(w)内容,如果你连文件里面有什么都不知道,你又怎么去写入东西进去呢?何况是执行(x)

对于计算机来说,任何文件都要转化成1和0才能执行,如果计算机连文件有多少个1和0都不知道,该怎么去执行(x)文件呢~~~

  • 为什么目录的权限重要性顺序是xwr?

首先,你要进入(x)这个目录,你才能去修改文件(w)和列出目录结构清单(r)

举个例子可能比较好理解一点:

目录就像一个抽屉,x权限就是打开这个抽屉的钥匙,w权限就是翻找(修改)东西的能力,r权限就是个抽屉里面的照明灯

首先你连钥匙(x)都没有,你怎么翻找东西(w)和知道抽屉里面有什么吗(r)?

其次,如果我已经事先就知道这个抽屉里面有哪些东西了,那我还需要照明灯(r)吗?并不一定需要对吧,照明灯(r)的功能只是辅助我翻找东西(w)而已,我甚至都可以摸黑翻找东西~~~

所以现在能理解目录的权限重要性顺序为什么和文件是反过来的吧

假设有这么两个目录和并且其中一个目录有文件
/dir1/file1
/dir2 操作 /dir1 /dir1/file1 /dir2 说明
读取file1内容 x r - 只需要有个x权限进到dir1里面,因为没有对file1做任何文件名形式上的修改,对dir1来说也就不需要w了
修改file1内容 x rw - 进入dir1里面,没动文件名就不需要w,但需要修改file1内容,所以需要读才能写(rw)
执行file1内容 x rx - 进入dir1里面,没动文件名就不需要w,但需要执行file1内容,所以需要读才能执行(rx)
删除file1文件 wx - - 进入dir1里面,结构清单里面少了一个文件名,所以需要w,但删除file1就无所谓file1有没有权限了
将file1复制到dir2 x r wx 进入dir1里面,没动dir1里面的文件名就不需要w,但dir2需要进入并且在dir2的结构清单上多了一个文件名,所以dir2需要wx
将file1移动到dir2 wx - wx 进入dir1里面,file1被移动,dir1结构清单里面少了一个文件名,所以需要w;同理dir2多了一个文件名,所以也需要w 上面所有对于目录的操作完全没有用到r权限,所以对目录来说r权限是可有可无的东西

Re:从零开始的Linux之路(文件权限)的更多相关文章

  1. Linux命令:修改文件权限命令chmod、chgrp、chown详解

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权 限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而 ...

  2. Linux用户及文件权限管理

    Linux用户及文件权限管理

  3. linux中的文件权限chmod

    linux中的文件权限chmod ​ 还是GPU集群那点事儿,集群之间磁盘互相挂载,普通用户也可以操作/cu02_nfs./cu04_nfs文件夹,这就牵扯到权限的问题,去google发现所谓的777 ...

  4. 自学Linux Shell7.2-linux文件权限

    点击返回 自学Linux命令行与Shell脚本之路 7.2-linux文件权限 在linux中每个文件有所有者.所在组.其它组的概念 所有者一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有 ...

  5. Linux(三)__文件权限、系统的查找、文本编辑器

    一.文件权限 1.理解文件权限及其分配 2.掌握查看文件和目录的权限 3.掌握权限文字表示法和数值表示法 4.学会使用chmod命令设置权限 5.学会使用chown命令修改属主和组 linux文件能不 ...

  6. linux笔记六-------文件权限设置

    1.文件(目录)权限本身划分:读read   写write   执行execute 权限从用户的角度划分:主人权限user    同组用户权限group    其他组用户的权限other music. ...

  7. linux中改变文件权限和属性

    Linux中,默认显示所有用户名的文件在/etc/passwd,用户组的信息在/etc/group 密码/etc/shadow chgrp改变文件所属用户组 chgrp [-R] 用户组名 文件或目录 ...

  8. Linux 学习笔记 文件权限

    * Linux系统会为各种各样的功能创建不同的用户账户,而这些账户并不是真的用户.这些账户称作系统账户,是系统上运行的各种服务进程访问资源用的特殊账户. 所有运行在后台的服务都需要用一个系统用户账户登 ...

  9. 关于linux下的文件权限

    在ls指令加 -l 参数能看到文件权限 就像这样: drwxrwxr-x 2 asml users 4096 Jul 24 02:45 desktop 第一个d表示这是个目录,若为"-&qu ...

随机推荐

  1. 掌握MySQL数据库这些优化技巧,事半功倍!

    一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇文章主要谈谈MySQL数据库在发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大 ...

  2. PostgreSQL-11-WITH语句

    1.WITH语句原理:通用表表达式(Common Table Expressions)/CTEs,在大型查询中的辅助语句 WITH name_for_summary_data AS ( SELECT ...

  3. B.出题人的女装

    链接:https://ac.nowcoder.com/acm/contest/358/B 题意: 出题人早上起床就打算穿衣服,他有两箱衣服,因为懒,他在这两天只打算打开一个箱子. 两个箱子中一个有n件 ...

  4. javascript ES 6 class 详解

    Introduction 上篇文章大致介绍了一些ES6的特性,以及如何在低版本浏览器中使用它们.本文是对class的详解. 译自Axel Rauschmayer的Classes in ECMAScri ...

  5. 【数据分析 R语言实战】学习笔记 第十一章 对应分析

    11.2对应分析 在很多情况下,我们所关心的不仅仅是行或列变量本身,而是行变量和列变量的相互关系,这就是因子分析等方法无法解释的了.1970年法国统计学家J.P.Benzenci提出对应分析,也称关联 ...

  6. 关于svn提交的时候强制写注释

    本文固定链接: http://www.linuxyan.com/linux-service/229.html 转载请注明: admin 2012年09月29日 于 ㄨ销声匿迹.Linux 发表 在sv ...

  7. static心得

    TextClass text; 吉晨   static注意 只要显式调用一个类的某一个static变量,那么就会连带static块,所有static变量一起调用,哪怕不去new一个对象,这时候已经对这 ...

  8. HDU 1950 Bridging signals (LIS,O(nlogn))

    题意: 给一个数字序列,要求找到LIS,输出其长度. 思路: 扫一遍+二分,复杂度O(nlogn),空间复杂度O(n). 具体方法:增加一个数组,用d[i]表示长度为 i 的递增子序列的最后一个元素, ...

  9. Servlet和JSP之JSTL学习

    JSTL JSTL就是JSP标准标签库(JavaServer Pages Standard Tag Library, JSTL)是一个定制标签库的集合,用来解决像遍历Map或集合.条件测试.XML处理 ...

  10. java 核心技术卷一笔记 6 .2接口 lambda 表达式 内部类

    6.2 接口实例 6.2.1 接口与回调 在java.swing包中有一个Timer类,可以使用它在到达给定的时间间隔时发出通告,假如程序中有一个时钟,就可以请求每秒钟获得一个通告,以便更新时钟的表盘 ...