
在浩瀚如星海的计算世界中,Linux 作为一颗璀璨的星辰,闪耀着无尽的光辉。它凭借其稳定性、开源性与强大的可定制性,早已在众多领域中扎根。而在这座数字王国的背后,便是复杂却精妙的权限管理体系,像一道无形的护盾,守护着系统的安全与秩序。Linux 权限管理不仅仅是简单的“允许”和“拒绝”,它更是对每一位用户行为的细致规划与引导,是对信息世界中每一个行为的缜密监控与调控。
让我们在这篇文章中,走进 Linux 权限管理的深邃森林,探寻那隐藏在文件系统中的秩序与守护,去理解它如何通过精巧的机制,将每一份数据、每一个动作精确地赋予合适的权利。
Linux严格意义上说的是⼀个操作系统,我们称之为“核⼼(kernel)“ ,但我们⼀般⽤⼾,不能直接使⽤kernel。⽽是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。
从技术⻆度,Shell的最简单定义:命令⾏解释器(command Interpreter)主要包含: • 将使⽤者的命令翻译给核⼼(kernel)处理。 • 同时,将核⼼的处理结果翻译给使⽤者。
Linux下有两种⽤⼾:超级⽤⼾(root)、普通⽤⼾。
• 超级⽤⼾:可以在linux系统下做任何事情,不受限制
• 普通⽤⼾:在linux下做有限的事情。
• 超级⽤⼾的命令提⽰符是“#”,普通⽤⼾的命令提⽰符是“$”。
su和su -都可以切换用户,但su -会改变当前目录 sudo用于指令的短暂提权,而非切换用户 whoami可以查看当前用户
在 Linux 中,文件和目录的权限由以下三种操作控制:
读取(Read,r):查看文件内容或列出目录内容。 写入(Write,w):修改文件内容或在目录中添加、删除文件。 执行(Execute,x):执行文件(如脚本或程序)或进入目录。
他们有最前面的这一系列字符串表示,每三个为一组,按照拥有者,所属组,其他用户的权限分为三组。

这些权限可以被分配给三种类型的用户:

功能:设置文件的访问权限
注意事项:只有文件的拥有者和root用户才有权修改文章权限
chmod命令权限值的格式有两种:
① 用户表示符+/-=权限字符
+: 向权限范围增加权限代号所表示的权限 -: 向权限范围取消权限代号所表示的权限 = : 向权限范围赋予权限代号所表示的权限 用户符号 : u :拥有者 g :拥有者同组用 o :其它用户 a :所有用户
例如:
chmod u+w /home/ccc.txt
② 三位8进制数字 除了上面用字母表示外,我们还可以用八进制数字的方法来表示:
chmod 664 /home/ccc.txt
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
注意事项:只有root用户才有权修改文件的拥有者
选项:-R 递归修改文件的拥有者
实例:
chown user1 f1 chown -R user1 filegroup1
功能:修改文件的所属组
格式:chown [参数] 用户组名 文件名
注意事项:只有root用户才有权修改文件的所属组
选项:-R 递归修改文件的所属组
实例:
chgrp users /abc/f2
功能:查看或修改文件掩码
但实际上你所创建的⽂件和⽬录,看到的权限往往不是上⾯这个值。原因就是创建⽂件或⽬录的时候还要受到umask的影响。
假设默认权限是mask,则实际创建的出来的⽂件权限是: mask &~umask
格式:umask 权限值
在讲解之前,我们首先来了解什么是文件掩码


但实际上默认权限与我们所看到的是有差别的,目录文件的默认权限为777,普通文件的默认权限为666,之所以我们看到的是上面的,就是因为掩码的存在
我们可以通过umask查看掩码:

我们可以看到掩码为0002,加到775中和664中恰好就是默认权限值,所以也就是说我们实际上得到的文件与默认权限相比,缺少了部分权限,而这一部分权限就是umask掩码中的权限
目录的权限与上面讲的文件的权限的内容是有不同的
目录文件的三种权限的结果如下:
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中. 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容. 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
也就是说,当一个用户对一个目录文件有写权限时,就可以删除里面的文件,即使这个用户可能对里面的文件并没有任何权限
但是这样就会导致一个问题,当我们以后在工作中,如果我们使用了网上的一个开源的目录文件,我们都是这个目录文件所属组的一员,且具有写权限,那么是不是意味着如果我们在这个目录文件下创建一个文件,别人可以随意的删除?
为了解决这个问题,我们引入了粘滞位的概念
当设置在目录上的粘滞位时,只有目录的所有者或超级管理员可以删除或重命名该目录中的文件。标志位用 t 显示在其他用户权限的位置。
chmod +t dir # 设置粘滞位
目录的可执行权限是表示你可否在目录下执行命令。
Linux中除了基本的权限外,还给了三种特殊的权限,上面的粘滞位就是其中一种
如下:
设置这些特殊权限时,可以使用 chmod 命令:
chmod u+s file.txt # 设置 SUID chmod g+s dir # 设置 SGID chmod +t dir # 设置 Sticky Bit
Linux 权限管理的魅力在于其精细与灵活。它不仅能够有效地保护系统免受未授权访问,还能够为系统管理员提供强大的工具,以满足不同场景下的安全需求。从最基本的用户、组、其他的权限设定,到更高级的 setuid 和 sticky bit,每一个权限设置都承载着对系统秩序的严格把控。
本篇关于linux权限管理的介绍就暂告段落啦,希望能对大家的学习产生帮助,欢迎各位佬前来支持斧正!!!