深入了解Linux的文件权限

目录
  • 一、Shell是什么
    • 1、Shell承担用户和内核间的翻译工作
    • 2、拒绝用户非法请求,保护内核
    • 3、派生子进程执行用户指令
  • 二、用户切换与提权
    • 1、普通用户与root用户的切换
    • 2、普通用户指令短暂提权
  • 三、文件权限的理解
    • 1、文件权限=角色的权限+文件属性
    • 2、Linux中的三种角色
    • 3、drwxrwxr-x代表的意义
    • 4、目录的权限
  • 四、粘滞位(公共目录使用)
  • 五、权限总结

一、Shell是什么

Shell是操作系统外壳程序的统称,Windos中的图形化界面、Linux中的命令行外壳都是外壳程序。CentOS中的外壳程序被称为bash。

1、Shell承担用户和内核间的翻译工作

Shell是命令行解释器。

Linux严格意义上说的是一个操作系统,我们称之为"核心(Kernel)"。但是用户和内核沟通的学习成本很高,所以在内核外部有一层Shell外壳程序,将用户输入的指令翻译传递给内核,内核处理后,将结果返回给Shell,由Shell向用户传达指令的最终结果。

2、拒绝用户非法请求,保护内核

当用户输入非法指令时,shell不会再去询问内核结果,而是直接拒绝用户的非法请求。

3、派生子进程执行用户指令

因为Shell是用户和内核沟通的唯一桥梁,一般Shell不参与指令的执行,而是通过派生子进程的方式执行用户的指令。(子进程挂了,但Shell不会受到影响)

二、用户切换与提权

1、普通用户与root用户的切换

su//切换后路径不变
su -//切换后来到家目录

普通用户切换为root用户需要输入root密码,而root用户切换成普通用户无需 任何验证。

2、普通用户指令短暂提权

sudo whoami

当该用户被添加至etc/sudoers中,sudo为最近的一条指令提权至root,需要输入当前普通用户密码。

在一次密码认证过后,接下来的几分钟使用sudo提权操作,将无需再次输入密码。

为什么sudo提权需要输入当前用户的密码,而不是root密码呢?这样做是为某些被信任的用户,提供最少的执行障碍。而不是直接将root的密码交给员工。

三、文件权限的理解

1、文件权限=角色的权限+文件属性

对于Linux中的文件权限,有的角色对这个文件有可读、可写、可执行的权限,而有的角色却只有可读权限。这是人的权限。

对于文件的可读、可写、可执行的属性,如果一个文件不具备可读权限,那么角色在访问文件时,也是没有可读权限的。

2、Linux中的三种角色

Linux中有三种角色,分别是拥有者(owner)、所属组(grouper)、其他人(other),权限限制的不是用户,而是这个用户当前所处的角色。

2.1为什么会存在所属组(grouper)这种角色

举个例子:现在公司有A、B、C等多个部门使用同一台Linux的云服务器,每个小组都有各自的小组成员,所以就有了所属组的概念。把不同的组员放到各自的所属组中,员工无权限访问他组文件,防止项目信息互相泄露。

3、drwxrwxr-x代表的意义

3.1第一位字母代表的意义

第一位字母代表的意义是文件的类型。

在windows中,区分文件类型是通过文件名后缀,而Linux中,文件的类型由第一位字母决定,与文件本身的后缀无关。(Linux中文件后缀作用是帮助用户快速区分这个文件的类型或者gcc等工具是需要关注后缀)

  • d:目录文件
  • -:普通文件(源代码、库文件、可执行程序、文档压缩包等)
  • c:字符设备文件(键盘、显示器等串口设备)
  • b:块设备(硬盘、光驱等)
  • l:软链接文件(类似于Windows中的快捷方式)
  • p:管道文件
  • s:socket套接口文件

3.2后九位代表的意义

后九位三三为一组,分别代表拥有者、所属组、其他用户的权限。其中r代表可读,w代表可写,x代表可执行。-代表不具备该权限。

3.3文件权限的字符修改方法

chmod u-r text.c//将text.c的拥有者减去可读权限
chmod g+x text.c//将text.c的所属组加上可执行权限
chmod o+rwx text.c//将text.c的其他用户减去读、写、可执行权限
chmod u+rx,g-w,o-rwx text.c//可以组合操作权限的增减
chmod a-rwx text.c//对所有角色减去读、写、可执行权限

只有文件的拥有者和root才能对文件角色的权限进行更改。

root不受角色权限的约束。

3.4角色的更改

sudu chown jly2 text.c//把text.c的拥有者改成jly2
sudo chgrp jly2 text.c//把text.c的所属组改成jly2
sudo chown jly2:jly2 text.c//把text.c的拥有者、所属组改成jly2

拥有者、所属组更改后,other也变了,所以other不用特意改。

3.5文件权限的八进制修改方法

三三为一组,非-位用二进制1填充,-位用0填充,得到角色权限的二进制,在将这些二进制转化为八进制,即可使用八进制来表达角色的权限。

chmod 000 text.c//用权限的八进制更改text.c的权限

3.6目录的起始权限及权限掩码umask

Linux规定,目录的起始权限从777开始,普通文件的起始权限从666开始。

[jly@VM-4-11-centos text]$ umask
0002//第一位不管,系统会默认配置好权限掩码为002,即000 000 010

凡是在umask中出现的权限,必须在起始权限中去掉,即最终权限=起始权限&(~umask)。

所以,我们创建出来的目录的权限是775(rwx rwx r-x),普通文件的权限是664(rw- rw- r--)。

umask 0444//更改umask的值,即100 100 100

修改后创建出来的目录权限变为333,普通文件权限变为222。

4、目录的权限

目录的r权限:能否查看目录中的文件。

目录的w权限:能否在目录中创建文件。

目录的x权限:能否进入、执行目录中的文件

所以,目录的起始权限从777开始,是因为所有角色都需要x权限进入目录。

四、粘滞位(公共目录使用)

Linux系统中有很多人,我们需要在一个公共的目录下,进行临时文件的操作(增删查改)。这个公共目录由root来创建。

在这个公共目录中,通过文件自身的权限来约束不同的角色,但是无法阻止其他用户私自删除这些文件。因为在目录中删除一个文件,与这个文件本身无关,与它所处的目录的权限有关。

这个公共目录的拥有者和所属组是root,粘滞位会限制other的权限。

chmod +t /mytmp   //在/目录下的mytmp目录中加上粘滞位

drwxrwxrwx
drwxrwxrwt

加上粘滞位后,该公共目录的other的x权限变为t,也就是该目录下other的可执行权限变为粘滞位,其他用户无权删除不属于他的文件。

五、权限总结

1、目录的可执行权限是表示你可否在目录下执行命令。

2、如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)

3、如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

到此这篇关于深入了解Linux的文件权限的文章就介绍到这了,更多相关Linux文件权限内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Linux文件和文件夹权限操作方法

    Linux 文件权限 首先来查看一下当前目录下的文件内容吧 ls -l    查看当前目录下的文件列表 ls -l xxx.xxx (xxx.xxx是文件名) 查看指定的文件 我们可以看到文件的权限,-rw-rw-r--  ,一共有10位数. 其中: 最前面那个 - 代表的是类型(详细如下面贴图所示) 中间那三个 rw- 代表的是所有者(user) 然后那三个 rw- 代表的是组群(group) 最后那三个 r-- 代表的是其他人(other) 然后我再解释一下后面那9位数: r 表示文件可以被

  • 你可能不知道的一些linux文件权限管理方法

    为什么需要权限管理? 1.计算机资源有限,我们需要合理的分配计算机资源. 2.Linux是一个多用户系统,对于每一个用户来说,个人隐私的保护是十分重要的 目录的 rwx 权限 当前用户:vagrant:vagrant 创建 testdir 目录,进入 testdir 目录内.创建文件 test. $ mkdir testdir $ cd testdir $ touch test 修改 testdir 权限为 000,尝试执行 ls testdir $ chmod 000 testdir $ ls

  • Linux 文件权限的详细介绍

    Linux 的优秀之处就在于它的多用户.多任务的系统.Linux 一般将文件可存取访问的身份分为 3 个类别,分别是 owner.group.others,且 3 种身份各有 read.write.execute 等权限. 权限的三种身份 文件所有者(owner) 用户级别的文件权限,通常为文件的创建者,可以通过 chown 修改文件所有者. 用户组(group) 如果把用户组比作团队,用户就是其中的成员,团队中的队员对于该文件都有相同的权限.可以通过 chgrp 修改文件的用户组. 用户组最有

  • linux文件目录默认权限(详解)

    1.文件的默认权限是没有x的,即文件的最大默认权限为666(-rw-rw-rw) 2.由于进入目录和目录的x权限有关,故目录的最大默认权限为777(drwxrwxrwx) 查看默认权限需要使用umask命令: [123@123 ~]$ umask           //数字方式显示 0022 [123@123 ~]$ umask -S        //符号方式显示 u=rwx,g=rx,o=rx以数字范式显示有4个数字,只看后3个即可,第一个为特殊权限使用 [123@123 ~]$ touc

  • 详解如何备份及恢复 Linux 文件权限

    你可能听说或碰到过这样的事情:一个系统管理员菜鸟不小心输入"chmod -R 777 /"从而导致了巨大的悲剧,使得整个系统遭到了严重的破坏.在日常管理中,我们有许多工具可以用来备份文件权限,如cp.rsync.etckeeper等.如果你使用了这个备份工具,那么你的确不需要担心改变的文件权限问题. 但如果只是想暂时备份文件权限(而不是文件本身),例如:为了阻止一些目录的内容被覆盖暂时移除该目录下所有文件写的权限:或是正在排除文件权限问题的过程中需要对文件进行chmod命令操作.在这些

  • Linux下修改文件权限(所有权)

    Linux与Unix是多用户操作系统,所以文件的权限与所有权的实现就显得很有必要:每个文件主要与三组权限打交道,分别是用户(user),用户组(group),其他用户(other) 用户(u)是文件的所有者,通常有所有的文件的操作权限 用户组(g)是多个用户的集合,可能有文件的部分访问权,相当于各用户之间的共享文件 其他(o)是指文件所有者和用户组成员之外的任何人 使用ls -l可以显示出当前目录下的文件类型,权限,所有者以及组在内的多方面信息: 第一列含义为:-(filetype)---(us

  • Linux中文件权限目录权限的意义及权限对文件目录的意义

    linux中目录与文件权限的意义 一.文件权限的意义 r:可以读这个文件的具体内容: w:可以编辑这个文件的内容,包括增加删除文件的具体内容: x:文件就具有了可执行的权限-------注意:这里和window不一样,在win中,文件的可执行权限是通过扩展名表现出来的,如exe.bat等,但是在linux中文件的可执行权限是通过这个x决定的,与文件名没有什么关系. 二.目录权限的意义 r:可以查看此目录下的完整文件列表信息. w:可以对此目录下的所有的文件及目录进行相关的更改,也就是可以更改这个

  • 深入了解Linux的文件权限

    目录 一.Shell是什么 1.Shell承担用户和内核间的翻译工作 2.拒绝用户非法请求,保护内核 3.派生子进程执行用户指令 二.用户切换与提权 1.普通用户与root用户的切换 2.普通用户指令短暂提权 三.文件权限的理解 1.文件权限=角色的权限+文件属性 2.Linux中的三种角色 3.drwxrwxr-x代表的意义 4.目录的权限 四.粘滞位(公共目录使用) 五.权限总结 一.Shell是什么 Shell是操作系统外壳程序的统称,Windos中的图形化界面.Linux中的命令行外壳都

  • linux新文件权限设置之umask的深入理解

    前言 起源是一道题1:如果你的umask设置为022,缺省的你创建的文件权限为? 这让我回忆起被问过的另外一道题2: 777表示什么权限? 用户组说明 -rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc 第一个字符代表文件(-).目录(d),链接(l) 其余字符每3个一组(rwx),读(r).写(w).执行(x) 第一组rwx:文件所有者的权限是读.写和执行 第二组rw-:与文件所有者同一组的用户的权限是读.写但不能执行 第三组r--:不与文件所有者同组的其他用

  • Linux 下目录文件权限(命令)的查看和修改

    Linux 下目录文件权限的查看和修改 在我的服务器下面有这几个文件夹 同时用ls -l也可以查看到这几个文件的权限. 看其中的assets文件一共有十位数,其中: 最前面那个 - 代表的是类型 中间那三个 rwx 代表的是所有者(user)拥有的权限 然后那三个 rwx 代表的是组群(group)拥有的权限 最后那三个 rwx 代表的是其他人(other)拥有的权限 r 表示文件可以被读(read) w 表示文件可以被写(write) x 表示文件可以被执行(如果它是程序的话) -表示相应的权

  • Linux备份及恢复及Linux文件权限详解

    Linux备份及恢复及Linux文件权限详解 概述 一个系统管理员菜鸟不小心输入"chmod -R 777 /"从而导致了巨大的悲剧,使得整个系统遭到了严重的破坏.在日常管理中,我们有许多工具可以用来备份文件权限,如cp.rsync.etckeeper等.如果你使用了这个备份工具,那么你的确不需要担心改变的文件权限问题. 但如果只是想暂时备份文件权限(而不是文件本身),例如:为了阻止一些目录的内容被覆盖暂时移除该目录下所有文件写的权限:或是正在排除文件权限问题的过程中需要对文件进行ch

  • Linux文件权限与目录管理详解

    一.Linux文件系统的三种身份 1).文件所有者 2).同组用户 同一个用户组的用户可以访问该用户组的文件: 每个账号可以加入多个用户组. 在同一个用户组的文件也可以设置不同的权限,可以不让本组用户查看. 3).其他人 除了文件主.同组用户以外的人就是其他人. PS: /etc/passwd 记录所有用户的账号 /etc/shadow 记录所有用户的密码 /etc/group 记录所有的组名 二.文件属性 ls -al 显示所有的文件名和相关属性(包括以.开头的隐藏文件) total 72 d

  • Linux(ubuntu)下实现增加/删除文件权限

    [权限篇] ubuntu系统中,对于不同用户及不同用户组中用户对文件的操作权限都不相同,通过控制台我们可以快速的对文件权限进行操作. 对于修改权限可以使用两种方案来更改其权限,下面认识一下文件系统权限的组成: 文件权限查看: 1.查看文件权限命令:         ls -lh  [option:文件名] 2.查看文件夹权限命令    ls -ld  [option:文件夹名] 例:-rw-r--r-- 解释:-(代表类型)×××(所有者)×××(组用户)×××(其他用户) 方案一: 下面使用

  • Linux中改变文件权限的chmod命令详析

    前言 Linux的chmod命令是用来改变文件权限的,对于文件或者目录的普通权限,共有 3 种,分别为: r:读取: w:写入: x:执行. 今天为大家详细介绍下chmod命令的意义和用法 chmod命令 改变文件权限 一.符号模式 命令格式: chmod [who] operator [permission] filename who包含的选项及其含义: u 文件属主权限. g 属组用户权限. o 其他用户权限. a 所有用户(文件属主.属组用户及其他用户). operator包含的选项及其含

随机推荐