Como posso montar um tmpfs para / tmp via fstab, gravável para qualquer pessoa?


2

Eu quero montar um tmpfs para /tmp e torná-lo gravável para usuários (ou um usuário específico). A máquina é um Raspberry Pi 3 com Debian 8.0 (Raspian). O que quer que eu tente /tmp é sempre montado com permissões apenas para root.

Eu tentei o seguinte fstab entradas:

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

Isso sempre resulta nas seguintes permissões:

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

Mas se eu montar um tmpfs para qualquer outro local em vez de /tmp (por exemplo. /var/opt ), é gravável para todos:

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

Como posso montar um tmpfs para /tmp de modo que seja gravável para todos?

Saída de mount:

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

Se montado com todas as opções de uid, gid e mode:

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

Editar: qualquer serviço do Linux define permissões para 755 no /tmp diretório na inicialização? Porque essas permissões são definidas mesmo se eu apenas criar links simbólicos /tmp para /var/opt, que por si só era gravável para qualquer pessoa. Depois de iniciar com um link simbólico de /tmp para /var/opt, as permissões em /var/opt estão definidos para 755.

Respostas:


1

Minha configuração de tmpfs é:

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

O dimensionamento é para um sistema com muito mais memória e troca que você provavelmente terá. noatime ou relatime Não importa como os inodes serão estruturas de memória e é improvável que sejam gravados em disco. tmpfs é paginado para trocar, se necessário.

As permissões de 755 em /tmp são provavelmente as permissões padrão no ponto de montagem. As permissões tradicionais são 1777, permitindo que qualquer pessoa crie arquivos, mas protegendo-os da manipulação por outros usuários.


1

Seu original /etc/fstab linha está correta:

tmpfs /tmp tmpfs nosuid,nodev,noatime 0 0

Para links simbólicos para /tmp, tal como /var/spool, /var/tmp, e talvez /var/opt (não tenho certeza), remova o symlink, substitua-o por um diretório vazio e adicione uma nova linha /etc/fstab que cria outra montagem, por exemplo:

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

Para encontrar todos esses links simbólicos:

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

A razão pela qual isso é necessário é que, na inicialização, as permissões em alguns diretórios, como /var/spool são alterados e chmod em um symlink muda o diretório de destino.

Veja também Por que o / tmp é montado com permissões 0755 quando o fstab tem 1777?

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.