0

    无法执行文件命令?权限不够?看这篇就够了

    2023.05.29 | admin | 132次围观

    关注优麒麟,更多干货等着你!

    Linux 系统上有严格的权限等级,如果权限过高导致误操作会增加系统的风险。所以对于了解 Linux 系统中的各种权限及如何分配合理的权限十分重要。

    不同于 Windows 系统,Linux 是一个多用户系统,对每一个用户来说,个人隐私的保护十分重要,所以 Linux 系统为每个文件都添加了很多的属性,最大的作用就是维护数据的安全。就像在你的 Linux 系统中,和系统服务相关的文件通常只有 root 用户才能读或写,例如 /etc/shadow 文件,此文件记录了系统中所有用户的密码数据,重要程度不言而喻,所以绝不能让任何人读取以防止密码泄露,而只有 root 用户才有读取权限。

    所以说,权限是用来约束用户对系统所做的操作。或者说,权限是指某个特定的用户具有特定的系统资源使用权力。

    1.权限与用户的关系

    在Linux系统中,权限用来定义用户能做什么、不能做什么。针对文件定义了三种身份,分别是属主 Owner、属组 Group、其他人 Others。每种身份又对应三种权限,分别是读 read、写 write、执行 execute。

    Linux 中权限由 rwxr-xr-x 这 9 位字符来表示,主要控制文件的属主 Owner、属组 Group 以及其他用户 Others 的权限。

    一个用户访问文件的流程如下:

    1.判断用户是否为文件属主,如果是则按属主权限进行访问;

    2.判断用户是否为文件属组,如果是则按属组权限进行访问;

    3.如果不是文件属主、也不是该文件属组,则按其他人权限进行访问。

    我们在使用 Linux 的过程中,时常会遇到一些关于属主和属组的问题,比如最常见的你想要在某个路径下执行某个指令,会经常出现“Permission denied”错误提示,这其实也是由权限问题导致的。

    2.如何修改文件权限

    修改权限简单来说就是:赋予某个用户或组-->能够以何种方式(读写执行)-->访问文件。

    变更文件权限使用的是 chmod 这个命令,但是,权限的设置有两种方式,可以分别使用数字或者符号进行权限变更。对于 root 用户而言,可以修改任何人的文件权限;普通用户仅仅只能变更属于自己的文件权限。

    (1)NUM 方式

    我们可以使用数字来表示 Linux 文件的各个权限。

    一般 r 表示 4;w 表示 2;x 表示 1,每种身份各自的权限是需要累加的,比如 rwx 就表示 4+ 2 + 1 = 7。比如我们最常见的 chmod777 它就表示赋予所有的权限,也就是说谁都能看/写/执行,但是这种文件也存在极大的安全问题。

    示例

    (2)UGO 方式

    九种文件权限分别对应着:user、group 和 others,所以我们可以借由 u,g,o 来代表三种身份的权限。除此之外,a 代表 all 即全部的身份。

    无法执行文件命令?权限不够?看这篇就够了

    示例:

    (3)UGO 和 NUM 的区别

    3.修改文件权限的影响

    Windows 系统下通过查看文件扩展名判断文件是否能够执行,比如 .exe,.bat, .com 等,但是在 Linux 中,判断文件是否具有可执行权限是直接判断文件有没有 x 这个权限,和文件名无关。

    但是在 Linux 中,不只有文件具有权限,目录也有权限,文件是存放实际数据的地方,而目录是记录文件所在位置的清单,我们只有通过目录才能找到文件放在哪里!在 Linux 中权限的设定对文件和对目录的影响也是有区别的。

    (1)对于文件:

    (2)对于目录:

    对文件来说最高权限是 x,对于目录来说最高权限是 w,一般给目录赋予权限 0,5(rx),7(rxw),赋予 4,1,6 都是没有意义的。对于文件能否删除,首先要对目录具有执行权限,同时对文件也具有执行权限。

    chown 命令:用来改变文件或目录的所有者和所属用户组。

    chgrp 命令:用来改变文件或目录的所属的用户组。

    示例

    (1)chown(changeowner)

    准备环境,创建文件和目录;

    修改所属主为 bin;

    修改所属组为 adm;

    修改目录所属主为 root运行时错误没有权限,所属组为 root,并进行递归授权。

    (2)chgrp(changegroup)

    准备环境运行时错误没有权限,创建文件和目录;

    修改所属组为 adm。

    本文介绍了几种常用的权限命令,掌握一些基础的 Linux 知识有助于我们更好的使用系统。需要注意的是,不要随意更改系统文件夹的权限,这样可能会导致您的系统某些功能无法正常使用。

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论