# Welche mount Optionen für /tmp als tmpfs?

## Inte

Hier erstmal das Material, welches mich zum grübeln gebracht hat:

Wie kann ich die RAM-Nutzung verbessern?

Tip/Trick: using tmpfs for /tmp

mounting /tmp & /var/tmp on tmpfs

Gentoo Weekly Newsletter: March 24th, 2003 - Tips and Tricks

IBM > developerWorks > Linux | Open source projects > Advanced filesystem implementor's guide, Part 3So ... jetzt zu meiner Frage  :Wink: Mit welchen Optionen mounted ihr /tmp?

Ist die Option mode=1777 wirklich notwendig? Schließlich hat das Verzeichnis doch schon das Sticky Bit gesetzt.  :Rolling Eyes: 

Aus Sicherheitsgründen wird empfohlen /tmp mit der Option noexec zu mounten (böse Skripte etc.). Allerdings habe ich gelesen, dass jemand von einem gehört hat  :Wink: , dass einige wenige Programme Probleme machen, wenn sie in /tmp nichts ausführen dürfen. Habt ihr da schon mal selbst negative Erfahrungen gemacht?Inte

----------

## Hilefoks

Moin, *Inte wrote:*   

> Mit welchen Optionen mounted ihr /tmp?

 ich mounte mein /tmp in der fstab mit: 

```
none    /tmp    tmpfs       defaults,size=64m    0 0
```

Wenn du sie per Hand mounten möchtest machst du das mit: 

```
mount -t tmpfs none /tmp -o size=64m
```

 size gibt dabei natürlich die max. Größe des /tmp an - wobei 64MB sicher zu viel sind (aber wer es sich leisten kann  :Wink:  )

 *Inte wrote:*   

> [*]Ist die Option mode=1777 wirklich notwendig? Schließlich hat das Verzeichnis doch schon das Sticky Bit gesetzt. 

 Ich hatte noch keine Probleme mit meinen einstellungen.

 *Inte wrote:*   

> Aus Sicherheitsgründen wird empfohlen /tmp mit der Option noexec zu mounten (böse Skripte etc.). Allerdings habe ich gelesen, dass jemand von einem gehört hat , dass einige wenige Programme Probleme machen, wenn sie in /tmp nichts ausführen dürfen. Habt ihr da schon mal selbst negative Erfahrungen gemacht?

 Na ja - es gibt ein paar dumme Programme (vor allem Closed-Source) die gerne mal ein (Setup-)Script in /tmp ausführen möchten.

Mfg Hilefoks

----------

## Martux

Hallo Inte.

Also ich habe jetzt 307 (!) Pakete mit folgender Einstellung emerged

```

tmpfs   /tmp   tmpfs   defaults,nosuid,size=1024M,mode=1777   0 0

```

und es hat wirklich überhaupt keine Probleme gemacht. Scheint also Sinn zu machen.

Gruß, Marcus

PS: Wir sollten mal wieder ein User-Treffen anleiern!

----------

## /dev/blackhawk

Servus,

also ich hab zur Zeit

```

none                    /tmp            tmpfs           defaults,size=512m,nosuid,mode=1777,noexec 0 0

none                    /var/tmp        tmpfs           defaults,size=512m,mode=777      0 0
```

Welche Rechte machen denn für '/var/tmp' Sinn? Wäre das Sticky-Bit hier auch von Nöten?

MFG

/dev/blackhawk

----------

## golloza

 *Inte wrote:*   

> So ... jetzt zu meiner Frage Mit welchen Optionen mounted ihr /tmp?
> 
> Ist die Option mode=1777 wirklich notwendig? Schließlich hat das Verzeichnis doch schon das Sticky Bit gesetzt. 

 Ich glaube schon, aber probiers aus. Schaden wird es auf keinen Fall.

 *Quote:*   

> 
> 
> Aus Sicherheitsgründen wird empfohlen /tmp mit der Option noexec zu mounten (böse Skripte etc.). Allerdings habe ich gelesen, dass jemand von einem gehört hat , dass einige wenige Programme Probleme machen, wenn sie in /tmp nichts ausführen dürfen. Habt ihr da schon mal selbst negative Erfahrungen gemacht?Inte

 

Ich selbst habe es nicht mit noexec gemountet, aber das einzige Programm, von dem ich gehört habe, dass es nicht mit noexec /tmp läuft ist irgendein Debian Paketmanager  :Wink: 

 *Hilefoks wrote:*   

> Moin, *Inte wrote:*   Mit welchen Optionen mounted ihr /tmp? ich mounte mein /tmp in der fstab mit: 
> 
> ```
> none    /tmp    tmpfs       defaults,size=64m    0 0
> ```
> ...

 

64MB können schnell voll sein, je nachdem, was für Applikationen laufen. Das belegt ja auch nur RAM/Swap, wenn es wirklich benutzt wird.

 */dev/blackhawk wrote:*   

> Servus,
> 
> also ich hab zur Zeit
> 
> ```
> ...

 

Ja, ist das gleiche wie bei /tmp: Das Verzeichnis muss world-writable sein, damit jeder da seinen Krempel ablegen kann. Das Sticky-Bit verhindert, dass man fremde Dateien löschen kann. nosuid kannste dir übrigens sparen, wenn du mit noexec mountest.

----------

## ChrisM87

Hi,

ich würde dringend noexec für /tmp empfehlen. Aber ich habe schon einige Erfahrungen gemacht und sogar mc (Midnight Commander) im Verdacht, nicht richtig zu funktionieren, wenn /tmp noexec gemountet ist (weil er die Basisoperationen wie Entpacken usw. als Scripts in /tmp schreibt und dann ausführt).

Der Sicherheitsvorteil gegenüber Scriptkiddies ist das aber klar wert, deswegen unbedingt noexec.

/var/tmp als tmpfs kannst du übrigens vergessen, Portage compiliert hier.

ChrisM

----------

## Inte

 *ChrisM87 wrote:*   

> /var/tmp als tmpfs kannst du übrigens vergessen, Portage compiliert hier.

 Genügend Speicher vorausgesetzt ist das sogar eine sehr gute Sache. Schau dazu bitte im Wiki oder in den oben genannten Threads. Das Thema hier hab ich extra eröffent um die /tmp-Diskussion von der /var/tmp/portage-Diskussion zu trennen.

----------

## Inte

 *Hilefoks wrote:*   

> ich mounte mein /tmp in der fstab mit: 
> 
> ```
> none    /tmp    tmpfs       defaults,size=64m    0 0
> ```
> ...

 So mach ich das jetzt auch. Das zusätzliche mode= erspare ich mir ebenfalls. Noexec ist jetzt versuchsweise gesetzt. Hoffentlich erinnere ich mich daran, wenn es Probleme geben sollte.

----------

## Fauli

Ich habe noch nicht verstanden, welchen Sicherheitsgewinn es gibt, wenn /tmp mit noexec gemountet ist, wo doch /var/tmp (als Teil von /) mit exec gemountet ist. Oder liegt bei euch /var/tmp auch auf einer separaten Partition, die mit noexec gemountet ist?

----------

## Hilefoks

 *Fauli wrote:*   

> Ich habe noch nicht verstanden, welchen Sicherheitsgewinn es gibt, wenn /tmp mit noexec gemountet ist, wo doch /var/tmp (als Teil von /) mit exec gemountet ist. Oder liegt bei euch /var/tmp auch auf einer separaten Partition, die mit noexec gemountet ist?

 

/var/tmp wird von Portage genutzt und ist nicht im Filesystem Hierarchy Standard enthalten. Somit benutzen "alle" bösen Jungs das /tmp Verzeichnis (das es überall geben sollte) für ihre Zwecke. Dadurch ist es Sinnvoll es mit noexec zu mounten damit keine Scripte darin ausgeführt werden können! 

 *golloza wrote:*   

> 64MB können schnell voll sein, je nachdem, was für Applikationen laufen. Das belegt ja auch nur RAM/Swap, wenn es wirklich benutzt wird.

 

Es stimmt das nur der RAM genutzt wird den das /tmp auch belegt. Da Portage das /tmp aber nicht nutzt reichen für /tmp aber auch schon 16MB. Auf meinem Server hat mein /tmp max. 128MB, auf meinem Laptop aber max. nur 16MB. Und auch mein Laptop läuft damit Problemlos. 

Es ist übrigens sehr schön auch das /var/tmp als tmpfs mit zu mounten da dann das emergen von Xorg u.a. erheblich schneller ist. Allerdings sollte man speziell für Xorg oder auch KDE schon mindestens 1024MB nehmen. 

Mfg Hilefoks

----------

## NightDragon

Da es im anderen Thread unterging.

Nochmals zwei fragen.

a) tmpfs verwendet also RAM und Swap... okay... nehmen tmpfs hat 500MB... was passiert dann wenn ich aber von meine 768 MB RAM, jetzt mehr Speicher für Programme brauche?

Wer bekommt den RAM zuerst?

Werden dann die Programme ausgelagter? Oder wird der tmpfs-Bereich ausgelagert?

also ich meine, wer wird in der verwendung des RAM's bevorzugt?

b) wenn ich nun /var/tmp nur 64MB gebe, was passiert dann wenn portage bzw. emerge packete behandelt die größer sind?

----------

## schachti

 *NightDragon wrote:*   

> 
> 
> b) wenn ich nun /var/tmp nur 64MB gebe, was passiert dann wenn portage bzw. emerge packete behandelt die größer sind?
> 
> 

 

Ich vermute (TM), daß dann das gleiche passiert, das auch passiert, wenn Deine Partition, auf der /var/tmp normalerweise liegt, voll ist.

----------

## NightDragon

Und das wäre? er stoppt das arbneiten?

----------

## schachti

Er bricht mit einem Fehler ab, klar.

----------

