确定 /tmp 是否位于单独的分区上

确定 /tmp 是否位于单独的分区上

我仍在学习,并且已经了解到安全性的最佳实践之一是/tmp与文件系统分开分区。如何检查是否/tmp在其他分区中?

如果我执行 cd /,是查看整个分区还是查看单独分区的另一个目录?

答案1

您可以使用mount不带参数的命令。这将列出您的所有挂载点。如果您看到目录/tmp列在那里,则它是不同的分区。否则,它不是。

答案2

视觉使用

 df | grep /tmp

在脚本中

  if df | grep -q ' /tmp$' 
  then
       # code for /tmp onwn partition
  else
       # code for /tmp in /
  fi

请注意df可能会挂起(特别是如果您使用 NFS 或 SAMBA/CIFS),您可能希望继续中继mountgrep命令会有点不同)。

答案3

从更一般的意义上讲,df可用于辨别两个目录是否位于不同的文件系统上。通过将目录名称作为 的参数来执行此操作df。例如,在我登录的系统上,df比 更容易使用mount

$ pwd
/tmp/foo
$ df .
Filesystem                                             1K-blocks         Used Available Use% Mounted on
/dev/disk/by-uuid/8a1efcd1-0d32-4674-aa7a-c24c2cd924fd  19751804 12269912   6478528  66% /
$ df /tmp
Filesystem                                             1K-blocks     Used Available Use% Mounted on
/dev/disk/by-uuid/8a1efcd1-0d32-4674-aa7a-c24c2cd924fd  19751804 12269912   6478528  66% /
$ df /
Filesystem                                             1K-blocks     Used Available Use% Mounted on
/dev/disk/by-uuid/8a1efcd1-0d32-4674-aa7a-c24c2cd924fd  19751804 12269912   6478528  66% /
$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=125055,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=101324k,mode=755)
/dev/disk/by-uuid/8a1efcd1-0d32-4674-aa7a-c24c2cd924fd on / type ext4 (rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=382860k)

POSIX没有指定 的输出格式df。我似乎记得有些(不是 Linux)可能会df在输出中显示给定的参数而不是挂载点。POSIXmount根本没有指定(因此缺乏 输出的规范df)。

相关内容