4 votes

Comment puis-je monter un tmpfs sur /tmp via fstab, accessible en écriture à tout le monde ?

Je veux monter un tmpfs sur /tmp et le rendre accessible en écriture aux utilisateurs (ou à un utilisateur spécifique). La machine est un Raspberry Pi 3 avec Debian 8.0 (Raspian). Ce que j'essaie, /tmp est toujours monté avec des permissions uniquement pour root .

J'ai essayé ce qui suit fstab entrées :

tmpfs           /tmp            tmpfs   nosuid,nodev,noatime   0       0
tmpfs           /tmp            tmpfs   nosuid,nodev,noatime,user,uid=1000,gid=1001,mode=1777   0       0

Il en résulte toujours les autorisations suivantes :

$ ls -alh /tmp
total 36K
drwxr-xr-x 14 root  root   500 Jul 19 10:17 .

Mais si je monte un tmpfs à n'importe quel autre endroit au lieu de /tmp (ex. /var/opt ), il est accessible en écriture à tous :

$ ls -alh /var/opt
total 4.0K
drwxrwxrwt  2 root root   40 Jul  3 12:18 .

Comment puis-je monter un tmpfs sur /tmp pour qu'il soit accessible en écriture à tous ?

Sortie de mount :

tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime)
tmpfs on /var/opt type tmpfs (rw,nosuid,nodev,relatime)

Si monté avec toutes les options uid, gid et mode :

tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noexec,noatime,uid=1000,gid=1001)

Edit : Est-ce qu'un service Linux met les permissions à 755 sur le fichier /tmp au démarrage ? Parce que ces permissions sont définies même si je fais juste un lien symbolique /tmp a /var/opt qui, en soi, était accessible en écriture à tous. Après avoir démarré avec un lien symbolique de /tmp a /var/opt les permissions sur /var/opt sont fixés à 755.

5voto

DisgruntledGoat Points 21368

Mon paramètre tmpfs est :

tmpfs           /tmp            tmpfs   rw,mode=1777,size=12g

Le dimensionnement est pour un système avec beaucoup plus de mémoire et de swap que vous êtes susceptible d'avoir. noatime ou relatime ne devrait pas avoir d'importance puisque les inodes seront des structures de mémoire et peu susceptibles d'être écrits sur le disque. tmpfs est pagé pour échanger si nécessaire.

Les permissions de 755 sur /tmp sont probablement les permissions par défaut sur le point de montage. Les autorisations traditionnelles sont 1777 permettant à quiconque de créer des fichiers, mais les protégeant de toute manipulation par d'autres utilisateurs.

5voto

bitinerant Points 640

Votre original /etc/fstab est correcte :

tmpfs /tmp tmpfs nosuid,nodev,noatime 0 0

Pour les liens symboliques vers /tmp tels que /var/spool , /var/tmp et peut-être /var/opt (pas sûr), supprimer le lien symbolique, le remplacer par un répertoire vide, et ajouter une nouvelle ligne à /etc/fstab qui crée un autre montage, par exemple :

tmpfs /var/spool tmpfs  defaults,noatime,nosuid,nodev,noexec,mode=0755,size=64M 0 0

Pour trouver tous ces liens symboliques :

sudo find / -lname '/tmp*' 2>/dev/null

La raison pour laquelle cela est nécessaire est que, au démarrage, les permissions sur certains répertoires tels que /var/spool sont modifiés, et chmod sur un lien symbolique modifie le répertoire cible.

Voir aussi Pourquoi /tmp est monté avec les permissions 0755 alors que fstab a 1777 ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X