默认情况下,世界可写目录是什么?

Abd*_*UMI 15 security permissions directory-structure

在标准的 Linux 文件系统中,默认情况下,这些常见目录中哪些是全局可写

 /tmp 
 /etc
 /var 
 /proc 
 /bin 
 /boot
 /....
 ....
Run Code Online (Sandbox Code Playgroud)

为什么它们是世界可写的?这会带来安全风险吗?

Mic*_*mer 18

唯一的FHS 强制目录是普遍可写的/tmp/var/tmp。在这两种情况下,这是因为它们用于存储任何人都可能制作的临时文件。

同样常见的是/dev/shm,作为tmpfs(由 RAM 支持的文件系统),用于快速访问进程之间共享的中型数据,或者只是创建保证在重新启动时销毁的文件。

也可能有/var/mail/var/spool/mail,有时还有其他假脱机程序目录。这些用于在处理邮件之前暂时保留邮件。它们并不总是全球可写的,这取决于使用的工具。如果是这样,那是因为用户工具可以在那里创建文件以供守护程序处理。

所有这些目录通常都设置了粘滞位( t),这意味着只有文件或目录的所有者才能移动或删除其中的文件。

以任何用户身份运行的任何程序都可以在这些目录中创建文件,并且就其特定数据的安全性而言,由创建程序来做正确的事情。除了有人可能填满文件系统之外,没有特别的一般安全问题,但是程序有足够的空间来出错。

已经朝着特定于服务的目录迈进了一些/tmp。这些避免了一些可能出现的潜在错误,因此程序在使用目录的方式上没有错误并不重要。


你可以在你的系统上找到世界可写的目录:

find / -maxdepth 3 -type d -perm -777
Run Code Online (Sandbox Code Playgroud)


200*_*ess 9

/tmp, /var/tmp, 和/var/lock默认情况下是全局可写的。可能有符号链接,例如/usr/tmp/var/tmp,提供与旧应用程序的兼容性。

/tmp并且是/var/tmp全球可写的,因为它们旨在供任何用户用于任何临时存储。 /var/lock是全局可写的,因此以任何用户身份运行的任何进程都可以在中央位置创建锁定文件。

是否存在安全风险?不,但有点是的。

所有这些目录的权限都是1777,前导1粘滞位。这意味着虽然任何人都可以在这些世界可写目录中创建文件,但只有所有者可以删除他/她自己的文件(当然,root 用户也可以)。

不安全的临时文件创建可能会产生可能的安全风险。由于这些目录是免费的,用户需要采取预防措施以确保他们创建的文件实际上是新文件,而不是打开恶意用户可能在那里植入的现有文件或符号链接。如果使用适当的技术(例如open(…, O_EXCL)或 )创建文件mkstemp(3),则可以避免此类风险。