频道栏目
首页 > 资讯 > 企业安全 > 正文

如何防止Unix中文件被恶意删除呢?

22-06-11        来源:[db:作者]  
收藏   我要投稿

有时,由于某个项目的需要,企业会临时组建一个项目组来完成某个特定的项目。此时,项目组要求每个项目组成员在某个目录下具有读写权限,在该目录下可以创建文件,也可以读取其他人创建的文件。但是,有一个限制,即不能删除他人创建的文件。如下图,现在系统工程师已经为某个项目建立了物品目录。

QQ截图20220601135110.jpg

这个目录中有两个文件,urr001和tgt001,分别由用户SA01和用户SA02创建。目前企业的要求是用户SA01和SA02都可以在这个目录下创建文件;Sa1也可以读取文件tgt001(所有权为SA02);但是SA01不能删除文件tgt001。

目录:/项目文件urr001所有者SA02文件tgt001所有者SA01

可能有些系统工程师会怀疑这个要求。这能实现吗?答案是肯定的。这个功能可以通过Unix操作系统提供的sticky bit函数轻松实现。

第一,胶位和锉刀的关系。

粘贴位,也称为保存文本位,实际上是一种权限控制属性。通常,粘性位既可以用于普通文件,也可以用于目录文件。在普通文件中使用时,sticky位可以设置程序文件的SUID。并且它的文本图像将被保存在交换区域中。这样,当程序获得CPU的使用权后,就可以快速加载到内存中。

因此,粘贴位可以提高系统程序的运行效率。比如在某些版本的Unix系统中,将vi等常用程序文件的sticky位设置为1,明显提高了这些应用程序的运行效率。不过这个功能现在已经很少用了。因为现在磁盘读写速度已经达到* * *;而且内存价格便宜。也就是说,现在的磁盘速度和内存往往不是系统的瓶颈资源,所以不再需要为普通文件设置粘滞位。为此,在系统设置中,作者基本不为普通文件设置粘滞位。

那么贴位置不是没用吗?其实不是,虽然在普通文件上设置粘滞位没有实际应用价值,但是在目录文件上设置粘滞位还是很有用的。正如作者在文章开头所解释的,需要通过贴位来实现。简单来说,当粘性位与目录文件结合时,可以实现一些意想不到的安全措施。

第二,在/var/tmp目录中应用粘合位。

当粘性位应用于目录文件时,它成为一种有用的安全措施。事实上,在Unix系统中,有一个很好的案例可以帮助我们实现将粘性位与目录文件相结合的功能。例如/var/tmp目录,只要它用于存储用户或应用程序的临时文件。通常,该目录允许所有用户创建文件,但任何用户都不能删除其他用户创建的文件。很多系统管理员在第一次接触Unix系统的时候,对这个功能很困惑。我在培训学生的时候,经常会在后面介绍这个内容,以免让学生晕头转向。其实这是粘合位置在起作用。要了解粘着位在其中起什么作用,我们可以使用命令ls -ld /var/tmp/来查看这个目录的权限信息。

drwxrwxrwt 3 root root 4096 Apr 3 13:39/var/tmp/

大家看到这个结果会不会很惊讶?“drwxrwxrwt”表示目录文件的权限信息。其中* * *字符D表示这是一个目录文件,第二到最后四个字符rwx表示目录的所有者对该目录有读写执行权限,即完全控制权限;第五到第七个字符rwx表示组成员对该目录有读写权限;第八到第七个字符用来表示其他用户对这个目录文件的权限,也应该是rwx或者rw-。但是这里* * *一个字符变成了T,实际上这个T就是粘性位。上面这个文件的权限信息是指任何用户都有写这个目录的权限(也就是可以创建文件)。但是,由于一个额外的粘性位,某个用户不能删除其他用户创建的文件(即用户只能删除自己创建的文件)。

可见,使用粘位可以防止其他用户恶意删除文件。这个功能在实际工作中非常有用。正如文章开头所解释的,现在企业需要开发一个新的项目,从各个部门抽调人员组成一个新的项目团队。现在,企业希望所有项目组成员都可以在为项目建立的文件夹中创建文件,但不能删除其他用户的文件,只能删除自己的文件。这时候就可以用胶粘钻头来实现了。

三、粘扣带的具体实现过程。

在掌握了以上粘扣带的基本功能后,笔者将告诉你如何使用粘扣带防止文件被恶意删除。坚持在团队项目管理中非常有用。他允许一组用户在不影响文件安全性(不能随意删除)的情况下,对同一组文件(同一目录下的文件)进行有限的操作(读取和创建文件)。现在举个例子,一个企业成立了一个项目组,开发一个新项目,名字叫item。为了统一管理本项目的相关文档,系统工程师在Unix操作系统上建立了/item的目录文件。在项目开发过程中,所有与项目相关的文档都保存在这个目录中。假设这个项目团队有两个成员,SA01和SA02。企业需要实现以下需求。首先,用户SA01和用户SA02都可以在这个目录中保存或创建文件。第二,用户SA01可以删除自己创建的文件;用户SA02也可以删除自己创建的文件。第三,用户SA01不能删除用户SA02创建的文件,反之亦然。第四,用户SA01可以读取用户SA02创建的文件,反之亦然。要达到以上要求,只需点击几个步骤。

* * *步骤:创建一个组。因为需要设置多个用户的粘性位,为了方便管理,* * *把多个用户放入一个组进行管理。为此系统工程师* * *在Unix操作系统中设置了一个用户组,以减少后续维护的工作量。因此,系统工程师应该在/etc/group文件中创建一个公共组,比如item group。

步骤2:为这些用户创建个人帐户。在Unix系统中,为用户创建一个帐户比在Windows操作系统中稍微复杂一些。如果需要制作用户的主目录。这里的主目录指的是该用户登录到Unix操作系统时的默认系统目录。为了实现上述功能,系统工程师在创建这些账户时,需要为它们设置相同的主目录,如item。这里需要注意的是,这个主目录和它下面的所有子目录文件不能是某个用户独占的。因此,作者经常将这些目录和子目录文件的所有权转移给root用户。

步骤3:然后使用root用户的身份设置这些目录的组的可读权限。有时,同一组的成员除了读取文件之外,可能还需要修改该目录中的文件。是否允许同一组的成员进行更改,系统工程师可以根据自己的需要进行更改。但是,根据笔者的经验,大多数情况下,企业允许同一个项目组的成员有权修改项目文档。

第四步:设置粘合位。所有这些准备工作完成后,系统工程师可以为项目目录文件设置粘滞位。设置很简单,只需要在原来的权限属性上加一个值1即可。如果设置了绝对权限,则可以使用chmod 1775 /item。如果使用相对权限设置,那么可以使用chmod +t t,执行这个命令后,为这个目录文件设置粘滞位。这样,除非文件的所有者被删除,否则其他用户将无法删除该文件。

可以看出,虽然时代变了,但胶粘钻头和普通文件的结合并没有起到应有的作用。但是,当与目录文件结合使用时,它仍然是一种有用的安全措施。尤其是在企业的项目管理中,贴位可以让一组用户操作同一组文件,同时保证他们的安全性。

相关TAG标签
上一篇:电脑启动前,如何确保计算机已安全插入USB
下一篇:FreeBSD安全的连接方式SSL
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站