linux文件与文件夹权限整理(有关文件与文件夹权限、SUID、SGID、STICKY)

在linux系统中我们有很多权限,我们可以简单查看一下任意一个文件夹下的文件的权限:
在这里插入图片描述
我们可以看见,上图中第一列中我们的文件和文件夹都有相应的权限,那我们来看看文件和文件夹的权限:
首先我们要说一下,无论是文件还是文件夹第一列中都有十列权限,这十列中的含义如下:
第一列表示文件类型,我们可以看到,上图中第一列有d,有-,如果是d,则代表这个文件是个文件夹,如果是-,则代表这是个文件|(包括硬链接也被视为文件),如果是l,则代表它是软链接文件。还有一些不常用的比如b是块文件,c为字符文件,s为socket文件,p为管道文件等。
接着的九位分为三个一组共三组,分别为拥有者权限,所属组权限,其他用户权限,在linux中我们有用户和用户组的概念,比如我们上图中第三列的root或者zephyr代表的就是用户名,即这个文件属于哪个用户,后面第四列的是所属组名,表示这个用户的所属组。那么九位中的前三位,也就是第2-4位,它表示的是文件所有者的权限,如果是-,则代表这一位没有值。其中r代表读权限,w代表写权限,x代表执行权限。九位中的中间三位,也就是5-7位,表示的是文件所属组的权限。九位中的后三位,也就是8-10位,表示的是其他人的权限。
rwx就对应着二进制的111,r–就对应着二进制的100,然后我们把它换算成十进制,rwx即111就是7,r–即100就是4。我们可以通过chmod命令来改变文件的权限。格式如下:

chmod 777(想要什么权限就设置成什么) 文件名

但是要注意,这些权限对root用户都无效,root用户对任何文件都可以操作。

对于文件:

r代表着查看文件内容的权限,w代表着修改文件内容的权限,x代表着执行文件的权限。
另外,文件还有两个权限:SUID和SGID权限。
带有SUID权限的文件,当有人运行这个程序的时候,它会自动切换到文件所有者的权限,比如我们常用的sudo命令,在/bin目录下,sudo这个文件就有SUID权限:
在这里插入图片描述
如下图,如果一个文件没有可执行权限,它就会变成绿色,如果加上s权限,就会变成红底白字。
在这里插入图片描述

带有SUID权限的文件,表示为第四位是s,如果这个文件没有执行权限,那这个s就会变成S,作为文件的所有者,无法执行这个文件,但是作为root用户或者其他用户,依然可以执行这个文件。
在这里插入图片描述
另外,文件还有SGID权限,它使文件被执行时切换到所属组的权限。
上面用到的是字母的方法加权限,我们还可以用数字的方法加SUID和SGID权限,如下图:
在这里插入图片描述
我们在加权限的时候,使用四位权限,即往前面加一个数字就可以赋予它SUID(加4)或者SGID(加2)权限了。

对于目录

对于目录,r代表是否能够浏览文件列表,w代表是否可以创建与删除文件,x代表是否能够进入这个目录(如使用cd命令进入目录)。但是要注意的一点是,如果这个目录属于用户1,那么对于用户2在里面创建的文件,无论用户1是否对这个文件有权限,有什么权限,用户1都可以删除这个文件。即若用户1有一个目录,那么对于其中所有的文件,用户1都可以删除它。借用《鸟哥的linux私房菜》的一句话:假如你有一个抽屉(目录),那么别人在你的抽屉里放了一本加锁的日记(文件),你没有钥匙,所以你不能查看日记(文件)的内容,但是抽屉(目录)是你的,你可以把日记(文件)扔到垃圾箱中。我们试一下:
在这里插入图片描述
我们在一个zephyr用户的目录下创建了一个root用户的a文件,然后我们甚至无法查看文件内容:在这里插入图片描述
但是它在zephyr用户的文件夹里,我们就可以删除它:
在这里插入图片描述
除此之外,目录还有STICKY权限,加上这个权限的目录,里面的文件只能被文件的所有者、文件夹的所有者和root用户删除、移动、改名。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

许倾墨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值