Linux权限

Linux系统上对文件的权限有着严格的控制,如果想对某个文件执行某种操作,必须具有对应的权限才可执行成功。

Linux下文件的权限类型一般包括 读,写,执行。对应字母为 r、w、x。Linux下权限的粒度有 拥有者 、所属组 、其它人 三种。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。

我们先来了解文件的类型

在Linux下输入ll 即可查看文件类型

Linux系统下,不是以文件后缀区分文件类型的,而是以ll显示的第一个字符区分文件类型。

Linux系统下,文件类型有:

权限=人+事物

Linux系统中,人分三类

就我个人而言,我认为可以用另一种方式更好地理解这三个人。

[En]

Personally, I think the three can be better understood in another way.

拥有者:我 所属组:我的团队 其他用户:其他人

Linux系统中,文件的权限属性

这里需要注意 人与root和普通用户是不冲突的,并且是相互补充的。

root可是拥有者、所属组、其他用户

普通用户也可以是拥有者、所属组、其他用户

文件权限的修改

一:更改文件属性权限

chmod 修改文件属性权限 (两种方法)

chmod u+rwx,g+rwx,o+rwx Linux.text

(u代表拥有者的权限,g代表所属的权限,o代表其他人的权限)

这段代码代表 讲拥有者,所属组,其他人的权限全改为可读,可写,可执行

原来的权限

修改后(这里的颜色变了,因为权限是可执行的,所以变成了绿色)

[En]

After modification (the color here is changed because the permission is executable, so it turns green)

当然 也有更方便的方法

在这里,我们首先讨论该文件中的所有权限,所有这些权限都被删除。

[En]

Here we first talk about all the permissions in this file, all of which are removed.

在这里,我将启用其所有权限。

[En]

Here I will enable all its permissions.

第二种修改文件权限方法

使用八进制(理解为二进制)

[En]

Use octal (understood as binary)

chmod 777 Linux.txt 一个7代表拥有者,以此类推

7为 3种权限均开 0为三种权限均关 3为开启w,x(写,执行) 4代表开始r(读) 5代表r,x(读,执行)

以这些数组组合 我这里举个栗子 : 745 代表:拥有者:三种权限均开 rwx 所属组代表开启 r 其他人代表开启r,x 合起来就为 -rwxr—-x

附加:如果我想进入一个目录,需要什么权限?

答:x(可执行权限) (易错,常考)

总结:两种方法 第一种较麻烦,但更直观,第二种方法较方便,但不易于观察 (两种方法各有优缺点,适合自己的才最重要)r oot可以直接无视所有权限!!!

修改文件拥有者/所属组

因为修改这种权限是需要提高权限的,要用到sudo 但使用这个代码是需要配置文件,添加亲近用户的,较麻烦

当然,那可以直接进入root,修改这些

在root用户下

修改拥有者 chown(注意不是chmod)

将此文件的拥有者修改为 xxx (其他的普通用户)

修改所属组

将此文件的所属组修改为 xxx

两个也可以连起来

将拥有者修改给xxx1,所属组修改给xxx2

附加:文件的床架你这和拥有者一定是同一个人吗?

答:不一定,可以创建后给其他人(常考!)

附加:一个文件的拥有者,不一定能用上这个文件对吗?

答:对,我在一个目录下的一个文件的拥有者给你,但目录的访问权限(x)不给你 ,你照样访问不了这个文件

比方说:有一个房间内的电脑是你的,但房间的锁住的,钥匙不给你, 你进不去这个房间,照样用不上这台电脑

如果目录没有r权限,允许进入,允许在该目录下创建(写入)一个文件,不允许查看。

如果目录没有w权限,允许进入,允许在该目录下查看文件列表,但是不允许创建文件。

如果同时没有rw权限,允许进入,但不允许创建和查看目录下的文件的列表(不是文件内容!文件内容是否可以查看,文件自己的权限决定)

权限掩码的认识

权限掩码的作用是根据用户的需求屏蔽掉不希望给别人的权限,比如普通文件的权限是”-rw-rw-rw-“,所有用户对文件都享有读写权限,而这带来的问题就是文件可以被任何人修改从而导致文件数据被篡改导致数据丢失。 这个时候用户可以通过设置文件掩码来屏蔽到本需要赋予其他用户的特定权限。 权限掩码在每个Linux系统里都有默认值,多数为0022或0002,当然用户也可以自己修改权限掩码的值。

例如,让我们创建一个随机文件,看看它的初始权限是什么。

[En]

For example, let’s create a random file and see what its initial permissions are.

这可以称为初始权限或最终权限。

[En]

This can be called initial permission or final permission.

一般普通文件默认权限为666 (rw-rw-rw-)目录文件默认权限为 777 (rwxrwxrwx)

那为什么不同呢?因为 最终权限=默认权限 & (~umask) 公式

比如权限掩码为0002 普通权限为 666

先按位取反权限掩码 000 000 010 取反 111 111 101 再与默认权限按位与 (&)( 两个二进位都为1时,结果位才为1

110 110 110 默认权限

111 111 101 权限掩码

Original: https://www.cnblogs.com/LonelyMoNan/p/Liunx.html
Author: Lonely丶MoXuan
Title: Linux权限

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/523169/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球