【Linux】第五站:Linux权限(下)

简介: 【Linux】第五站:Linux权限

2. chown 更改拥有者

我们可以使用chown更改拥有者

但是当我们直接这样使用的时候,我们发现是不可以的

这里其实是因为jby这个拥有者无法直接将这个文件的拥有者交给qyt,因为还需要考虑qyt是否想要。

所以在这里我们需要使用sudo来进行指令的提权,不过这种方式目前我们的linux系统还是无法可以进行的。因为系统不信任我们。所以我们后序在讨论如何进行提权

所以我们可以先使用root用户进行提权

现在拥有者变为了qyt,我们还让jby去修改文件属性的话,那么是不可以的

所以我们可以先让root修改一下文件的属性

然后我们在让jby去读写文件发现是不可以的

不过虽然jby不是拥有者,但他还是所属组,所以我们可以给他加上所属组的权限

然后它就可以进行读写了

3. chgrp更改所属组

既然拥有者都可以更改,那么所属组当然也是可以更改的了

不过还是一样的, 我们无法直接使用jby去更改所属组吗,即便我们本身就是所属组,但我们仍需要使用root去更改,或者如果是拥有者也是可以更改的

如下是拥有者进行的更改

如下是root进行的更改

4.chown一次性更改拥有者和所属组

如下所示,在使用chown的时候,我们在中间加上冒号,然后就可以一次性连续更改拥有者和所属组了

5. 权限认证的细节

在如下的文件中

jby既是拥有者又是所属组,但是我们给它的权限是拥有者只可以读,但是所属组可以读写。

我们会发现,我们正在实际的写入的时候是无法进行写入的

这是因为在进行身份认证的时候,只能选择一个身份进行认证,即我已经是拥有者了,就不会在考虑所属组的权限了。所以无法修改

反而是我们将上面的拥有者给换为了qyt以后,反而是可以进行修改了

五、起始权限问题

当我们创建了一个新的文件的时候,我们发现它的起始权限是如下的

如果我们又创建了两个目录,它的起始权限是这样的

  • 那么为什么我们创建文件的默认权限是是我们所看到的样子?
  • 为什么普通文件是664?
  • 为什么目录文件是775?

其实上面的都只是我们看到的样子

实际上在linux系统中,默认给普通文件的起始权限其实是666,给目录文件的起始权限其实是777

那么为什么默认给的起始权限和我们所看到的不一样么?

这是因为在linux中有一个权限掩码的东西,我们可以使用umask去查看

这个0002就是一个八进制数,第一个0代表它是一个八进制数,后面的三位才是关键的。后面的三个八进制数刚好可以形成9个比特位

权限掩码:凡是在umask中出现的权限,不会在最终的文件权限中出现

所以最终,才有了本应该是666和777,但是最终确变为了664和775

110 110 110    ---普通文件的起始权限
000 000 010    ---权限掩码umask
110 110 100    ---普通文件的最终权限
111 111 111    ---目录文件的起始权限
000 000 010    ---权限掩码umask
111 111 101    ---目录文件的最终权限

它的运算规则类似于如下

最终权限 = 起始权限 & (~umask)

如果我们想要修改umask,我们直接它在后面添加八进制数字即可

六、目录文件的读写执行权限

如下所示,当我们创建了两个文件以后

对于test.c文件它的读写执行,我们都很好理解,可是对于dir这个目录文件,它的读写执行就有点奇怪了,那么究竟都代表什么意思呢?

如果我们对这个目录文件的读权限给去掉了,那么我们可以看到,我们仍然可以进去这个文件,并且在这个目录文件中创建文件,但是我们可以使用ls去读取里面的东西

所以读权限并不影响能否进入,但是影响我们可不可以看

接下来我们继续将写权限给关掉,那么我们可以看到,我们仍然可以进去这个文件,但是我们不可以读也不可写了

所以写权限并不影响能否进入,但是影响我们可不可以写

如果我们继续将这个目录文件的x给去除掉,我们会发现,我们无法进入这个文件了,但是我们可以去查看这个文件的内容

所以目录文件的

r : 是否允许我们查看指定目录下的文件内容

w : 是否允许我们在当前目录下进行创建、更改、删除

x : 是否允许用户进入对应的目录

七、粘滞位

我们可以看一下我们的家目录里面的信息

可以看到,每一个用户它的拥有者和所属组都是它自己,并且只有拥有者有权限,其它的都没有权限

所以普通用户自己的家目录权限是700,我在我的家目录创建的文件,别人都看不到

但是有时候,我们多个用户想要进行文件数据的共享

所以就说明了我们所建立的共享文件,不能在任何一个人的家目录下

所以我们可以使用root账号在根目录下创建一个共享文件shared

然后我们将这个文件的权限全部公开

然后我们可以这样做,就可以共享一个文件了

但是这里出现了一个问题,那就是如果jby不让qyt看这个文件的内容的话,把它的权限给关了,那么如果qyt一气之下直接将文件给删了那就糟糕了。

这就有点不合理了

而我们知道一个文件能否被删除,并不由这个文件所决定,而是由这个文件所处的目录所决定

所以为了避免被qyt删除我们的文件,我们可以去关掉这个shared目录的写权限

可是这样做的话如果我们去掉了共享目录的w权限,我们也同时无法创建文件了,那么谈何共享呢???

为了使得让其他人无法删除文件,所以我们可以使用一个新的位,也即是粘滞位

即直接o+t就可以了

这时候,如果jby让qyt不高兴了,这下qyt想要删文件也删不了了

当然如果是我们文件的创建者要删除的话还是可以的

所以粘滞位:给目录设置,一般是共享目录,大家可以在目录进行各自文件的增删查改,但是只允许文件的拥有者和root去删除文件,其他人一概不允许,t就是一种特殊的x权限

也就是说root用户是可以无视前面的一切规则的。在比如root自己的文件,即便我将我自己的权限都给关了,我照样进的去,改的了,看的了

不过如果每次我们想要共享文件的话,这样是不是有点太费劲了呢?

其实在linux中,根目录下就有一个文件tmp,他就是带了粘滞位的

相关文章
|
2月前
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
|
25天前
|
Linux 数据安全/隐私保护
linux特殊权限!!
本文介绍了Linux系统中的特殊权限,包括suid、sgid和sbit。suid使普通用户在执行特定命令时获得root权限;sgid使用户在创建文件时继承目录的用户组权限;sbit确保用户只能删除自己在共享目录中创建的文件。此外,文章还讲解了chattr和lsattr命令,用于更改和查看文件的扩展属性,以及umask的概念和计算方法,帮助理解文件和目录的默认权限。
38 1
linux特殊权限!!
|
2月前
|
运维 监控 安全
Linux_权限理解(详细PLUS)
【10月更文挑战第3天】本文介绍了Linux系统中的权限管理基础,包括文件系统对象与权限关联、权限的继承性、字符与数字表示法的解读,以及用户、组与权限的动态交互。详细解析了`chmod`命令的高级用法和权限修改的风险,探讨了SUID、SGID和Sticky Bit等特殊权限的作用机制,并提出了基于角色的权限分配和定期权限审计的最佳实践。
69 11
|
2月前
|
Linux 应用服务中间件 nginx
Linux下权限设置之suid、sgid、sticky
Linux下权限设置之suid、sgid、sticky
|
2月前
|
Linux 数据安全/隐私保护 Windows
Linux_权限理解(详细PLUS
Linux_权限理解(详细PLUS
|
2月前
|
网络协议 Linux 网络安全
【Linux】用户和权限及实用操作------迅速了解用户和权限及其实用操作
【Linux】用户和权限及实用操作------迅速了解用户和权限及其实用操作
|
2月前
|
Linux Go 数据安全/隐私保护
Linux入门2——初识Linux权限
Linux入门2——初识Linux权限
28 0
|
4月前
|
Unix Linux Go
Linux中的chmod权限问题
Linux中的chmod权限问题
63 0
|
4月前
|
安全 Linux 数据安全/隐私保护
在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置成多少才可以?
在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置成多少才可以?
|
4月前
|
Linux
在Linux中,如何使用xargs和exec实现把当前目录下所有后缀名为.txt的⽂件的权限修改为777。
在Linux中,如何使用xargs和exec实现把当前目录下所有后缀名为.txt的⽂件的权限修改为777。