深入解析Linux权限管理:从基本原理到应用

目录

Shell 命令及运行原理

Shell 与 Kernel

Linux 权限的概念

命令提示符

Linux 权限管理

1. 访问者的分类 ugo

2. 类型和访问权限

3. 权限值表示方法

4. chmod 访问权限设置

掩码命令:umask

5.目录权限

粘滞位:


文章手稿见文末

Shell 命令及运行原理

Shell 与 Kernel

Linux 严格意义上讲是一个操作系统的核心(Kernel),但一般用户不能直接使用 Kernel,而是通过 Kernel 的“外壳”程序,即 Shell,与 Kernel 进行通信。

Shell 的定义:

  • 命令行解释器 (Command Interpreter):将用户的命令翻译给内核 (Kernel) 处理,同时将内核的处理结果翻译给用户。

举例

  • 在 Windows 上,我们通过图形接口 (GUI) 操作系统。而在 Linux 上,用户通过 Shell 输入命令,Shell 解析命令并交给 Kernel 执行。

帮助理解Shell 就像是操作系统内核和用户之间的“媒婆”,负责传达信息和执行操作

Linux 权限的概念

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

  • 超级用户 (root):可以在 Linux 系统下做任何事情,不受限制。
  • 普通用户:只能做有限的事情。

命令提示符

  • 超级用户的命令提示符是#
  • 普通用户的命令提示符是$

切换用户的命令

  • 使用 su [用户名] 命令。
    • 从 root 用户切换到普通用户 usersu user
    • 从普通用户 user 切换到 root 用户:su (默认 root)

Linux 权限管理

权限=人+事物属性

1. 访问者的分类 ugo
分类符号解释
文件和目录的所有者uUser
文件和目录的所有者所在组的用户gGroup
其它用户oOthers
2. 类型和访问权限

文件类型

符号解释
d文件夹
-普通文件
l软链接 (类似 Windows 快捷方式)
b块设备文件 (如硬盘、光驱等)
p管道文件
c字符设备文件 (如屏幕等串口设备)
s套接口文件

基本权限

符号权限解释
rRead,对文件而言,读取文件内容权限;对目录而言,浏览该目录信息权限
wWrite,对文件而言,修改文件内容权限;对目录而言,删除和移动目录内文件的权限
x执行Execute,对文件而言,执行文件权限;对目录而言,进入目录的权限
-拥有该项权限
3. 权限值表示方法
表示方法解释
字符表示方法rwx
8 进制数值表示方法755

八进制操作

默认起始是666和777,下面让我们来进行一些尝试

关于超级用户root :

4. chmod 访问权限设置

修改权限命令:chmod

  • 功能: 设置文件的访问权限。
  • 格式chmod [参数] 权限 文件名
  • 常用选项-R 递归修改目录文件的权限

用户表示符与权限字符

符号解释
+增加权限
-取消权限
=赋予权限

用户符号

符号解释
u拥有者
g拥有者同组用户
o其它用户
a所有用户

实例

给所有用户赋权的三种复合使用方法

chmod a=x /home/abc.txt  # 设置文件所有用户有执行权限
chmod 755 /home/abc.txt  # 使用三位8进制表示法
chmod u+x,g+x,o+wx ./abc3.txt

修改文件拥有者命令:chown

  • 功能: 修改文件的拥有者。
  • 格式chown [参数] 用户名 文件名
  • 实例
chown user1 f1
chown -R user1 filegroup1

 

一个文件的创建者和拥有者一定是同一个人吗?

通过我们刚才修改文件的拥有者,我们就能得出 —— 不一定。

修改文件或目录所属组命令:chgrp

  • 功能: 修改文件或目录的所属组。
  • 格式chgrp [参数] 用户组名 文件名
  • 常用选项-R 递归修改文件或目录的所属组
  • 实例
chgrp users /abc/f2

掩码命令:umask

为什么创建目录的默认权限是 775,而创建普通文件的默认权限是 664 ?

不同系统可能有差异吗?

创建的时候为什么不可以都是 777?

这些都是因为权限掩码的存在。

其中的0002就是掩码

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

  • 新建文件默认权限:
    • 新建文件夹默认权限:0666
    • 新建目录默认权限:0777
    • 默认掩码 0002

实例

umask 755     # 设置掩码
umask         # 查看当前掩码
umask 044     # 设置掩码

掩码的计算:取反 &

file 指令

  • 功能说明: 辨识文件类型
  • 语法file [选项] 文件或目录...
  • 常用选项
选项解释
-c详细显示指令执行过程
-z尝试解读压缩文件的内容

使用 sudo 分配权限

  1. 修改 /etc/sudoers 文件分配权限
  2. 使用 sudo 调用授权的命令
  • 实例:
sudo -u 用户名 命令
sudo -u root /usr/sbin/use
5.目录权限

我们来去掉r 权限,看看到底能不能进入这个 dir:

如果目录只没有 r 权限,允许进入、允许在该目录下创建(写入)文件,只不过是不允许查看

💡 Linux 下一切皆文件,目录也是文件。再结合 "文件 = 内容 + 属性" 去理解。

目录里面保存的是部分文件的 "属性" 。

权限解释
可执行权限如果目录没有可执行权限,则无法 cd 到目录中。
可读权限如果目录没有可读权限,则无法用 ls 等命令查看目录中的文件内容。
可写权限如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件。
粘滞位

共享目录

Linux 下可以存在一些目录,拥有者和所属组是 root,

其他人允许以 other 的身份在该目录下进行文件的创建、读取、删除和修改等操作:

想在共享目录下形成临时文件,但又怕别人给你删了,

你可以给共享的 <目录> 加上粘滞位来解决。

注意,是给目录加粘滞位!即你共享哪个目录,你就在哪个目录下加上粘滞位。

粘滞位

💭 以 root 身份给 all 目录添置粘滞位:

这样用户就无法随意删了

当一个目录设置为"粘滞位" (用 chmod +t),则该目录下的文件删除权限如下:

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

手稿:

  • 65
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值