当使用可预测的文件名时,已知使用共享/tmp目录会导致许多安全漏洞。随机生成的名字并不好看。
我在想,也许使用每个用户临时目录会更好。许多应用程序将使用TMPDIR环境变量来决定临时文件的去向。
在登录时,我可以简单地设置TMPDIR=/temp/$USER,然后/temp必须为每个用户包含一个目录,该目录可以写给该用户,而不是其他用户。
但在这种情况下,我仍然希望/temp是一个tmpfs挂载点,这意味着子目录在重新启动后将不存在,需要以某种方式重新创建。
对于如何创建带有每个用户子目录的tmpfs,有(事实上的)标准吗?或者,我需要自己的非标准工具来动态生成这样的目录吗?
发布于 2015-03-25 13:22:55
为此您可以使用帕姆-廷迪尔。它在PAM会话开始时为登录的每个用户创建一个目录。
有关更多内容,请参见如何在注销时重新装入文件系统? ..。
在Debian,Ubuntu和衍生工具中,它可以在libpam-tmpdir中使用。
发布于 2015-03-25 17:05:42
你可以把它放在/etc/fstab里。特定用户的一行可能如下所示:
tmpfs /home/username/tmp tmpfs size=[num]%,uid=[num],gid=[num],noauto,user,mode=0700为您希望能够在主目录中挂载tmpfs的每个用户放置这样的行将使其成为可能。用户用户名只需执行mount ~/tmp就可以在当前系统内存容量为10%的情况下通过主目录~/tmp挂载tmpfs。该模式被设置为0700,因此只有用户(当然还有根用户)才能对该挂载的内容执行任何操作。而且挂载不是自动制作的-用户必须请求它。
您需要将所有这些替换为相关的值。例如,对于你自己,你可能会这样做:
tmpfs /home/kasperd/tmp tmpfs size=25%,uid=1000,gid=1000,noauto,user,mode=0700 0 1...if您的用户和组id都是1000。
https://unix.stackexchange.com/questions/192409
复制相似问题