不小心删除了 /tmp

Amr*_*man 9 permissions rm files root-filesystem mkdir

不小心跑了sudo rm -r /tmp,有问题吗?
我用 重新创建了它sudo mkdir /tmp,这能解决问题吗?

在我重新创建目录后,在Ubuntu 14.04 中 nautilus 侧边栏中的位置部分,我可以看到 /tmp ,它之前不存在......这是一个问题吗?

最后一件事,我是否必须运行sudo chown $USER:$USER /tmp才能像以前一样访问它.. 之后会不会有任何副作用?

顺便说一句,当我尝试使用 bash 自动完成功能时,我遇到了这个看似相关的错误

bash:无法为此处文档创建临时文件:权限被拒绝

Joh*_*ith 14

/tmp大多数情况下可以认为是一个典型的目录。您可以重新创建它,将其提供给 root ( chown root:root /tmp) 并对其设置1777权限,以便每个人都可以使用它 ( chmod 1777 /tmp)。如果您/tmp位于单独的分区(这使其成为挂载点),则此操作将更加重要。

顺便说一下,由于许多程序依赖于临时文件,我建议重新启动以确保所有程序照常恢复。即使大多数程序旨在正确处理这些情况,但有些程序可能不会。

  • `/tmp` 不需要分区,尽管它可以。`/tmp` 也可以是类型为 `tmpfs` 或 `ramfs` 的文件系统,将 tmp 文件保存在内存中。需要根据用途、数据大小等在 ram 或设备之间做出决定。 (2认同)

Gil*_*il' 5

该目录/tmp必须具有1777 = rwxrwxrwt 的权限,即每个人都可以读取、写入和访问该目录中的文件,并且(t= 粘滞位)文件只能由其所有者删除。如果不是这种情况,很多事情都会停止工作,有时会以奇怪的方式。

sudo mkdir -m 1777 /tmp
Run Code Online (Sandbox Code Playgroud)

或者

sudo mkdir /tmp && sudo chmod 1777 /tmp
Run Code Online (Sandbox Code Playgroud)

/tmp必须属于root。不要将其所有权更改为其他用户。

在您删除临时文件时使用临时文件的程序可能会有些困惑。一些后台程序保留一个套接字/tmp需要重新启动。主要的是 X 服务器:删除后/tmp/.X11-unix/X0,您将无法再启动任何 GUI 应用程序。您需要注销并重新登录以解决此问题(首先修复权限!)。