Linux

為什麼 /tmp 綁定在 /tmp 中?如何刪除此綁定

  • May 2, 2020

在 RHEL6 的複製 Scientific Linux 6 中,我有以下mtab文件:

/dev/sda2 / ext4 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs rw,rootcontext="system_u:object_r:tmpfs_t:s0" 0 0
/dev/sda1 /boot ext4 rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
/tmp /tmp none rw,bind 0 0
/var/tmp /var/tmp none rw,bind 0 0
/home /home none rw,bind 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
gvfs-fuse-daemon /root/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev 0 0

fstab的內容是

enter code here
#
# /etc/fstab
# Created by anaconda on Tue Apr 21 14:07:48 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'       
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=ce58d311-5f32-4da6-9f96-ca9353dc421c /                       ext4    defaults        1 1
UUID=1e4e79e3-3317-4c50-8880-c25d6a03f4a4 /boot                   ext4    defaults        1 2
UUID=eec379ab-8116-46ef-b93b-9bdcd0ab65e2 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

mount命令的輸出是:

/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/tmp on /tmp type none (rw,bind)
/var/tmp on /var/tmp type none (rw,bind)
/home on /home type none (rw,bind)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
gvfs-fuse-daemon on /root/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev)

為什麼 /tmp 綁定在 /tmp 上?(還有 /home 在 /home 上,/var/tmp 在 /var/tmp 上)

如何刪除此綁定並將 /tmp 作為公共目錄放在 / 下?

我需要這個,因為我有一個使用指令重命名的舊執行檔,它給了我以下錯誤

EXDEV oldpath 和 newpath 不在同一個掛載的文件系統上。(Linux 允許在多個點掛載文件系統,但 rename() 不能跨不同的掛載點工作,即使在兩個掛載點上都掛載了相同的文件系統。)

當它嘗試在 / 的子目錄下使用 oldpath int /tmp 和 newpath 重命名文件時。

我跑了

chkconfig 沙箱關閉

然後重新啟動。

正如 Jose Marques 所建議的那樣。

引用自:https://serverfault.com/questions/1014802