有关世界可写文件的风险

时间:2018-12-19 09:46:08

标签: linux permissions

我需要有关Linux权限的一些帮助。我知道拥有世界可写文件可能很危险,许多人建议不要拥有世界可写文件。

为了“保护”我的Linux,我使用find / -perm -0002 -type f搜索了每个可写的世界文件。多亏了此命令,我在/root/a_directory/下找到了一个可写入世界的文件。由于我的/root目录是700,因此其他用户无法编辑世界可写文件。

所以我的问题是,如果我的世界可写文件位于其他用户无法访问的目录下,会有什么风险?

如果/directory1/world_writable_file.sh777并且/directory1/700,我安全吗?在这种情况下没有风险吗?

1 个答案:

答案 0 :(得分:1)

目录权限的行为与文件权限完全不同。

由于该目录不允许其他用户(非root用户和非group用户)对该目录进行任何操作(读/写/执行),因此他们甚至无法枚举此目录中的文件,因此他们可以无法访问它们。

这是一个实际的例子:

user@host$ sudo su
root@host$ mkdir testdir
root@host$ printf '#!/bin/bash\necho test" > testdir/testfile
root@host$ chmod 0777 testdir/testfile
root@host$ chmod 0700 testdir
root@host$ exit
user@host$ ./testdir/testfile
-bash: ./testdir/testfile: Permission denied
user@host$ ls testdir
ls: cannot open directory 'testdir': Permission denied

但是,这不是处理敏感文件的好习惯。 错误配置文件权限非常容易,因此您永远不要依赖拥有安全目录。

如果有人不小心将目录的权限更改为0701(其他人可以执行),这似乎是微不足道的更改,那么每个人都可以执行,读取和写入具有0777权限的任何文件(如果他们知道确切的权限)路径。

此外,您描述的情况只有在以下情况下才会发生:

A。文件已存在之后,将更改目录的权限。在这种情况下,您只需使用chmod -R o-rwx即可删除其他用户的权限。

B。目录所有者已经在配置目录之后创建了文件,然后使用chmod o+wx或类似方法添加了权限。由于在具有0700权限掩码的目录中创建的新文件的默认掩码为0644,并且唯一可以访问该目录的用户是所有者,因此没有其他方法。在这种情况下,请避免这样做。


无论如何,如果您有兴趣阅读和了解更多有关一般Unix系统中和特定于Linux的UID的信息,I wrote a comprehensive guide on the subject