【Linux】权限(shell运行原理、概念,Linux权限)

这篇具有很好参考价值的文章主要介绍了【Linux】权限(shell运行原理、概念,Linux权限)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm=1010.2135.3001.5343
🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12625432.html

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

目录

shell命令以及运行原理 

创建和删除用户

创建新普通用户 

删除用户

Linux权限的概念 

 Linux权限管理

文件访问者的分类(人)

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

文件类型 

 基本权限

 如何理解x?

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

chmod

chown

chgrp

 umask

目录的权限

粘滞位


前言

    💬 hello! 各位铁子们大家好哇。

             今日更新了Linux的权限的内容
    🎉 欢迎大家关注🔍点赞👍收藏⭐️留言📝

shell命令以及运行原理 

Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

  • 将使用者的命令翻译给核心(kernel)处理。
  • 同时,将核心的处理结果翻译给使用者。 

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

  • 帮助理解:如果说张三是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是张三村头漂亮且心动的MM如花。他看上了如花,但是有不好意思直接表白,就让家人找媒婆帮他提亲,所有的事情他都直接跟媒婆沟通,由媒婆转达他的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash。

 【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

Shell外壳的存在,可以对请求进行合法性检查,变相的保护OS。 

Shell是外壳程序的总称,bash就是具体的一款外壳程序。 

创建和删除用户

当我们在第一次使用linux时最开始都是只有一个超级用户(root),而普通用户则是用过超级用户进行创建而形成的,所以我们首先来在超级用户下进行创建一个普通用户 

创建新普通用户 

第一步:首先进入linux系统中输入指令 whoami 显示root则表示当前用户为超级用户,接下来我们就可以继续进行创建新的普通用户操作。

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

第二步:输入 adduser+要创建的用户名,接着我们passwd+用户名设置该用户的密码,密码设置最少7位,不能太简单,不然会报错,这里建议字母+数字,再重复输入新密码(注意这里输入密码不回显)当出现all authentication tokens updated successfully则表示新用户已经创建成功,一般创建的新用户会在home目录下生成一个该用户名命名的文件夹。到这里我们的新普通用户就算是已经创建成功了。
【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

删除用户

userdel -r+用户名 

当我们想要对普通用户进行删除时,首先我们先切换超级用户root,然后我们使用指令 userdel -r+用户名 进行删除普通用户操作。
注意

不要使用userdel+用户指令进行删除,因为这样只会删除该用户,而不会删除home目录下的该用户的文件夹,相当于存在残留,没有删除干净。

当在进行一次userdel+用户操作时则显示不存在该用户,但是查询该home目录时还存在该文件夹,这时我们在adduser+用户名发现弹出警告说home目录中已经存在该文件夹, 

如果不小心userdel +用户名,解决方法是:进行adduser+刚才的用户名,然后userdel -r+用户名 ,这样就能解决了。

Linux权限的概念 

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

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。 

命令:su [用户名]

功能:切换用户。

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

注意:从root切换到普通用户,不需要输入密码。从普通用户切换到root,需要输入密码。

 Linux权限管理

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

当我们是普通用户时,创建的文件拥有者就是我们自己。如果想在普通用户身份下,创建拥有者是root的文件,可以使用sudo,进行提权,不过sudo的使用,需要进行配置,后面再说明。 上方不能进行提权是因为没有进行配置。

文件访问者的分类(人)

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

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

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

文件类型 

d:文件夹

-:普通文件

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

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

p:管道文件

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

s:套接口文件 

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

window中,如果把一个文件后缀名改了,可能就打不开文件了。但是linux不一样,即使修改了后缀,也能打开它 。

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

 基本权限

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

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

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

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

 如何理解x?

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

 能执行=具有可执行权限+你就是一个可执行文件。

上图中,test.c具有可执行权限,但不是一个可执行文件,所以无法执行。

如果某文件是可执行文件,但它没有可执行权限,同样无法执行。        

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

chmod

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

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

常用选项: 

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

chmod命令权限值的格式

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

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

 上方是用chmod修改权限的例子。 这是第一种方式。

除了上方用o、g、u修改权限,还可以用八进制进行修改,如下:(第二种方式)

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

 【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

 如果拥有者没有权限,也无法进行操作。但是root不一样,没有权限,也能照样操作文件。

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

上图中,我既是拥有者,也是所属组,但是我依然无法进行操作。那是因为对用户身份的识别只进行一次,此时我被识别为拥有者,就只有拥有者的权限,而没有所属组的权限。

chown

功能:修改文件的拥有者

格式:chown [参数] 用户名 文件名 

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

我们想把拥有者修改为xjh,但是无法执行,因为chown的操作者必须是root。或者我们可以进行sudo进行提权,由于上方没有配置,所以无法进行提权。  

chgrp

功能:修改文件或目录的所属组

格式:chgrp [参数] 用户组名 文件名

常用选项:-R 递归修改文件或目录的所属组 

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

chgrp的使用和chown一样。 

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

如果我们想一次性修改拥有者和所属组,只需在中间加上冒号即可。如上图。 

 umask

功能:

查看或修改文件掩码

新建文件夹默认权限=0666

新建目录默认权限=0777

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & (~umask)

格式:umask 权限值

说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用 户默认为0002。 

 【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言  

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

我们可以查看掩码,或者主动修改掩码 

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

起始权限是0666,对应的权限应该是rw-rw-rw-。可上面的文件却不是 ,这就跟权限掩码有关了。

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

 我们对掩码取反,再与默认权限进行按位与操作。最后结果就是rw-rw-r--了。

目录的权限

只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写 权限.那么,如何创建一个可以多人共享的目录呢?

首先可以确定的是,这个目录肯定不能在家目录里面。只能在根目录,此时只有root才能创建。

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

因为这是一个要共享的文件,我们还得把other的w权限打开。 这样其他用户就可以在里面创建文件了。

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

假设text.txt是张三创建的共享文件,李四与他进行共享,因为李四也需要写入,就打开了other的w权限。突然冒出了王五,他却把这个共享文件删了(因为王五也是other,share目录把other的w权限放开了)。那要怎样才能让这个共享文件可读可写,但不能别人删呢?这时就需要用到粘滞位。

粘滞位

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

  1. 超级管理员删除
  2. 该目录的所有者删除
  3. 该文件的所有者删除 

 粘滞位是针对目录的,针对other的。粘滞位就是加强版的x。

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

【Linux】权限(shell运行原理、概念,Linux权限),Linux,linux,运维,服务器,开发语言

设置了粘滞位后,王五就不能删除这个目录里的文件了,便实现了共享。文章来源地址https://www.toymoban.com/news/detail-857215.html

到了这里,关于【Linux】权限(shell运行原理、概念,Linux权限)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux系统编程学习 NO.5 ——shell命令行的概念以及原理、权限的概念

    首先,用户下达指令需求。此时Linux操作系统的内核kernel,并不会直接接收用户下达的指令,因为操作系统不擅长跟用户打交道。那么指令要如何下达呢?这就命令行解释器来对用户的指令进行处理。 shell对于Linux主要是对指令进行解析,解析指令给Linux内核。反馈结果在通过内

    2024年02月06日
    浏览(38)
  • 【Linux运维】shell脚本检查服务器内存和CPU利用率

    在管理服务器时候写了一个 shell脚本,在服务上实现每天凌晨3点查系统的指定文件夹下的容量大小,如果超过10G就要删除3天前的内容,还要时刻查询内存和cpu利用率,如果超过80%就要提示用户出现过载 将以上代码保存为一个.sh文件,然后通过crontab在每天凌晨3点运行即可:

    2024年02月09日
    浏览(48)
  • 【Linux】Shell 命令以及运行原理

    当用户登录 Linux 系统的时候,系统会给用户创建一个新的进程,一般叫做 bash(命令行解释器)。 Linux 严格意义上说的是一个操作系统,我们称之为 “核心( kernel )” ,但对于我们一般用户,是不能直接使用  kernel 的 。而是通过 kernel 的  “ 外壳 ”  程序,也就是所谓

    2024年01月22日
    浏览(30)
  • 【Linux】浅谈shell命令以及运行原理

    前言:上篇博文把linux下的基本指令讲解完了。本期我们聊聊Linux下【shell】命令及其运行原理。   目录 Shell的基本概念与作用 原理图展示  shell命令执行原理 Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。 而是通

    2024年02月03日
    浏览(30)
  • 深入篇【Linux】学习必备:Shell命令运行原理 + 基本指令

    Linux严格意义上来说是一个操作系统,我们称为\\\"核心\\\",但我们一般用户,是不能直接使用这个\\\"核心\\\"。而是通过\\\"核心\\\"的外壳程序,也就是所谓的Shell来与\\\"核心\\\"沟通。 其实我们所有的指令都要在OS内部运行,但是OS使用的难道太高,我们用户很难直接与OS打交道。 从技术角度

    2024年02月07日
    浏览(74)
  • Linux运维之shell基础

    基本语法: 注意事项: ①[ 条件判断式 ],中括号和条件判断式之间必须有空格 ②if 后要有空格 例如,现在写一个if.sh脚本文件 基本语法: 注意事项: (1)case 行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。 (2)双分号“;;”表示命令序列结束,相当于

    2024年02月02日
    浏览(43)
  • Linux运维之初识shell

    系统定时任务需要用到 crontab 命令,但是使用此命令有一个前提,即需要打开 crond 服务。为了不那么复杂,可以直接使用我之前学的 systemctl 命令重新启动 crond 服务。 语法:``crontab [-e -l -r] ` 选项:-e 编辑crontab定时任务;-l 查询系统crontab任务;-r 删除当前用户的所有cronta

    2023年04月27日
    浏览(31)
  • Linux中shell外壳,用户权限,文件权限

    所属专栏:Linux学习❤️ 🚀 博主首页:初阳785❤️ 🚀 代码托管:chuyang785❤️ 🚀 感谢大家的支持,您的点赞和关注是对我最大的支持!!!❤️ 🚀 博主也会更加的努力,创作出更优质的博文!!❤️ 🚀 关注我,关注我,关注我,重要的事情说三遍!!!!!!!!

    2024年02月08日
    浏览(34)
  • 【Linux】shell外壳和权限

    什么是 shell外壳 呢?首先我们应该知道, 用户和操作系统内核是不能直接接触的 ,因为 首先操作系统本身就很难去操作,另一方面也是为了操作系统安全考虑 ,不能让用户直接去操作内核。 于是这时候,在内核和用户之间就有一个“屏障”负责 传话 ,就是将用户的 需求

    2024年01月24日
    浏览(24)
  • 【Linux | Shell】Linux 安全系统 —— 用户、组、文件权限 - 阅读笔记

    Linux 安全系统的核心是 用户账户 。 用户权限是通过创建用户时分配的用户 ID( user ID, UID)来跟踪的。 UID 是个数值,每个用户都有一个唯一的 UID。 用户在登录系统时是使用登录名( login name)来代替 UID 登录的。 下面介绍 Linux 系统使用哪些 特定文件和工具 来跟踪及管理

    2024年02月13日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包