linux基础知识-11

Posted 老陌的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基础知识-11相关的知识,希望对你有一定的参考价值。

一、用户所有者,组所有者,权限

linux中每个文件都有三个属性,允许用户控制文件的访问方式。

当建立一个文件时,当前用户就是这个文件的用户所有者(也就是说这个文件是哪个用户建立的),组所有者就是这个用户的主要组,一般和用户同名。普通用户不能更改文件用户所有者,但可以更改组所有者(比如之前学习的newgrp可以定义主要组)。

文件的权限定义了三个不同极别的用户如何使用这个文件:

二、三种权限

通过上图我们知道用户所有者,组所有者,其它人都对文件有着不同的权限设置,其中每组权限分为rwx,被标记 “-” 的表示这组权限中没有这个权限。比如 rw- 表示没有x权限。

标记 权限 说明
r 对于文件表示可以读取文件的内容,对于文件夹表示可以浏览目录中的文件列表
w 对于文件表示可以修改文件的内容,对于文件夹表示可以创建和删除文件
x 执行 对于文件表示可以执行(类似于windows的exe文件),对于文件夹表示可以进入此文件夹中。

三、三种访问级别

每个文件都有三组不同的读,写,执行权限,分别用于文件所有者(u),组所有者(g)和其它人(o)。

当有人访问一个文件时,系统会按如下顺序访问:

  1. 当前用户是文件所有者吗? 如果是启用用户权限。
  2. 当前用户是组所有者的成员吗? 如果是启用组权限。
  3. 如果前面两者都不是启用其它权限。

(一)其它人的权限测试

cclove@home:~$ echo "hello" > /tmp/abc.txt
cclove@home:~$ su - linux
密码:
$ echo "hello" >> /tmp/abc.txt
-su: 1: cannot create /tmp/abc.txt: Permission denied
$ ls -l /tmp/abc.txt
-rw-r--r-- 1 cclove cclove 6 7月  14 18:57 /tmp/abc.txt

我们先用cclove用户创建文件/tmp/abc.txt,之后切换到linux用户,追加字符串到/tmp/abc.txt文件中,但发现没有权限。 之后我们用ls -l查看一下,发现其它人只能读,不能写,所以不能修改人家的文件。

(二)共同组成员的权限测试

首先我们查看一下abc.txt文件的组所有者权限是读和写,这说明只要是cclove组的成员就可以修改abc.txt。 之后我们切换到linux通过id查看一下,发现linux用户的次要组有cclove,这说明linux在cclove这个组中,对这个文件有修改权限。

这里要注意一下,老陌通过修改/etc/group文件:

cclove : x : 1000 : linux

把linux放到cclove最后一个字段,表示这个用户属于cclove组,如果有多个用户,用逗号分隔。

(三)符号链接文件的权限

链接文件就是创建的快捷方式,这里link_abc.txt是abc.txt的快捷方式。我们发现权限是rwxrwxrwx,但实际上它链接到abc.txt,所以权限同abc.txt。

四、修改文件权限

chmod ugoa  +-=  rwx  filename
缩写 说明
u 用户所有者
g 组所有者
o 其它人
a 以上三组(所有)
+ 增加权限
- 减去权限
= 设置权限
r
w
x 执行

例:

给文件abc.txt 用户所有者添加x权限,组所有者添加w权限,其它人去掉r权限。

五、修改文件的组所有者

之前老陌通过newgrp临时修改用户的主要组,之后创建文件则以修改后的组为准,但是如果已经创建文件了就无能为力了。

我们需要用chgrp来修改(change group):

chgrp GROUP file……

此命令的作用是将文件的组所有者改成GROUP,可以一次性修改多个文件。
只有文件的所有者才能更改文件的所属组,而且这个用户必须是新组的成员。

通过上图我们来分析一下:

先创建文件file,查看他的组所有者是laomo, 之后查看文件所有者用户的次要组都有谁,查看之后用chgrp修改file的组所有者为netdev,之后再查看成功。

最后修改file的组所有者为music失败,因为laomo用户不是music组成员,所以修改不了。如果非要改可以用管理员账号改。

六、修改文件的用户所有者

这个需要管理来操作,普通用户没有权限修改。

chown USER file……

将文件的用户所有者改成USER。

通过上图我们来分析一下:

首先查看文件的用户所有者是laomo,之后我们用chown修改成me用户(me是老陌新创建的用户),注意要以管理员权限修改, 再次查看文件的所有者已经变成了me。

以上是关于linux基础知识-11的主要内容,如果未能解决你的问题,请参考以下文章

20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置

逆向及Bof基础实践

[linux][c/c++]代码片段01