【Linux操作系统】权限管理和粘滞位

简介: 【Linux操作系统】权限管理和粘滞位

前言

Linux操作系统学习,权限管理,关于Linux中文件的权限,学习此章节,会对文件的读、写、访问权限进一步了解


Linux权限管理

Linux下有两种用户:超级用户(root)、普通用户。

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。

超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。


命令:su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su
root(root可以省略),此时系统会提示输入root用户的口令。

01.文件访问者的分类(人)

  • 文件和文件目录的所有者:u—User(中国平民 法律问题)
  • 文件和文件目录的所有者所在的组的用户:g—Group(不多说)
  • 其它用户:o—Others (外国人)


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

我们在调用ls -l指令的时候,往往会看到很多文件属性,那究竟这些属性各自代表着什么呢?

解释图如下:



简单介绍下:


  • 第一位字符:文件类型,如上图例子,(d)代表着文件,(-)代表着文本文件。
  • 二到十位字符,代表着权限。每三位为一组,分别对应着所有组、所属组和others的权限设置。rwx:r(读)、w(写)、x(运行)这个后续会做补充。
  • 后续分别代表连接数(Linux系统中的属性连接数是指系统能够同时处理的TCP连接的最大数量。)、所属用户(谁创建的)、所属用户组(所属用户拉的小群体)、文件大小(kb)、最近更改日期以及文件名

内容扩展:

这里比较重要的其实是文件类型、权限属性、所属用户以及所属组,接下来我将展开介绍。


a)文件类型:


d:文件夹

-:普通文件

l:软链接(类似Windows的快捷方式)

b:块设备文件(例如硬盘、光驱等)

p:管道文件

c:字符设备文件(例如屏幕等串口设备)

s:套接口文件


b)基本权限:


i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限(无法ls目录中内容)

ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限(无法在目录中创建文件、删除文件)

iii.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限(无法cd进入文件)

iv.“—”表示不具有该项权限


03.文件权限值的表示方法

a)字符表示方法

76aac82ca3a2aaf6e1b174c994dd1efc_b5e9f29c52ab46b89db8b7a36e04a960.png


b)8进制数值表示方法

5da3ce5fcfa94a47ede04dbfe87b4b8e_b7ff500d8a62435d929621a6ccbaccba.png

04.文件访问权限的相关设置方法

1.chmod

chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限

chmod

-① 用户表示符+/-=权限字符

+:向权限范围增加权限代号所表示的权限

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

=:向权限范围赋予权限代号所表示的权限

用户符号:

u:拥有者

g:拥有者同组用

o:其它用户

a:所有用户

chmod u/g/o/a +/- /home/abc.txt(文件路径)

实例:

以下我们用chmod修改shared文件,分别把拥有者、所属组、其他用户的w(写)权限修改掉,在同时赋予w(写),看一下效果。

②三位8进制数字

chmod  三位8进制数字   /home/abc.txt(文件路径)

实例:

我们把shared文件,设置为全不可读写访问、u(rwx)g(r-x)o(—)两个为例。八进制三个数字分别对应u、g、o权限设置。实例效果如下:

2.chown

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

实例:

3.chgrp

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

实例:

Linux操作系统默认设置:

新建文件默认权限=0666(文件一般不可执行)

新建目录默认权限=0777

我们不妨试一下:

但我们发现我们实际操作中并不是按照上述说的默认值设置,这是为啥呢?

原因其实和掩码有关。

umask

d)umask

功能:查看或修改文件掩码

新建文件夹默认权限=0666
新建目录默认权限=0777

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。
原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式:umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用
户默认为0002。

实例:

查看umask并且将它设置为0000,在创建文件和目录,看是否是默认值。(这里使用为root用户)

接下来我来解释下最终权限和初始权限以及umask之间的关系:

结论:最终权限 = 初始权限 & (~umask)。

粘滞位

1.共享文件

我们在进行项目开发的过程中,大多数是合作完成的,所以往往有共享文件,每个人都可以有一定的权限。类似腾讯共享文档,大家一起填表格。


这里是创建了共享文件shared,然后duck在文件中创建了test.txt内容为“你好呀!Acat” 权限664,所以Acat用户,可以通过cat来查看文档内容。

c8ac3cebef652230c097f55edcb38a10_de2972c8c1ff46b3b21f2c2583e16122.png

但是Acat他不能够修改文档内容,以及删除文件,因为他对于test.txt文档来说是others,没有写和访问的权限,如图:

3eb9e8186581050c50456573487687f3_477e302a774a4af59090ce576e2136c4.png

这在开发工程中,明显不符合工作,所以把duck把权限放开,允许Acat用户修改,删除和访问。但是出现个问题,Acat用户和duck有矛盾,一气之下就把这个文档删除了。这种情况相当麻烦。

2f51d011ad0dd301bbd571a443ee4246_351abedbf0834502adc6c89dc5779e41.png


  • 既要你可以工作,可以修改,但是你不能找麻烦,删除文件。

所以要达到这个目的,就可以用粘滞位。

粘滞位

chmod + t 来设置文件

注意是设置共享文件夹权限,并非文档文件权限

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

权限的总结

  • 目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限
  • 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。
相关文章
|
17天前
|
安全 Linux 网络安全
部署07--远程连接Linux系统,利用FinalShell可以远程连接到我们的操作系统上
部署07--远程连接Linux系统,利用FinalShell可以远程连接到我们的操作系统上
|
17天前
|
Linux 虚拟化 数据安全/隐私保护
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
|
16天前
|
Linux 测试技术 数据安全/隐私保护
阿里云Linux os copilot 运维助手初体验
阿里云Linux os copilot 初体验
253 1
阿里云Linux os copilot 运维助手初体验
|
3天前
|
弹性计算 运维 自然语言处理
阿里云OS Copilot测评:重塑Linux运维与开发体验的智能革命
阿里云OS Copilot巧妙地将大语言模型的自然语言处理能力与操作系统团队的深厚经验相结合,支持自然语言问答、辅助命令执行等功能,为Linux用户带来了前所未有的智能运维与开发体验。
|
11天前
|
存储 缓存 安全
【Linux】冯诺依曼体系结构与操作系统及其进程
【Linux】冯诺依曼体系结构与操作系统及其进程
98 1
|
11天前
|
缓存 监控 关系型数据库
深入理解Linux操作系统的内存管理机制
【7月更文挑战第11天】在数字时代的浪潮中,Linux操作系统凭借其强大的功能和灵活性,成为了服务器、云计算以及嵌入式系统等领域的首选平台。内存管理作为操作系统的核心组成部分,对于系统的性能和稳定性有着至关重要的影响。本文将深入探讨Linux内存管理的基本原理、关键技术以及性能优化策略,旨在为读者提供一个全面而深入的理解视角,帮助开发者和系统管理员更好地优化和管理Linux系统。
|
11天前
|
弹性计算 运维 Linux
基于在Alibaba Cloud Linux 3 的OS Copilot 产品评测
作为一名技术运维的工作者,每天做的最多一件事就是在Linux下敲各种各样的命令,或完成功能性的部署,或检查系统的稳定性。如果 OS Copilot 作为我的日常工具,我使用场景会更集中于快捷命令或脚本的实现,智能帮我生成各类功能脚本,为我提高运维效率。
基于在Alibaba Cloud Linux 3 的OS Copilot 产品评测
|
12天前
|
人工智能 运维 自然语言处理
当Linux遇上AI:探索操作系统中的智能新纪元
阿里云的OS Copilot是专为Linux打造的智能助手,利用大模型提供自然语言交互、命令辅助及运维优化。它简化编程任务,生成脚本框架,提供代码审查建议,适合开发者和运维人员。
216 0
当Linux遇上AI:探索操作系统中的智能新纪元
|
14天前
|
弹性计算 运维 Linux
阿里云Linux os copilot 运维助手初体验
摘要(Markdown格式): 在阿里云ECS上体验了Linux编程助手OS Copilot,步骤包括申请账户、开通ECS、安装Copilot。Copilot准确解释代码、快速响应问答、辅助编程,尤其在代码生成和注解上表现出色。作为运维人员,认为其简化了工作,给出8分评价,并愿意推荐给他人。期望它能支持更多操作系统,优化代码直接运行功能,并与更多阿里云产品集成。目前只体验了Copilot的基础功能,未与其他类似产品对比。
|
4天前
|
弹性计算 运维 自然语言处理
属于Basis运维的、在Linux平台上运行的大模型测评 OS Copilot智能助手测评
OS Copilot是阿里云为Linux打造的智能操作系统助手,基于大模型,助用户进行自然语言问答、命令执行和系统运维。它简化了Linux操作,适合新手和运维人员。测评者作为IT架构师,发现OS Copilot使非技术背景人员也能操作Linux,接入命令可在官方文档找到。测试显示,通过"co"命令可与OS Copilot交互,实现生产任务融合。该工具提高了工作效率,尤其是对于遗忘具体命令时,非常有帮助。文档清晰,适合生产环境使用,值得进一步探索。
34 0