Linux中的权限和权利

 

我们当中有多少人需要“限制访问”特定目录/文件夹中包含的文件,或者我们仅需要阻止某些人查看,删除或修改特定文件的内容? 不止一个,对不对? 我们可以在心爱的企鹅中实现它吗? 答案是: 当然可以 :D

简介

我们许多来自Windows的人习惯于以一种非常不同的方式处理此“问题”,为实现此目标,我们不得不诉诸于非传统的“技术”,例如通过文件的属性隐藏文件,移动文件。信息发送到我们团队中最偏远的位置(20,000个文件夹内),以劝阻我们的“敌人” XD,更改或消除文件扩展名或最“常见”的做法,请下载程序,使我们可以“在一个漂亮的对话框后关闭“我们的目录”,询问我们输入密码以访问它。 我们有更好的选择吗? 没有.

相关文章:
如何通过终端挂载硬盘或分区

我为我的“ Windolero”朋友们感到非常抱歉(我深情地这样说,所以没有人感到冒犯,好吗?;)),但是今天我必须对Windows:P进行一些自学,因为我将解释为什么这样做操作系统不允许本机使用此功能。

你们中有多少人注意到,当我们坐在“ Windows”计算机的后面(即使不是我们的)时,我们会自动成为计算机包含的所有内容(图像,文档,程序等)的所有者? 我什么意思好吧,只需通过“控制Windows”,我们就可以左右左右复制,移动,删除,创建,打开或修改文件夹和文件,而不管我们是否是此信息的“所有者”。 这反映出操作系统中的主要安全漏洞,对吗? 好吧,这都是因为Microsoft的操作系统并不是从头开始设计为多用户的。 当发布MS-DOS版本和某些Windows版本时,他们完全相信最终用户将负责“保护”其各自的计算机,以便其他用户无法访问存储在其中的信息……天真¬ ¬。 现在是WinUsers的朋友,您已经知道为什么会有这个“谜”了:D.

另一方面,由于GNU / Linux是专为联网而设计的系统,我们存储在计算机(更不用说服务器)上的信息的安全性至关重要,因为许多用户将拥有或可能拥有部分访问权。这些计算机上管理的软件资源(应用程序和信息)以及硬件。

现在我们可以看到为什么需要许可证制度? 让我们进入主题;)。

相关文章:
DU:如何查看占用最多空间的10个目录

在GNU / Linux中,用户对其中包含的某些文件可以拥有的权限分为三个明显不同的级别。 这三个级别如下:

所有者许可证。
组权限。
其余用户(或也称为“其他”)的权限。

为了清楚了解这些概念,在网络系统(例如企鹅)中,总会有管理员,超级用户或root身份。 该管理员负责创建和删除用户,以及建立每个用户在系统中拥有的特权。 这些特权既针对每个用户的HOME目录建立,也针对管理员决定用户可以访问的目录和文件建立。

所有者权限

所有者是在其工作目录(HOME)或他们有权访问的其他目录中生成或创建文件/文件夹的用户。 默认情况下,每个用户都有权在其工作目录中创建所需的文件。 原则上,只有他才能成为有权访问您的HOME目录中文件和目录中包含的信息的人。

组权限

最正常的事情是每个用户都属于一个工作组。 这样,在管理组时,将管理属于该组的所有用户。 换句话说,将多个用户集成到一个在系统中被授予了某些特权的组中,比将特权独立地分配给每个用户要容易得多。

其余用户的权限

最后,包含在任何目录中的文件的特权也可以由不属于该文件所在工作组的其他用户持有。 即,不属于该文件所在工作组的用户但属于其他工作组的用户称为其他系统用户。

很好,但是如何识别所有这些? 简单,打开一个终端并执行以下操作:

$ ls -l

注意: 它们是小写的“ L”字母😉

它将显示如下内容:

如您所见,此命令显示或“列出”我的HOME的内容,我们要处理的是红线和绿线。 红色框表示谁是所有者,绿色框表示上面列出的每个文件和文件夹属于哪个组。 在这种情况下,所有者和组都称为“ Perseus”,但是他们很可能遇到了诸如“ sales”之类的其他组。 对于其余的内容,暂时不要担心,我们将在以后看到:D.

GNU / Linux中的权限类型

在学习如何在GNU / Linux中设置权限之前,我们必须知道如何区分系统可以拥有的不同文件类型。

GNU / Linux中的每个文件都由10个字符标识,这些字符称为 面膜。 在这10个字符中,第一个(从左到右)表示文件类型。 接下来的9(从左到右,以3为块)分别指分别授予所有者,组和其他人或其他人的权限。 屏幕快照展示了所有这些内容:

文件的第一个字符可以如下:

对不起 识别
档案
d 目录
b 特殊块文件(设备特殊文件)
c 特殊字符文件(tty设备,打印机...)
l 链接文件或链接(软/符号链接)
p 通道特殊文件(管道或管道)

 

接下来的九个字符是授予系统用户的权限。 每三个字符,所有者,组和其他用户权限被引用。

定义这些权限的字符如下:

对不起 识别
没有经过同意
r 阅读权限
w 写权限
x 执行许可

 

档案权限

阅读:基本上,它使您可以查看文件的内容。
写入:允许您修改文件的内容。
执行:允许文件像是可执行程序一样被执行。

目录权限

读取:它允许知道哪些文件和目录包含具有此权限的目录。
写入:允许您在目录中创建文件,无论是普通文件还是新目录。 您可以删除目录,复制目录中的文件,移动,重命名等。
执行:允许您遍历目录以检查目录内容,从目录复制文件或将文件复制到目录。 如果您还具有读写权限,则可以对文件和目录执行所有可能的操作。

注意: 如果您没有执行权限,我们将无法访问该目录(即使我们使用“ cd”命令),因为该操作将被拒绝。 它还允许您限制使用目录作为路径的一部分(例如,当我们传递该目录中文件的路径作为参考时。假设我们要复制文件“ X.ogg”,该文件位于文件夹“ / home / perseo / Z”-文件夹“ Z”没有执行权限-,我们将执行以下操作:

$ cp /home/perseo/Z/X.ogg /home/perseo/Y/

这样会收到一条错误消息,告诉我们我们没有足够的权限访问文件:D)。 如果取消了目录的执行权限,则可以查看其内容(如果具有读取权限),但是将无法访问其中包含的任何对象,因为此目录是必需路径的一部分解决对象的位置。

GNU / Linux中的权限管理

到目前为止,我们已经了解了GNU / Linux中的权限,下面将介绍如何分配或减去权限。

开始之前,我们必须记住,当我们在系统中注册或创建用户时,我们会自动授予他们特权。 当然,这些特权将不会是全部的,也就是说,用户通常不会具有与超级用户相同的权限。 创建用户时,系统默认会生成用户的文件管理和目录管理特权。 显然,这些可以由管理员修改,但是系统会为每个用户将对其目录,文件以及其他用户的目录和文件执行的大多数操作生成或多或少的有效特权。 这些通常是以下权限:

<°对于文件: w r-
<°对于目录: rwx rwx rwx

注意: 它们对所有GNU / Linux发行版的权限都不相同。

这些特权使我们可以创建,复制和删除文件,创建新目录等。 让我们在实践中看看所有这些:D:

让我们以“ Advanced CSS.pdf”文件为例。 请注意,它显示如下: wr- …高级CSS.pdf。 让我们仔细看看。

TIPO 用户 GRUPO 其余用户(其他) 文件名
RW r- r- 高级CSS.pdf

 

这意味着:

<°类型: 档案
<°用户可以: 读取(查看内容)和写入(修改)文件。
<°用户所属的组可以: 读取(仅)文件。
<°其他用户可以: 读取(仅)文件。

对于那些好奇的人,他们现在想知道ls -l获得的列表的其他字段是什么,下面是答案:

如果您想进一步了解硬/软/符号链接,请在此处进行说明及其 分歧.

好朋友,我们来到了该主题中最有趣,最繁重的部分...

权限分配

命令 CHMOD (“更改模式”)允许修改掩码,以便可以对文件或目录执行或多或少的操作,换句话说,使用chmod可以删除或删除每种用户的权限。 如果未指定要删除,设置或分配特权的用户类型,则执行操作时将发生的情况是同时影响所有用户。

要记住的基本事情是,我们在以下级别授予或删除权限:

参数 nivel 描述
u 所有者 文件或目录的所有者
g 文件所属的组
o 他人 不是所有者或组的所有其他用户

 

权限类型:

对不起 识别
r 阅读权限
w 写权限
x 执行许可

 

 授予所有者执行权限:

$ chmod u+x komodo.sh

删除所有用户的执行权限:

$ chmod -x komodo.sh

向其他用户授予读写权限:

$ chmod o+r+w komodo.sh

对文件所属的组保留只读权限:

$ chmod g+r-w-x komodo.sh

八进制数字格式的权限

对于许多用户,还有另一种使用chmod命令的方式“更舒适”,尽管先验理解起来更复杂。

每组用户的值的组合形成一个八进制数,``x''位是20等于1,w位是21等于2,r位是22等于4,我们有:

r = 4
w = 2
x = 1

每组中打开或关闭的位组合给出了八种可能的值组合,即,打开的位之和:

对不起 八进制值 描述
0 您没有任何许可
x 1 仅执行权限
-w- 2 仅写权限
-wx 3 写入和执行权限
r 4 仅阅读权限
r x 5 读取和执行权限
rw- 6 读写权限
w 7 所有权限设置,读取,写入和执行

 

当用户,组和其他权限组合在一起时,您将获得一个三位数的数字,该数字构成文件或目录的权限。 例子:

对不起 勇气 描述
rw - - - 600 拥有者具有读写权限
rwx-X -x 711 所有者读,写和执行,组和其他人仅执行
rwx rx rx 755 读取,写入和执行所有者,组以及其他人可以读取和执行文件
rwx rwx rwx 777 任何人都可以读取,写入和执行文件
r - - - 400 只有所有者可以读取文件,但不能修改或执行该文件,当然,该组和其他任何人都不能在其中执行任何操作。
w 640 所有者用户可以读写,组用户可以读取文件,其他用户则无法执行任何操作

 

特殊权限

还有其他类型的许可证可以考虑。 它们是SUID(设置用户ID)权限位,SGID(设置组ID)权限位和粘性位(sticky bit)。

Setuid

setuid位可分配给可执行文件,并允许用户执行该文件时,该过程获取执行文件所有者的权限。 具有setuid位的可执行文件的最清楚的示例是:

$ su

我们可以在以下捕获中看到该位被分配为“ s”:

将此位分配给文件,它将是:

$ chmod u+s /bin/su

并删除它:

$ chmod u-s /bin/su

注意: 我们必须格外小心地使用此位,因为它会导致我们系统中特权的提升。

塞吉德

setid位允许获取分配给文件的组的特权,也可以分配给目录。 当同一组的多个用户需要使用同一目录中的资源时,这将非常有用。

要分配此位,我们执行以下操作:

$ chmod g+s /carpeta_compartida

并删除它:

$ chmod g-s /carpeta_compartida

通常在所有用户都可以访问的目录中分配此位,并且由于所有人都具有写许可权,因此它可以防止用户删除该目录中另一个用户的文件/目录。
我们可以在以下捕获中看到将该位分配为“ t”:

要分配此位,我们执行以下操作:

$ chmod o+t /tmp

并删除它:

$ chmod o-t /tmp

好朋友,现在您知道了如何更好地保护您的信息,希望您能停止寻找替代方案, 文件夹锁 o �ļ�����ʿ 在GNU / Linux中,我们根本不需要XD。

附言: 这篇文章是朋友的堂兄XD的邻居所要求的,希望我解决了您的疑问...…


本文内容遵循我们的原则 编辑伦理。 要报告错误,请单击 信息.

45条评论,留下您的评论

发表您的评论

您的电子邮件地址将不会被发表。

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   毛里求斯

    优秀的文章,很好的解释。

    1.    英仙座

      谢谢朋友😀

  2.   卢卡斯·马蒂亚斯(Lucas Matias)

    优秀的英仙座,我不知道八进制数字格式的权限(这是一件非常有趣的小事情)或特殊权限(setuid / setgid / sticky)。
    我很想睡觉,但是这让我有点生气,我已经想抓住控制台😀+1000

    1.    英仙座

      对您有用的好东西,问候😉

  3.   洛迪克斯

    很好,解释很清楚,非常感谢。

    塞吉德
    一点 Setuid 允许您获得特权

    在那部分有一个小错误。

    1.    英仙座

      感谢您的观察和评论,有时我的手指“缠结”了XD ...

      问候😉

      1.    英仙座

        我已经被纠正😀

  4.   雨果

    很好的文章,英仙座。 无论如何,我想作一些观察,以便使信息更完整:

    递归应用权限(chmod -R)时要小心,因为我们最终可能会给文件提供太多权限。 解决此问题的一种方法是使用find命令区分文件或文件夹。 例如:

    find /var/www -type d -print0 | xargs -0 chmod 755
    find /var/www -type f -print0 | xargs -0 chmod 644

    另一件事:在目录或文件上建立特权并不是保护信息的可靠方法,因为使用LiveCD或将硬盘放在另一台PC上,访问文件夹并不困难。 为了保护敏感信息,有必要使用加密工具。 例如,TrueCrypt非常好,它也是跨平台的。

    最后:仅仅因为大多数用户没有在Windows中更改文件系统特权并不意味着就不可能这样做。 我知道,至少NTFS文件系统可以像EXT一样受保护,因为在我的工作中,我具有完整的分区,没有执行或写入权限等。 这可以通过安全选项卡(通常是隐藏的)来实现。 Windows的主要问题是其默认设置允许所有操作。

    1.    英仙座

      非常感谢您扩展主题;)。 关于:

      [...] establecer privilegios sobre directorios o archivos no es un método infalible para proteger la información, ya que con un LiveCD o poniendo el disco duro en otra PC no es difícil acceder a las carpetas [...]

      您绝对是正确的,即使Win发生了同样的事情,也可能稍后再讨论可帮助我们加密信息的各种工具。

      问候😀

    2.    KZKG ^ Gaara

      雨果朋友你好吗😀
      TrueCrypt的问题...许可证具有某种“奇怪”的特征,您能详细介绍一下吗? 🙂
      问候公司

      1.    雨果

        TrueCrypt许可证有点怪异,但该许可证的至少3.0版(当前的版本)允许在无限制的工作站上进行个人和商业使用,并且还允许复制,查看源代码,进行修改和分发派生作品( (只要已重命名),那么如果不是100%免费的话,坦白说,它就很接近。

  5.   勇气

    老珀尔修斯(Perseus)的文章不够完整,使团队的其他成员感到失望。

    这里没有人比没有人好吗? 比我好得多JAJAJAJAJAJAJA

    1.    英仙座

      哈哈哈哈,小心一点,记住我们在同一条船上

      谢谢你的评论😉

  6.   智商

    许可,是每天学习的东西,而不是一天到一天的东西,所以让我们学习呵呵呵

  7.   正确

    优秀的文章英仙座。
    提示:不必将符号写在每个符号上,仅需指示一次即可。 例:
    $ chmod o + r + w komodo.sh
    它看起来像
    $ chmod o + rw komodo.sh

    与...相同
    $ chmod g + rwx komodo.sh
    它也可以看起来像
    $ chmod g + r-wx komodo.sh

    按照该格式,您可以执行此操作
    $ a-rwx,u + rw,g + w +或example.txt
    注意:a =全部。

    问候。

    1.    英仙座

      哇,朋友,我不知道,谢谢分享sharing

  8.   bologna_666

    很好的文章,一切都很好解释。
    对于我来说,更方便地更改文件权限(八次更清楚)。 我发现足以理解其他方式,但这已经是很久以前的哈哈哈

  9.   阿鲁纳多

    大家好,英仙座; 我真的很喜欢这个页面。 我希望能够与它合作。 通过点击我的昵称,您可以找到参考! 哈哈。
    我通常会发表零星的出版物,而且我是SL的积极分子,只要我有空并且有几指,就不会放弃我的生活。 好吧,我想他们有我的电子邮件。 对我来说似乎是一个项目的拥抱和力量«blogger团结了!»,ACA ES LA TRENDENCIA! 这就是创建未来网络的方式。

    1.    英仙座

      哈哈哈哈哈,非常高兴您加入我们,让elav或gaara看到您的要求😉

      保重,我希望很快能在这里见到你😀

    2.    KZKG ^ Gaara

      我现在给您写一封电子邮件(到您在评论中输入的地址)🙂

  10.   罗伯托

    我有个疑问。 如何将权限应用于目录,并且这些权限不会更改其属性,而与修改它们的用户(包括根用户)无关。

    问候。

    1.    elav <°Linux

      也许 本文 我澄清一下..

  11.   毛玛克

    这篇文章写得很好,感谢您分享知识

    1.    英仙座

      效果如何,我们希望再次在这里见到您。 问候😉

  12.   JAVI

    很好的文章。

    1.    英仙座

      我很高兴它对您有用,问候s

  13.   阿奇里斯娃

    我不同意在Linux中将文件移动到文件夹系统的事实,这令人头疼。 您必须提供所有权限,然后输入密码。 在Windows中,即使在同一Windows文件夹中,移动文件也很容易。 在Windows中将文件移动到Linux中的文件夹的整个过程比较容易复制和粘贴。 我使用两种操作系统。 薄荷2玛雅肉桂和windows 13

    1.    KZKG ^ Gaara

      我使用Linux已经有几年了,说实话,我已经有一段时间没有遇到这些问题了。
      我可以移动文件/文件夹,没有任何问题,并且我的HDD分区为2。显然,第一次访问另一个分区时,我必须输入密码,但是再也不需要输入密码了。

      如果您遇到罕见的问题,请告诉我们,我们将竭诚为您服务😉

  14.   哈维

    就Linux部分而言,正确的文章。 在有关Windows中权限管理的评论中:您根本不知道如何设置权限。 控制这些功能的能力(在16位版本,Windows 95、98,Me和移动电话中除外)要高得多,以控制它们在企鹅系统中的管理方式以及崇高的粒度,同时我也要处理这两个问题操作系统对我们中的任何一个都没有疯狂。

    我的建议:做一点研究,您会意识到,根本不需要任何外部程序。 对于所有非常好。 😉

  15.   华金

    很好的文章。 权限主题是一件有趣的事情。 我曾经无法访问长路径文件,因为我在其中一个目录中没有执行权限,这已经发生了。 至少知道像粘性位这样的特殊权限的存在也是很好的。

    PS:我已经关注博客一段时间了,但是我还没有注册。 他们的文章非常有趣,但是吸引我最多的是用户之间的待遇。 通常,除了可能存在差异之外,每个人都试图通过贡献自己的经验来互相帮助。 与其他充满巨魔和烈火的网站不同,这是一件了不起的事😉

  16.   弗朗西斯科_18

    非常有趣,但是我对权限的了解有所不同,而不是二进制,而不是八进制。因此,例如,如果“ 7”为111,则表示它具有所有权限,因此,如果您输入777,它将向所有用户,组授予所有权限...

    问候。

  17.   SAM

    印象深刻,简洁明了,主题明确。

  18.   汤米

    多么好的文章,恭喜并感谢您所做的所有澄清。
    salu2。

  19.   加布

    哇,如果我从您的教程中学到了很多东西,我会觉得这是Linux这个巨大领域的小蚂蚁,但是如果我们放了一张cd唱片并且我们的文件未加密,那么在此注释行中,Hugo曾经在这里说的很有限。还有很多需要保护的地方,此外,在Windows中,我认为在win操作系统中创建管理员用户和受限帐户并保护您的管理员帐户数据没有太大问题。 但是,真的非常感谢您的这篇文章,谢谢您,我对此事更加了解。

  20.   juancho

    事实是我想运行一个可执行文件xD,它告诉我打开和写入x文件时权限被拒绝,但是我在这里读了一点,学到了一些东西,它有助于查看包含文件和可执行文件的文件夹所具有的权限我记得我做的最后一件事是我想访问一个文件夹,由于名称很长,因此我在easy xD之间进行了更改,然后我查看了权限并查看了一些有关adm的信息,我转到了文件放入属性并选择一个表示adm的内容,然后不删除属性。输入文件夹,然后运行可执行文件,它现在可以顺利启动,而我不知道是我做的xD,我真的不知道我认为是因为我更改了文件夹的名称,但我不知道,谢谢,我能够执行它。没问题。

  21.   亚瑞斯

    您好,我有一些问题,
    我有一个必须将映像写入Linux服务器的Web系统,
    详细信息是它不允许注册,请尝试更改权限,但不能,
    我对此并不陌生,因为我希望您能指导我,谢谢。

  22.   路易斯

    如果它对我有所帮助,那就非常感谢您的贡献。

  23.   海梅

    就个人而言,文档帮助我学习,并在我的工作中付诸实践。

    我所做的有关实践是关于Debian的。 祝贺和问候。

  24.   天使约科比西奥

    关于GNU / Linux中权限的出色教程。 作为Linux用户和基于GNU / Linux发行版的服务器管理员,我的经验是,可能出现的许多技术问题都是基于对组和用户权限的管理。 这是必须要考虑的事情。 我祝贺Perseus的博客,我也有兴趣加入GNU的博客。 同志们,来自墨西哥的问候!

  25.   会诊

    您好,首先,我祝贺您这篇文章非常好,我向您咨询,我遇到这种情况:4 ------- 1 root root 2363 Feb 19 11:08 / etc / shadow with 4 forward这些权限将如何读取。

    谢谢

  26.   不久

    Windows:选择文件夹,右键,属性>安全性选项卡,您可以在其中添加或删除用户或组,每个用户或组都可以放所需的权限(读取,写入,完全控制等)。 我不知道你到底是什么意思

    顺便说一句,我每天都使用基于ubuntu的linux,而我使用的是basic。

    好吧

  27.   artur24

    奇妙的是,这是最好的解释文章
    谢谢

  28.   豪尔赫·潘尼奎

    朋友:

    很好的贡献,对我帮助很大。

    谢谢。

  29.   马丁

    混蛋甚至不工作。

  30.   技术计算机世界

    你们当中有多少人注意到,当我们坐在“ Windows”计算机后面时,这部分完全是谎言,因为自Windows NT以来,甚至在Windows 98之前,您就没有安全性,这完全是错误的。
    Microsoft一直非常重视Windows中的安全性,原因是它是当今使用最广泛的桌面操作系统。
    这篇文章对GNU / Linux权限进行了很好的解释,但是您在这些文章中总是如常发生变化,即编写该文档的人要么不使用Windows,要么不知道如何使用它,因为他们不喜欢Windows,而获得负面评价。
    必须强调的是,Windows在其文件系统中具有ACL(访问控制列表)特性,该特性非常安全,它从所有使文件系统都非常安全的Windows NT引入Windows。 在GNU / Linux中,他们也实现了它。
    从Windows Vista开始,(用户帐户控制)UAC功能已实现,可以轻松使用Windows,而不必成为管理员即可轻松使用它。
    对我来说,他们实现了一项很好的功能,因为可以将Windows XP用作没有管理权限的用户,但是在家中像那样使用它的人呢? 几乎没人,因为没有UAC之类的东西令人不舒服。
    如果对我很清楚,无论谁写了这篇文章,即使他没有解释GNU / Linux ACL,也知道他在写什么,该怎么办。

布尔值(true)