¿Cómo puedo montar un tmpfs en / tmp a través de fstab, escribible para cualquiera?

2

Quiero montar un tmpfs /tmpy hacerlo escribible para los usuarios (o un usuario específico). La máquina es una Raspberry Pi 3 con Debian 8.0 (Raspian). Cualquiera que sea lo intento, /tmpsiempre se monta con permisos sólo para root.

He intentado las siguientes fstabentradas:

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

Esto siempre da como resultado los siguientes permisos:

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

Pero si monte un tmpfs en cualquier otra ubicación en lugar de /tmp(por ejemplo /var/opt), se puede escribir para todos:

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

¿Cómo puedo montar un tmpfs para /tmpque sea grabable para todos?

Salida de mount:

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

Si está montado con todas las opciones uid, gid y mode:

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

Editar: ¿algún servicio de Linux establece permisos en 755 en el /tmpdirectorio en el arranque? Debido a que estos permisos se establecen incluso si solo hago un enlace simbólico /tmpa /var/opt, que por sí mismo era grabable para cualquiera. Después de arrancar con un enlace simbólico de /tmpa /var/opt, los permisos /var/optestán configurados en 755.

Chris Hager
fuente

Respuestas:

1

Mi configuración de tmpfs es:

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

El tamaño es para un sistema con mucha más memoria e intercambio que es probable que tenga. noatimeo relatimeno debería importar ya que los inodos serán estructuras de memoria y es poco probable que se escriban en el disco. tmpfsse busca para intercambiar si es necesario.

Es /tmpprobable que los permisos de 755 en adelante sean los permisos predeterminados en el punto de montaje. Los permisos tradicionales son 1777, lo que permite a cualquiera crear archivos, pero los protege de la manipulación de otros usuarios.

BillThor
fuente
1

Su /etc/fstablínea original es correcta:

tmpfs /tmp tmpfs nosuid,nodev,noatime 0 0

Para enlaces simbólicos a /tmp, como /var/spool, /var/tmpy quizás /var/opt(no estoy seguro), elimine el enlace simbólico, reemplácelo con un directorio vacío y agregue una nueva línea para /etc/fstabcrear otro montaje, por ejemplo:

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

Para encontrar todos esos enlaces simbólicos:

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

La razón por la que esto es necesario es que, en el arranque, los permisos en algunos directorios, como los que /var/spoolse cambian, y chmoden un enlace simbólico cambian el directorio de destino.

Consulte también ¿Por qué se monta / tmp con los permisos 0755 cuando fstab tiene 1777?

bitinerante
fuente