我怎样才能使 /tmp 可执行?

我怎样才能使 /tmp 可执行?

我有 Ubuntu 12.04 LTS,我试图升级到 Ubuntu 12.10。当我单击更新管理器升级时,出现了一个消息框:

无法运行升级。这通常是由于系统中的 /tmp 以 noexec 方式挂载所致。请重新挂载而不使用 noexec,然后再次运行升级。

我尝试使用/tmp以下命令在终端中使其可执行:

mount -o remount,exec /tmp /var/tmp

我按下了Enter并从终端收到以下消息:

mount: only root can do that

我现在应该做什么才能使之/tmp可执行并升级操作系统?

答案1

您需要具有 root 权限。为此,请sudo在命令前面输入:

sudo mount -o remount,exec /tmp

当要求输入密码时,只需输入您的常用用户密码。

答案2

它显示您的系统/tmp 已作为 noexec 安装,因此请尝试使用exec选项安装它以使您的升级正常工作。

exec / noexec - Permit/Prevent the execution of binaries from the filesystem.

以 root身份打开 /etc/fstab文件,例如运行

sudoedit /etc/fstab

将下面的行(/tmp我的 fstab 上的条目如下所示)从

tmpfs /tmp tmpfs defaults,noatime,mode=1777,nosuid,size=512M,noexec 0 0

tmpfs /tmp tmpfs defaults,noatime,mode=1777,nosuid,size=512M,exec 0 0

或者,如果您的行看起来不同,只需删除并noexec在第四列替换为exec

保存该文件,然后重新启动系统。现在尝试再次升级。

答案3

你会尝试这个命令吗?就我而言,这个命令有效。

sudo mount -t tmpfs -o exec tmpfs /tmp

然后检查它是否有效。

mount

答案4

其他答案告诉您如何/tmp临时使可执行文件。 要保留此设置:

  1. 编辑/etc/systemd/system/tmp.mountsudo systemctl edit tmp.mount --full)。
  2. 找到带有挂载选项的行(如Options=mode=1777,relatime,nodev,nosuid,noexec)。
  3. 删除noexec选项。

从现在开始,/tmp即使重启后您的文件仍可执行!

相关内容