Linux权限

目录

​编辑

一、Linux权限的概念

1.1 什么是权限

1.2 权限的本质

1.3 Linux中的用户

二、Linux权限管理

2.1 文件访问者的分类(人)

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

2.2.1 文件类型

2.2.2 基本权限

2.3 文件权限值的表示方法、

2.3.1 字符表示方法

2.3.2 8进制数值表示方法

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

2.4.1 chmod

2.4.2 chown

2.4.3 chgrp

2.4.4 umask

 2.4.5 file指令

 2.5 对比权限的有无表现

三、目录的权限

粘滞位

四、权限总结


一、Linux权限的概念

1.1 什么是权限

        在现实生活中,我们随处可见权限的影子,比如:你最近想看一部电影,但是却需要vip;你要进入小区的大门就需要刷门禁等等。总结起来就是通过一定的条件,拦住一部分人,给另一部分人权力,来访问某种资源。

        权限就像一把钥匙,不同的钥匙可以打开不同的门。在计算机里,权限就是确定谁能做什么的规则。比如,有些人可以读取文件但不能修改,有些人可以修改文件但不能删除。通过权限设置,可以控制谁可以进入哪些房间,谁可以做什么事情,从而保护系统的安全和隐私。

1.2 权限的本质

        通过权限的概念我们知道了权限一定和有关。

        那我今天想去爱奇艺上刷会儿题,还想去LeetCode上看会儿电影,却发现既刷不了题也看不了电影,你很不理解,我可是超级vip啊,为什么干不了这些事。这时爱奇艺和LeetCode也懵了,爱奇艺说我只有看电影的功能,没有刷题的功能;LeetCode也说我只有刷题的功能,没有看电影的功能,你小子不会是走错片场了吧。所以说,权限还和事物的属性有关。

        我们在仔细想一下,你能去爱奇艺上看电影,是因为你叫小明还是因为你是vip用户啊;你能进去一家公司,是因为你叫小李吗?当然不是,是因为你是这家公司的员工你才能进去啊。所以,在“”这个概念中我们又可以提出角色的概念。

        总结起来就是,权限 = 人(角色) + 事物的属性

1.3 Linux中的用户

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

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

  • 命令: su [用户名]。
  • 功能:切换用户。

        例如,要从root用户切换到普通用户user,则使用 su user su - user

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


  • su:`su`命令用于切换到其他用户的身份,但不改变环境变量。当使用`su`命令时,只切换用户身份,当前用户的环境变量、工作目录等信息都会保持不变。
  • su -:`su -`命令也用于切换到其他用户的身份,但会同时切换到目标用户的环境变量。使用`su -`命令时,会将目标用户的环境变量、工作目录等信息全部加载,使得当前用户完全切换到目标用户的环境中。

二、Linux权限管理

2.1 文件访问者的分类(人)

  • 文件和文件目录的拥有者: u---User
  • 文件和文件目录的拥有者所在的组的用户: g---Group
  • 其它用户: o---Others 

Linux中具有组的概念,主要是在多人协作的时候更好的进行权限管理。

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

  • 权限的前3位:文件拥有者的权限。
  • 权限的中间3位:文件所属组的权限。
  • 权限的后3位:其他用户的权限。

2.2.1 文件类型

  • d:目录文件

  • -:普通文件(文本文件、可执行程序、库等)
  • l:链接文件(类似Windows的快捷方式)
  • s:套接口文件
  • b:块设备文件(例如硬盘、光驱等)

  • p:管道文件

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

2.2.2 基本权限

  1. 读(r): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
  2. 写(w): Write对文件而言,具有修改文件内容的权限;对目录来说,具有删除移动目录内文件的权限。
  3. 执行(x): execute对文件而言,具有执行文件的权限(能执行 = 具有可执行权限 + 本身就是一个可执行文件);对目录来说,具有进入目录的权限。
  4. ”:表示不具有该项权限。

2.3 文件权限值的表示方法、

2.3.1 字符表示方法

2.3.2 8进制数值表示方法

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

2.4.1 chmod

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

格式: chmod [参数] 权限 文件名(chmod u+-rwx,g+-rwx,o+-rwx,a+-rwx filename

常用选项:

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

chmod命令权限值的格式: 

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

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限

用户符号:

  • u:拥有者
  • g:所属组
  • o:其它用户
  • a:所有用户

实例:

🌴三位8进制数字

实例:

2.4.2 chown

功能:修改文件的拥有者

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

实例:

2.4.3 chgrp

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

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

常用选项:

  • -R 递归修改文件或目录的所属组

实例:


🌵如果想同时修改文件或目录的拥有者与所属组:chown name1:name2 filename

2.4.4 umask

功能:

  • 查看或修改文件掩码。
  • 创建的普通文件,起始权限是:0666,去掉x的。
  • 创建的目录文件,起始权限是:0777,包含x的。
  • 但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask(最终权限 = 起始权限 & (~umask)

格式: umask 权限值

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

实例:

 2.4.5 file指令

功能:辨识文件类型。

语法: file [选项] 文件或目录...

常用选项:

  • -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -z 尝试去解读压缩文件的内容。

使用 sudo分配权限

  • 修改/etc/sudoers 文件分配文件
# chmod 740 /etc/sudoers
# vi /etc/sudoer

格式:接受权限的用户登陆的主机 =(执行命令的用户) 命令


  • 使用 sudo 调用授权的命令
$ sudo –u 用户名 命令

例:

$ sudo -u root /usr/sbin/useradd u2

 2.5 对比权限的有无表现

🌻对于普通用户,自身要受到对应权限的约束,即便这个文件是自己的。

🌻对于root,不受权限的约束。

总结:

  1. 权限存在的意义:保证普通用户文件的安全性。
  2. Linux进行权限匹配时,对用户身份进行识别 ,只识别一次。

三、目录的权限

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

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

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

于是, 问题来了~~

换句话来讲, 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限

这好像不太科学啊, 我张三创建的一个文件, 凭什么被你李四可以删掉? 我们用下面的过程印证一下: 

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

粘滞位

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

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

四、权限总结

  1. 目录的可执行权限表示你是否可以在目录下执行命令。
  2. 如果目录没有 -x 权限,则无法对目录执行任何命令,甚至无法 cd 进入目录,即使目录仍然有 -r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)。
  3. 而如果目录具有 -x 权限,但没有 -r 权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。
  • 76
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 48
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 48
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南风与鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值