我仍在学习,并且已经了解到安全性的最佳实践之一是/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),您可能希望继续中继mount
(grep
命令会有点不同)。
答案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
)。