【每天一点linux】说说linux权限管理那点儿事

来源:互联网 发布:java singleton模式 编辑:程序博客网 时间:2024/06/05 02:24

在windows的界面下,我们在删除一些文件的时候,系统会提示没有权限。当然在linux下,也会有这种权限问题。那么今天我们就来细说一些linux的权限管理问题。

在linux下,它的访问者主要分为三个:
u—-users:文件和文件目录的所有者
g—-group:和你同组的成员
o—-other:其他人

说完了访问的人,接下来得考虑一下可访问的权限。如下图,红框标注出来的即是linux会涉及到权限。
r—read:读取。对一个文件来说,是获取该文件的内容;对一个目录来说,即是获取目录的信息进行详细浏览。
w—write:写,修改。对文件来说,是有修改该文件的权限;对一个目录来说,则是具有删除移动文件的权限。
x—exe:执行。对文件而言,是可以执行该文件;对目录来说,是可以进入该目录。

这里写图片描述

在表示权限时,我们通常有两种办法,一种是字符表示法;一种是八进制表示法

1.字符表示法:

linux表示 意义 linux表示 意义 r- - 只读 rw- 可读可写 -w- 只写 r-x 可读可执行 –x 只执行 -wx 可写可执行 rwx 可读可写可执行 —— 无权限

2.八进制表示法

权限符号 八进制 二进制 r- - 4 100 -w- 2 010 –x 1 001 rw- 6 110 r-x 5 101 -wx 3 011 rwx 7 111 —— 0 000

在说完这些基本的概念后,我们要进入主题啦。怎么去修改文件的权限?

在linux中有一个命令:chmod是专门用来设置文件的访问权限的。

格式:chmod [参数] 权限 ⽂文件名

参数设置如下:
+ 表示增加权限
- 表示取消权限
= 表示唯一设定权限

-s :在文件执行时把进程的属主或组ID置为该文件的文件属主
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
–help : 显示辅助说明
–version : 显示版本

比如在我的工作目录下创建了一个file1,最开始的权限额如下图所示。

这里写图片描述

现在是users可读可写,group可读可写,other只读。现在我希望other也可以写。输入命令:chmod o+w file1

这里写图片描述

大家可以看到other原先只允许读,现在也可以允许写了。现在我将所有读的权限都去掉。
这里写图片描述

接下来把“hello world”到file1里,这时再去cat文件的内容就会提示“permission denied(拒绝访问)”。因为这个时候我们已经没有读的权限了。

这里写图片描述

下来我们用八进制表示法将users和group的可读权限加上。现在可以看见红框标注的权限已经有读的权限了。这时我们在去cat file1的内容,屏幕按照要求输出“hello world”。

这里写图片描述

刚才我们说的是文件的访问权限,对一个文件而言,它也会有所有者和所在组。比如下图红框标注的就是文件的所有者,蓝框标注的是它所在的组。

这里写图片描述

那么通过修改所有者和所在组也会对文件的访问进行设置。接下来有一个命令是专门修改文件的拥有权的—chown

chown:修改⽂文件的拥有者
格式:chown [参数] ⽤用户名 ⽂文件名

下来开始修改file1 的拥有权限,我们将文件的所有者改为root用户。输入命令后我们所期待的情形并没有出现,系统会报错说没有操作权限。大家都知道sudo是可以让普通用户执行一些root用户的权限。于是我们加上sudo,如下图。最后的结果还是失败。其实在这里不是我们的命令出了问题,而是我们现在的用户并没有加入到sudo的配置文件里,也就是说sudo根本不认识这个用户。

这里写图片描述

这个时候我们需要将目前的用户添加到sudo中。步骤如下。

1.先切换到root下,然后调用visudo 。

这里写图片描述

2.在打开的配置文件中, 找到root ALL=(ALL) ALL, 在下面添加一行
xxx ALL=(ALL) ALL (其中xxx是你要加入的用户名称)。

这里写图片描述

接下来我们继续刚才的修改就会轻而易举的实现了。此时file1的拥有者已经变成了root。
这里写图片描述

改了所有者当然也就可以修改所在组,将组也改为root。不过这个时候我们需要切换成root了。

这里写图片描述

之前的操作一直都是对文件的,那现在我们创建一个目录file2。最开始如红框标识,此时我们是可以进入目录的。

这里写图片描述

好的,下来我们修改一下目录的权限在进行查看。

这里写图片描述

当我们去掉可执行权限时,我们连目录都进不去了。x—exe:执行。对文件而言,是可以执行该文件;对目录来说,是可以进入该目录。由此可见,如果我们想访问一个目录或者想进入一个目录,该目录的x权限必须有,否则我们就无法完成操作。这个时候,即使我们有读的权限也只能对目录下的部分信息进行获取。

这里写图片描述

现在我们在file2 中添加了一个myfile,接着将file2读的权限去掉,如下图。再次进入file2 中我们已经不能读取目录的详细信息。

这里写图片描述
这里写图片描述

总而言之,在普通用户下,如果我们想访问一个目录,那么该目录必须有x权限。有r的权限只能获取目录的部分信息。如果该目录没有r权限,那么只能进入该目录,不能获取目录的所有信息。

0 0
原创粉丝点击