별도의 Patition없이 / home / tmp noexec nodev를 만드십시오.


6

/ tmp / var 및 / home (nodev, nosuid 및 quota 추가)과 같은 루트 파일 시스템 부분에 대한 일부 마운트 옵션을 변경해야하지만 별도의 파티션을 만들 수 없으며 RAM이 충분하지 않습니다. / tmp를 tmpfs로 마운트하십시오. mount -o bind, noexec, nodev, nosuid / tmp / tmp를 시도했지만 그 후에도 여전히 / tmp에서 파일을 실행하고 장치 노드를 만들 수 있기 때문에 작동하지 않는 것 같습니다. 다른 방법이 있습니까?

답변:


11

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 기사 에서 자세한 내용을 확인 하십시오. 이전 커널에서는 작동하지 않습니다. 바인드 마운트 포인트는 항상 기본 파일 시스템과 동일한 마운트 옵션을 갖습니다.


1
라이브 시스템에서 문제가없는 것 같습니다.
user3132194
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.