返回顶部
首页 > 资讯 > 操作系统 >【Linux】关于Linux中的权限
  • 392
分享到

【Linux】关于Linux中的权限

linux服务器运维 2023-09-24 06:09:38 392人浏览 泡泡鱼
摘要

文章目录 前言Linux权限文件访问者的分类(人)文件类型和访问权限(事物属性)文件类型基本权限 目录的权限粘滞位权限的总结 前言 前面我们已经知道。linux下有两种用户:超级

文章目录

前言

前面我们已经知道。linux下有两种用户:超级用户(root)、普通用户

以及相互之间的切换:

image-20220928234154823

以及引入的权限的一些铺垫。

下面,我们对其进行补充说明。

如果不切换用户,就想让普通用户以root的身份,执行对应的指令,该怎么去做呢

很简单,加上sudo.sudo加上指令表示短暂的提权,root执行命令。不过这里会有一个问题,不让我们执行,也就是说系统不相信这个用户:

image-20220928235905748

在这个地方,我们授权的时候,让我们输入自己的密码:给受信任的用户,提供最少的执行障碍

解决方法:需要将当前用户添加到系统的文件/etc/sudoers中。这里先不展开说明。后面会做补充。如果暂时使用root,root的权限是最大的,可以随便切换到其他普通用户。也就不存在没有权限的问题了。


Linux权限

简单理解权限:权限简单来说就是进行约束的。(人,一个或者某些群体)

​ 目标对象,本来就没有对应的属性。也就不具备该权限。一个事情是否允许被谁做

文件 = 内容+属性

为什么要有权限❓便于我们系统进行安全管理的

为什么创建的目录或者普通文件,默认的权限是我们看到的这个样子:

image-20221001153454937

为什么创建出来的目录/文件权限是默认上面这个样子的:

Linux规定,目录起始的权限是777(二进制表示,这一部分不懂可以先跳过,往下继续看权限的二进制)

​ 普通文件的起始权限是666

umask:

image-20221001150600672

注意这里的umask是可以进行改变的

image-20221001154234802

0022——系统默认会配置好umask权限掩码:凡是在umask中出现的权限,都必须在起始权限去掉!!!

image-20221001153344697

这也就对应上了:image-20221001153454937

这里还存在一个问题:去掉是在做减法吗

image-20221001160318064

我们发现file根本没有发生变化如果是减法的话应该是原来的666(110 110 110)--------》001 001 001.所以不是减法

实际上,最终权限 = 起始权限 & (~umask)

起始权限:666 110 110 110

umask: 0111 001 001 001

~umask: 110 110 110

起始权限 & (~umask):

​ 110 110 110

即 rw- rw- rw-


文件访问者的分类(人)

文件和文件目录的所有者: u—User

文件和文件目录的所有者所在的组的用户: g—Group

其它用户: o—Others


文件类型和访问权限(事物属性)

文件类型

补充:Linux和windows(根据文件的后缀)的差别很大。而Linux的文件类型和后缀无关(后缀名可以作为提示,用户可以使用后缀区分文件类型),但是对linux来说区分文件和文件本身的后缀是无关的(但是gcc等工具对文件后缀可能有要求)。后缀本质就是文件名的一部分。

image-20220929192204477

开始之前,我们输入ll指令,来看看前面10个字符代表什么意思:

image-20221004085112137

在linux中,是通过ll显示的众多属性列中的第一列的第一个字符来区分文件类型的。

image-20220930102603738

d:目录文件
-:普通文件(源代码,库文件,可执行程序,文档压缩包等等)
l:链接文件(类似windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如键盘,显示器)

[hwc@VM-8-3-Centos test5]$ ll /dev/ttycrw-rw-rw- 1 root tty 5, 0 Sep 29 16:02 /dev/tty

s:Socket文件

到了这里,我们已经了解了第一个字符,那其他的呢

image-20220930104906684

对于权限字符所代表的意思,请往下看👇


基本权限

i.读(r/4): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
ii.写(w/2): Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
iii.执行(x/1): execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
iv.“—”表示不具有该项权限

image-20220930105319334

image-20220930105355809

image-20221001085012480

对于权限我们有了基本的了解,那我们该如何去设置权限呢

chmod

功能: 设置文件的访问权限

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

常用选项:R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限

chmod
用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限

-:向权限范围取消权限代号所表示的权限

=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

[hwc@VM-8-3-centos test5]$ chmod u+x file.txt
[hwc@VM-8-3-centos test5]$ chmod u-r file.txt
[hwc@VM-8-3-centos test5]$ chmod g-rw test.txt
[hwc@VM-8-3-centos test5]$ chmod g+rwx test.txt
[hwc@VM-8-3-centos test5]$ chmod o-r test.txt
[hwc@VM-8-3-centos test5]$ chmod o+rw test.txt

当然,我们也可以组合起来

[hwc@VM-8-3-centos test5]$ chmod u-rwx,g-rwx test.txt
[hwc@VM-8-3-centos test5]$ chmod u+rw,g+rw,o-rw test.txt

对于所有用户

[hwc@VM-8-3-centos test5]$ chmod a-rwx test.txt

到了这里,我们对于权限的设置有了了解。如果我们把r权限去掉,而去读取呢?当前不能读

[hwc@VM-8-3-centos test5]$ chmod u-r test.c[hwc@VM-8-3-centos test5]$ lltotal 20-rwxrwxr-x 1 hwc hwc 8360 Sep 29 18:59 aaadrwxrwxr-x 2 hwc hwc 4096 Sep 29 18:46 dir-rw-rw-r-- 1 hwc hwc    0 Sep 29 18:46 file.txt--w--w---- 1 hwc hwc   89 Sep 30 17:16 test.c-rw-rw-rw- 1 hwc hwc    0 Sep 30 12:10 test.txt[hwc@VM-8-3-centos test5]$ cat test.ccat: test.c: Permission denied
[hwc@VM-8-3-centos test5]$ chmod u-w test.c[hwc@VM-8-3-centos test5]$ lltotal 20-rwxrwxr-x 1 hwc hwc 8360 Sep 29 18:59 aaadrwxrwxr-x 2 hwc hwc 4096 Sep 29 18:46 dir-rw-rw-r-- 1 hwc hwc    0 Sep 29 18:46 file.txt-r---w---- 1 hwc hwc   89 Sep 30 17:16 test.c-rw-rw-rw- 1 hwc hwc    0 Sep 30 12:10 test.txt[hwc@VM-8-3-centos test5]$ echo "you can see me " >> test.c-bash: test.c: Permission denied

这是在普通用户下的,而在root用户下不受约束,我们可以来看看

[root@VM-8-3-centos test5]# cat test.C#include int main(){printf("hello world\n");return 0; }you can see me [root@VM-8-3-centos test5]# chmod a-rwx test.c[root@VM-8-3-centos test5]# lltotal 20-rwxrwxr-x 1 hwc hwc 8360 Sep 29 18:59 aaadrwxrwxr-x 2 hwc hwc 4096 Sep 29 18:46 dir-rw-rw-r-- 1 hwc hwc    0 Sep 29 18:46 file.txt---------- 1 hwc hwc   89 Sep 30 17:16 test.c-rw-rw-rw- 1 hwc hwc    0 Sep 30 12:10 test.txt[root@VM-8-3-centos test5]# echo "hello root" >>test.c[root@VM-8-3-centos test5]# lltotal 20-rwxrwxr-x 1 hwc hwc 8360 Sep 29 18:59 aaadrwxrwxr-x 2 hwc hwc 4096 Sep 29 18:46 dir-rw-rw-r-- 1 hwc hwc    0 Sep 29 18:46 file.txt---------- 1 hwc hwc  100 Sep 30 18:17 test.c-rw-rw-rw- 1 hwc hwc    0 Sep 30 12:10 test.txt[root@VM-8-3-centos test5]# cat test.c#include int main(){printf("hello world\n");return 0; }you can see me hello root[root@VM-8-3-centos test5]# 

对于二进制的表示方法:

[hwc@VM-8-3-centos test5]$ chmod 000 test.c[hwc@VM-8-3-centos test5]$ lltotal 20-rwxrwxr-x 1 hwc hwc 8360 Sep 29 18:59 aaadrwxrwxr-x 2 hwc hwc 4096 Sep 29 18:46 dir-rw-rw-r-- 1 hwc hwc    0 Sep 29 18:46 file.txt---------- 1 hwc hwc  100 Sep 30 18:17 test.c-rw-rw-rw- 1 hwc hwc    0 Sep 30 12:10 test.txt[hwc@VM-8-3-centos test5]$ chmod 777 test.c[hwc@VM-8-3-centos test5]$ lltotal 20-rwxrwxr-x 1 hwc hwc 8360 Sep 29 18:59 aaadrwxrwxr-x 2 hwc hwc 4096 Sep 29 18:46 dir-rw-rw-r-- 1 hwc hwc    0 Sep 29 18:46 file.txt-rwxrwxrwx 1 hwc hwc  100 Sep 30 18:17 test.c-rw-rw-rw- 1 hwc hwc    0 Sep 30 12:10 test.txt

这里如果我们去改文件的拥有者呢❓

chown

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

# chown user1 f1# chown -R user1 filegroup1

很现实的问题:把文件修改为其他人是不能“单方面”就可以的,需要他人的同意。

image-20221001090252434

解决方法:1.使用sudo指令。2.切换到root用户,直接改变。

root的权限是最大的,可以直接将文件修改为其他用户:

chgrp

功能:修改文件或目录的所属组
格式: chgrp [参数] 用户组名 文件名
常用选项: -R 递归修改文件或目录的所属组

sudo chgrp hwc test.txt//把文件拥有者和所属组同时改了sudo chown huangweichang:huangweichang test.txt

file指令

功能说明:辨识文件类型。
语法: file [选项] 文件或目录…
常用选项:
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容

image-20221004085019617


目录的权限

如果我们要进入一个目录,需要什么权限❓X权限

可执行权限: 如果目录没有可执行权限, 则无法cd到目录中

可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.

可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

所以这也是为什么系统规定目录的起始权限从777开始,所有的目录被创建出来,一般都要能够被进入

换句话来讲, 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。也就是说,张三创建的一个文件, 凭什么李四可以删掉

[root@VM-8-3-centos Test]# lltotal 24-rwxr-xr-x 1 root root 8360 Sep 28 18:56 no_die-rw-r--r-- 1 root root  107 Sep 28 18:54 no_die.cdrwxr-xr-x 2 root root 4096 Sep 28 08:56 testdrwxr-xr-x 2 root root 4096 Sep 28 23:36 test5[root@VM-8-3-centos Test]# chmod 0777 /home/[root@VM-8-3-centos Test]# ls /home/ -lddrwxrwxrwx. 12 root root 4096 Sep 30 18:53 /home/[root@VM-8-3-centos Test]# touch /home/root.c[root@VM-8-3-centos Test]# su - hwcLast login: Sat Oct  1 08:18:52 CST 2022 from 222.200.254.195 on pts/0[hwc@VM-8-3-centos ~]$ rm /home/root.crm: remove write-protected regular empty file ‘/home/root.c’? y[hwc@VM-8-3-centos ~]$ 

为了解决这个不科学的问题, Linux引入了粘滞位的概念

粘滞位

Linux系统中有很多人,我们需要在一个公共的目录下,进行临时文件的操作(增删查改)

image-20221016224438880

通过ll /就会发现有一个这样的目录tmp,这就是公共目录。对于粘滞位:一定是在一个公共的目录下,大家一起进行文件操作。

公共目录通常由root用户来创建:

创建公共目录

image-20221016234108156

image-20221016234410847

至此,我们把公共目录创建完毕。

用不同身份在mytmp创建文件

image-20221016234937789

接下去我们用另一个用户创建文件(由于sudo权限暂时用不了,我们直接暴力一点,用root账号去切换另一个账户(huangweichang))

image-20221016235927673

这时这两个都可以在公共目录下读写自己的临时文件。现在huangweichang相对于hwc是others,可以进行读吗?

image-20221017000321399

这里的权限只有只读,没有任何问题哦。可以往自己的文件进行读写。

删除文件

hwc1.txt的权限不让huangweichang这个用户去写,就把hwc1.txt这个文件给删除了

这问题可大了,一个文件在公共目录下,不能写,我们却能把它删掉,这是不合理的。一个不能以另一个用户读、写、执行的文件,竟然可以让另一个用户删除。所以创建和删除的权限是目录的权限,即在目录中创建和删除里面文件的权限不是文件本身的权限,而是目录的权限

这时候需要一个策略,让一个公共目录,大家各自可以进行rwx操作,但是禁止大家互删对方的文件,因此我们需要给这个公共目录设置粘滞位(权限的一种特殊情况)。

image-20221017081048812

image-20221017081846176

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除


权限的总结

  • 目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

来源地址:https://blog.csdn.net/weixin_60478154/article/details/127158916

--结束END--

本文标题: 【Linux】关于Linux中的权限

本文链接: https://lsjlt.com/news/416766.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 【Linux】关于Linux中的权限
    文章目录 前言Linux权限文件访问者的分类(人)文件类型和访问权限(事物属性)文件类型基本权限 目录的权限粘滞位权限的总结 前言 前面我们已经知道。Linux下有两种用户:超级...
    99+
    2023-09-24
    linux 服务器 运维
  • 关于linux权限s权限和t权限详解
    常用权限 linux系统内有档案有三种身份 u:拥有者  g:群组   o:其他人 这些身份对于文档常用的有下面权限: r:读权限,用户可以读取文档的内容,如用cat,more查看 w:写权...
    99+
    2022-06-04
    linux权限 s权限 t权限
  • Linux--权限
    前言:          “权限”这一词并不陌生,在我们日常生活中经常会有权限的设定。比如我们一个学校,老师有讲课的权限,而且学生有听课的权限,学校的食堂阿姨他们是没有这些权限的。我们感觉一个学校校长好像什么权限都有。这里的校长就相当于整个...
    99+
    2023-09-15
    linux 服务器 java
  • 【Linux】权限
           🔥🔥 欢迎来到小林的博客!!       🛰️博客主页:✈️小林爱敲代码       🛰️博客专栏:Linux之路       🛰️社区: 进...
    99+
    2023-08-30
    linux windows 服务器
  • Linux 权限
    💓博主个人主页:不是笨小孩👀 ⏩专栏分类:数据结构与算法👀 C++👀 刷题专栏👀 C语言👀 ...
    99+
    2023-10-26
    linux 运维 服务器
  • linux权限管理的相关命令
    这篇文章主要介绍“linux权限管理的相关命令”,在日常操作中,相信很多人在linux权限管理的相关命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux权限管理的相关命令”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-05
  • 【Linux】Linux下权限的理解
    前言:在之前我们已经对基本的指令进行了深入的学习,接下来我将带领大家学习的是关于权限的相关问题。在之前,我们一直是使用的【root】用户,即为“超级用户”,通过对权限的学习之后,我们就会慢慢的切换到普通用户模式下去进行操作。 本文目录 ...
    99+
    2023-09-01
    linux 运维 服务器
  • 一些Linux Shell中的权限相关知识总结
    一个文件一经创建,就具有三种访问方式: 1) 读,可以显示该文件的内容。 2) 写,可以编辑或删除它。 3) 执行,如果该文件是一个s h e l l脚本或程序。 按照所针对的用户,文件的权限可分为三类: ...
    99+
    2022-06-04
    相关知识 权限 Linux
  • Linux权限的理解
    主要分为两类讲解:1.对人操作 2.对角色和文件操作 目录 Linux权限管理 文件类型和访问权限(事物属性) 基本权限 文件访问者的分类 文件权限值的表示方法 文件访问权限的设置方法 目录权限 umask 粘滞位 1.对人: Lin...
    99+
    2023-09-03
    linux 运维 服务器
  • Linux中文件权限目录权限的示例分析
    这篇文章主要介绍Linux中文件权限目录权限的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!linux中目录与文件权限的意义一、文件权限的意义r:可以读这个文件的具体内容;w:可以编辑这个文件的内容,包括增加...
    99+
    2023-06-09
  • linux权限详解
    文章目录 1.用户转换1.将普通用户转换成root1.su -2. su 2.将root转换为普通用户 2.文件的权限1.文件访问者的分类拥有者和other所属组 2.rwx的...
    99+
    2023-09-23
    linux 服务器 运维
  • 【Linux】- 权限管理
    Linux权限管理 1、Shell命令以及运行原理2、权限2.1用户2.2 对角色和文件操作2.3 Linux下文件的权限2.4权限的表示2.4.1 字符表示法2.4.2 8进制数字表示法 ...
    99+
    2023-09-13
    linux 服务器
  • 【Linux】权限管理
    文章目录 1. shell命令以及运行原理2. Linux权限的概念3. Linux权限管理3.1 文件访问者的分类3.2 文件类型和访问权限文件类型file指令文件权限 4. 文件...
    99+
    2023-09-04
    linux windows 服务器
  • Linux 用户权限
    用户权限 1、访问权限2、chmod 命令3、chown 命令4、chgrp命令5、权限掩码6、lsattr 命令7、chattr命令8、文件的特别权限suid权限set位权限粘滞位权限(Sticky) 9、ACL访问控制列表s...
    99+
    2023-08-24
    linux 服务器 运维
  • 【Linux】一文掌握Linux权限
    环境:centos7,腾讯云服务器 Linux文章都放在了专栏:【Linux】欢迎支持订阅🌹 前言 权限 一词相信大家都不陌生,与我们的生活密切相关。小区里的门禁制度、公司里的管理制度、学校里的校规规定、甚至是社交...
    99+
    2023-09-01
    linux 服务器 运维 Powered by 金山文档
  • linux中UMASK权限是什么
    这篇文章将为大家详细讲解有关linux中UMASK权限是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我们都知道在linux下创建一个文件或者目录之后是可以通过chmod等命令进行权限设置,来达到给当...
    99+
    2023-06-28
  • 关于mysql中root权限丢失的问题
    刚听一哥们说执行了一条语句:revoke all on *.* from root@localhost;            --呵呵,当时到底...
    99+
    2024-04-02
  • linux的权限有哪些
    这篇文章主要讲解了“linux的权限有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux的权限有哪些”吧!我们在使用 Linux 的过程中,或多或少都会遇到一些关于使用者和群组的问...
    99+
    2023-06-26
  • 如何理解Linux Shell中的权限
    本篇内容介绍了“如何理解Linux Shell中的权限”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一个文件一经创建,就具有三种访问方式:1...
    99+
    2023-06-09
  • 3、Linux文件权限和目录权限
    本篇主要讲述:文件和目录的基本权限;设置基本权限(chmod,chown,chgrp);附加权限;1、基本权限(1)访问方式(权限)读取:允许查看内容-read  r写入:允许修改内容-write   w可执行:允许运行和切换-execut...
    99+
    2023-01-31
    权限 文件 目录
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作