更新:

更新:

我的中有以下行/etc/fstab

/dev/mapper/tmp /tmp    ext4    noexec,nodev,nosuid,mode=1777    0    0

当我尝试安装时/tmp,出现以下错误dmesg

 EXT4-fs (dm-1): Unrecognized mount option "mode=1777" or missing value

我如何指定/tmp将具有权限1777?我每次启动时都会重新创建(格式化)文件系统/dev/mapper/tmp,因此权限无法在重新启动后保留。

从我谷歌搜索的内容来看,mode=1777应该可以完成这项工作。但这对我不起作用。

更新:

为了使情况更具说明性,这是我正在使用的脚本:

cryptsetup --key-file /dev/urandom create tmp /dev/sda2

mkfs.ext4 /dev/mapper/tmp > /dev/null 2>&1

该脚本在引导序列期间运行,之后checkroot。然后,稍后当bootall想要挂载时/tmp,它会在 fstab 中看到该条目并挂载/dev/mapper/tmp/tmp

由于我在每次启动期间创建LUKS设备,因此每次都必须格式化分区。与一些人在这里评论的相反,权限不要格式化后仍然存在。明显地。

答案1

通过systemd启用的系统,您可以使用tmpfiles.man 5 tmpfiles.d详情请参阅。

/etc/tmpfiles.d/tmp.conf创建一个包含以下内容的文件:

d /tmp 1777 root root - -

systemd-tmpfiles-setup.service会照顾你的权限。

答案2

/tmp除非您需要的空间大于可用 RAM+交换空间的大小,否则您可以考虑使用基于tmpfs-based 的/tmp磁盘(本质上是 RAM 磁盘),并使用之前分配的磁盘空间来/tmp增加交换空间。

它只会使用当前内容所需的 RAM,并且如果 RAM 变低,则会将最近最少使用的内容移至交换区。

你只需要/etc/fstab这样一行:

tmpfs  /tmp tmpfs rw,mode=1777 0 0

默认最大大小限制是可用 RAM 的 50%。您可以使用该size=选项指定另一个最大大小,可以是可用 RAM 的百分比,也可以是字节数(带有可选的k,mg后缀,表示基于 1024 的千/兆/千兆字节)。

如果您已经在使用每次重新启动时都会重新加密的加密交换,这将为您提供有效的类似/tmp免费重新加密,如果您有足够的 RAM 来保存/tmp.

答案3

将行更改/etc/fstab为:

/dev/mapper/tmp /tmp ext4 noexec,nodev,nosuid 0 0

然后登录并发出:

chmod 1777 /dev/mapper/tmp

下次重新启动/etc/fstab就足够了,因为它chmod是永久的。您正在尝试在本机 Linux 文件系统 (ext4) 中使用专为 Windows 安装(fat、ntfs 等)设计的选项。相反,您可以使用 chmod 更改文件夹的权限。

Suse 论坛帖子

您不能在 中使用模式ext4。因此,您可能需要以其他方式挂载您创建的文件系统。您可以ext3在其他地方创建分区。

相关内容