remount / tmp para o shell atual

5

Eu tenho um comando que é codificado para usar /tmp como seu diretório de trabalho.

/tmp é bastante pequeno, e o comando vai preenchê-lo, o que causará problemas para outros processos do sistema.

Não consigo modificar o comando, por isso gostaria de remontar /tmp em outro local, visível apenas para o usuário / shell atual, sem afetar outros usuários / processos.

Isso é possível?

Update: Descobri que o comando usa a variável TMPDIR que eu posso sobrescrever, mas ainda estou interessado em saber se existe um comando de espaço de usuário do Linux que eu possa usar.

    
por bryan_basho 11.12.2014 / 11:06

1 resposta

14

O comando unshare pode fazer praticamente o que você está pedindo:

unshare -m "$SHELL"

Depois disso, você pode alterar qualquer montagem que você goste localmente apenas para esse shell.

Eu recomendo que quaisquer comandos de montagem executados dentro do shell não compartilhado usem o -n flag, caso contrário, ele alterará /etc/mtab , que ficará visível para todo o sistema. Você provavelmente deseja que os comandos df e mount sejam executados fora desse shell para ainda mostrar o sistema de arquivos correto montado em /tmp .

    
por 11.12.2014 / 11:21