/tmp 마운트 옵션을 tmpfs로: 호환성 및 보안

/tmp 마운트 옵션을 tmpfs로: 호환성 및 보안

SSD가 있습니다. /tmp로 설치하는 것이 좋습니다 tmpfs.

예:

설치 옵션은 각 예마다 다릅니다. 이유는 무엇입니까? ? ?

기본 Ubuntu 16 설치에서는 루트( )에 대한 설치 옵션을 /(에서 /etc/mtab)로 설정합니다.

/dev/sda1 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0

따라서 다른 모든 옵션(예제/링크에서 제안된 대로)을 적용해서는 안 됩니다.
웹의 다양한 예에서 나온 일부 설치 옵션은 다음과 같습니다.

defaults,noatime,mode=1777

또는:

defaults,noatime,nosuid,nodev,noexec,mode=1777,size=512M

하지만:

  • noatime어차피 데이터가 빠른 RAM에 저장되기 때문에 쓸모없다고 느껴집니다 .
  • nosuid,nodev,noexec?
    소프트웨어가 특정 옵션에 의존하는지 어떻게 알 수 있습니까?

설치된 앱에 대해 기본 권한을 유지하는 것이 가장 좋다고 생각합니다. 즉, 다음과 같습니다.

rw,relatime,mode=1777,uid=0,gid=0

각 소프트웨어의 정상적인 작동을 보장하려면:

  • 권한은 기본 권한 /tmp과 마찬가지로 1777입니다 drwxrwxrwt(참고자료 참조 stat -c "%a %n" /tmp).
  • 그리고 같은 것이 있기 때문 uid입니다 .gidroot/tmp

여기서 뭔가 빠졌나요?

답변1

앞으로체계, 표준 활성화 방법임시 파일 시스템존재하다/tmp활성화 /etc/default/tmpfs하고 설정하는 것입니다 RAMTMP=yes(거의 모든 사람이 /etc/fstab을 편집하고 있음에도 불구하고). 이렇게 하면 기본 옵션이 무엇인지 확인할 수 있습니다. 내 Devuan Ascii에서 설치 옵션은 다음과 같습니다.

$ mount -l | grep "/tmp"
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime,size=3293980k)

크기는 기본적으로 물리적 메모리 20% + 스왑 공간입니다.

따라서 /etc/fstab에서 동일한 옵션을 사용하면 잘못될 수 없을 것 같습니다.

답변2

/tmp를 tmpfs로 마운트하는 것이 좋습니다.

아니요.

가능한재부팅 시 파일 손실을 걱정하지 않으려면 tmpfs 장치를 /tmp에 마운트하세요(tmpfs는 메모리에 구현되어 있습니다).

따라서 다른 모든 옵션(예제/링크에서 제안된 대로)을 적용해서는 안 됩니다.

잘? 이러한 옵션을 원하지 않습니까? 아니면 OS가 이를 무시한다고 생각하시나요? 전자의 경우 원하는 옵션을 선택하세요. 해당 옵션은 존중되거나 상속되지 않습니다.

시간이 없으면 쓸모없다는 느낌

예, 여기에서 atime 또는 relatime을 소유하는 데 드는 비용은 무시할 수 있습니다.

nosuid, nodev, noexec를 사용하는 이유는 무엇입니까?

이는 /tmp에서 악용될 수 있기 때문입니다. 그러나 고정 비트를 사용하면 이러한 벡터를 사용하는 (모두?) 공격을 완화할 수도 있습니다.

rw, 관계 시간, 모드=1777, uid=0, gid=0

rw - 이는 임시 파일 시스템에 다소 유용하지만 기본 동작이기도 하므로 이를 명시적으로 기술할 필요는 없습니다.

relatime - 귀하에게 달려 있지만 다시 기본값입니다.

mode=1777,uid=0,gid=0 - /tmp가 루트 소유가 아니며 마운트 시 전역적으로 쓰기 가능하고 그룹 고정 비트가 설정된 경우 이 구멍을 막는 데 너무 늦을 수 있습니다.

관련 정보