Linux中的权限问题

简介: Linux中的权限问题

Linux中的权限问题

1.权限的概念

限制人的,访问的对象天然可能没有这种"属性"权限:一件事情是否允许被"做" 权限 = 人 + 文件属性


2.Linux上面的用户分类(root,普通)

a.root(超级管理员) – 几乎可以干任何事情

b.普通用户


3.Linux的文件属性

属性:读,写,执行

Linux中的文件类型:

不是通过文件的后缀区分文件类型,而是用文件的属性中第一列的第一个字符来区分文件类型

切记是文件属性的第一个字符(例文件属性:-rw-rw-r–)

drwxrwxr-x

-rw-rw-r–

-rw-rw-r–

所以通过第一个字符我们就可以得到此时这个文件的类型

例如:


:表示普通文件,文本文件,可执行文件,归档文件等

d :目录

b :块设备,block,磁盘

c :字符设备,键盘或者显示器

p :管道文件

s :网络socket文件

区别于:

我们如何看待原来文件的后缀:a.想用就用,给我们自己看 b.将后缀看做成文件名的一部分

注意:*但是这个只是在Linux系统中,但是要注意我的有的接口(可能是需要使用这个文件后缀的,没有就不行)例:gcc

例:一个文件的所有属性

-rw-rw-r-- 1 whb whb 14260 Nov 22 19:36 cmd.txt

| | | |

文件类型 文件字节大小 创建or修改时间 文件名

4.Linux文件权限(用户层面)

指令:(su)

功能:切换普通用户和超级用户(返回 Ctrl+d)


(sudo)

功能:对单条指令进行提权

指令:sudo command 例:sudo cat test.txt

这样就可以从原来的访问不了,变成可以访问了

注意:*如果我是对文件的创建进行提权,并且我此时是一个普通用户,那么此时当这个文件创建好了之后这个文件的拥有者和所属组就不再是普通用户了,而是root(就好比我是拿着人家root的权限去创建的,所以可以提权,但是创建的本人还是root)


角色划分:

a.文件拥有者

例:

-rw-rw-r-- 1 whb whb 14260 Nov 22 19:36 cmd.txt

| |

文件拥有者 文件所属组

b.文件所属组

目的:使我的文件可以给我想给的人看(就是把我的文件开一个权限,假如没有这个文件所属组的话,那么此时文件开了权限,那么文件other就可以看到了(也就是所有人都可以看到了),所以我们需要有一个文件所属组,这样就可以把我的文件给我想给的人看了)


c.文件的other


在Linux中认识以下东西:

root && 普通用户 vs 拥有者 && 所属组 && other

| |

人 角色

总的一句话:任何人可以是任何角色


文件属性的后面9个字符的理解:

(例文件属性:-rw-rw-r–)

drwxrwxr-x

-rw-rw-r–

-rw-rw-r–

去掉第一个,三个三个为一组

例: - rw- rw- r–

| | | |

文件类型 文件拥有者 文件所属组 文件的other


并且此时的 r:代表可读权限

w:代表可写权限

x:代表可执行权限


所以我们描述一个文件的权限(文件权限 = 人 + 文件属性)应该这样描述:

该文件的拥有者具有可读可写的权限,不具有可执行的权限,文件所属组具有可读可写的权限,不具有可执行的权限,文件的other具有可读的权限,不具有写和执行的权限


搞定了上述的问题,我们搞定一下如何更改权限的问题

更改权限:

(chmod)

指令:chmod u+r file.txt 给文件拥有者加一个可读的权限 chmod u+rx file.txt 同理可以同时加两个权限

chmod g+w file.txt 给文件所属组加一个可写的权限 chmod g+wr file.txt

chmod o+x file.txt 给文件other加一个可执行的权限 chmod o+xw file.txt

指令:chmod u-r file.txt 给文件拥有者去掉一个可读的权限 chmod u-rx file.txt 同理可以同时去掉两个权限

chmod g-w file.txt 给文件所属组去掉一个可写的权限 chmod g-wr file.txt

chmod o-x file.txt 给文件other去掉一个可执行的权限 chmod o-xw file.txt


同时给所有人加减权限

指令:chmod a+r file.txt

chmod a+rw file.txt

chmod a+rwx file.txt

指令:chmod a-r file.txt

chmod a-rw file.txt

chmod a-rwx file.txt 同时给所有人加减各种权限


更改角色:

(chown/chgrp)

指令:chown root file.txt

表示:将我当前的文件的拥有者从whb改为root(但是会有权限不足的问题)

所以我们可以进行提权(sudo)

指令:sudo chown root file.txt

这样我就把文件的拥有者给改成root了


5.权限中的指令

(file)

功能:查看文件类型

指令:file file.txt


6.Linux中目录的权限(r/w/x)

6.1 进入一个目录所必须的权限是(x)可执行权限,rw都是不必须的(但是如果没有r和w权限,那么此时我们就不可以对这个目录进行读和写)

没有r:就无法查看当前的这个目录下的文件名和文件属性

没有w:就无法对这个目录进行文件的创建(例:touch file.txt)

没有x:连目录都进不去

————————————————————————————————————————————

7.默认权限

默认权限:我们看到的(例:普通的文件(不包括可执行),默认权限是从664开始,目录的默认权限是775开始)

起始权限:系统设定的,普通文件的起始权限是从666开始的(rw没有x),目录文件的起始权限是:777(rwx)

并且此时系统为了更好的控制文件权限,系统会有默认的权限掩码的概念!掩码(umask)

掩码的概念:1011 1010 -> 0000 1111 -> 0000 1010 我只想要拿到1010,这样我就通过我的掩码只拿到了1010

(umask) |

功能:查看掩码 掩码


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

8.粘滞位

背景:在使用Linux的时候,未来可能会有一些共享目录,用来保存普通用户产生的临时数据

但是当文件被所有人共享的时候,一样会受到权限的约束,但是却拦不住别人删除这个共享的文件

这个就产生了一个问题(所以我们就要引入一个新的概念来解决这个问题)

新概念:粘滞位

总的来说粘滞位的概念就是:为了让大家共享文件,且不让其他人随便删除别人的文件

功能:使一个目录只能添加目录,共享目录

指令:chmod a+t catalog(目录)

通过这个指令,可以得到目录权限从 drwxrwxrwx -> drwxrwxrwt

最后的x变成t -> 就是表示从普通目录变成了一个粘滞位的目录

综上:此时我的drwxrwxrwt目录,此时就只可以添加文件,不可以删除文件了(这就是共享文件的特点(带粘滞位),不允许删除)


此时在讨论一个问题:为什么我们权限是w时拦不住别人删除文件,到了t的时候就可以拦住别人删除我们的文件

原因:在一个目录中增加和删除文件/目录是由我的w(写)权限决定的,你把other的w改成了t

other此时没有了w权限,自然而然就删除不了你的文件(但是为了可以增加文件,所以我们不可以直接把w权限去掉,我们一定要把w改成t,这样才可以符合我的两个要求)


相关文章
|
2月前
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
54 2
|
1月前
|
Linux 数据安全/隐私保护
linux特殊权限!!
本文介绍了Linux系统中的特殊权限,包括suid、sgid和sbit。suid使普通用户在执行特定命令时获得root权限;sgid使用户在创建文件时继承目录的用户组权限;sbit确保用户只能删除自己在共享目录中创建的文件。此外,文章还讲解了chattr和lsattr命令,用于更改和查看文件的扩展属性,以及umask的概念和计算方法,帮助理解文件和目录的默认权限。
44 1
linux特殊权限!!
|
2月前
|
运维 监控 安全
Linux_权限理解(详细PLUS)
【10月更文挑战第3天】本文介绍了Linux系统中的权限管理基础,包括文件系统对象与权限关联、权限的继承性、字符与数字表示法的解读,以及用户、组与权限的动态交互。详细解析了`chmod`命令的高级用法和权限修改的风险,探讨了SUID、SGID和Sticky Bit等特殊权限的作用机制,并提出了基于角色的权限分配和定期权限审计的最佳实践。
75 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权限
30 0
|
4月前
|
存储 安全 Linux
Linux权限之谜:一步步教你如何解锁sudo权限并窥视/etc/shadow的神秘面纱!
【8月更文挑战第22天】在Linux中,`sudo`命令让授权用户能以其他用户(通常是root)身份运行命令。关键的安全文件`/etc/shadow`存储用户密码哈希,仅root可读。要使用`sudo`,需确保账户被列入`sudoers`文件中。系统管理员可通过`visudo`编辑此文件来赋予用户权限,例如添加`username ALL=(ALL) NOPASSWD: ALL`行。获得`sudo`权限后,可运行`sudo cat /etc/shadow`查看文件内容,但需谨慎操作以免影响系统安全。遵循最小权限原则,确保安全使用这些强大工具。
115 2
|
4月前
|
Linux 数据安全/隐私保护
在Linux中,什么是文件权限?什么是rwx权限模型?
在Linux中,什么是文件权限?什么是rwx权限模型?
|
4月前
|
Unix Linux Shell
Linux 权限简介
Linux 权限简介
47 1