답변:
bind 및 noexec, nodev, nosuid 옵션을 사용하여 / tmp를 다시 마운트 할 수 있지만 한 번에 수행 할 수는 없습니다. 일부 Linux 커널 VFS 계층 제한으로 인해 먼저 바인드 마운트 한 다음 적절한 옵션으로 다시 마운트해야합니다.
root@utemp:/# /tmp/test.sh
uid=0(root) gid=0(root) groups=0(root)
root@utemp:/# mount -o bind,noexec /tmp /tmp
root@utemp:/# ./tmp/test.sh
uid=0(root) gid=0(root) groups=0(root)
root@utemp:/# umount /tmp
root@utemp:/# mount -o bind /tmp /tmp
root@utemp:/# mount -o remount,noexec /tmp
root@utemp:/# ./tmp/test.sh
bash: ./tmp/test.sh: Permission denied
root@utemp:/# umount /tmp
불편합니다. / etc / fstab의 한 줄 대신 시스템 부팅 중에 디렉토리 당 두 개의 마운트 명령을 사용하여 일부 스크립트를 호출해야합니다.
이 LWN 기사 에서 자세한 내용을 확인 하십시오. 이전 커널에서는 작동하지 않습니다. 바인드 마운트 포인트는 항상 기본 파일 시스템과 동일한 마운트 옵션을 갖습니다.