为每个用户创建一个 tmp 目录

为每个用户创建一个 tmp 目录

我偶然发现了这个页面:http://www.wlug.org.nz/PerUserTempDirs

建议创建/替换一些脚本;最新的步骤更加令人困惑:

现在,一旦您准备好了,请调用以下脚本而不是 login(1):

 #!/bin/sh
 mkdir -m 700 /tmp-safe/user/"$1" /tmp/"$1"
 chown "$1":  /tmp-safe/user/"$1" /tmp/"$1"
 mount --bind /tmp-safe/user/"$1" /tmp/"$1" || exit 1
 exec /bin/login "$@"

由于用户使用 ssh 登录,我“认为”/bin/login 从未执行过。我应该修改哪个脚本才能为用户重新挂载 /tmp?

答案1

pam_mktemp 的问题是,有很多软件带有硬编码/tmp,并且它们不遵守 TMPDIR 变量。

最近的内核中的“命名空间”功能可用于此目的,如Gentoo 开发人员的博客文章

答案2

更好的方法是使用pam_mktemp。当用户通过任何 pam 服务登录时,这将在 /tmp 下创建一个每个用户的目录,并更新 TMP 和 TMPDIR 以使用该目录。这确实依赖于编写的程序不假设 /tmp。

相关内容