Você pode usar isto se você quer apenas rodar o programa sem seus arquivos de configuração, mas você confia que o programa não é malicioso e não tenta olhar para fora da caixa.
Eu escrevi uma coisinha há algum tempo que configura um diretório temporário e inicia um shell com um ambiente mínimo. Eu uso esse muitos vezes diariamente para testar minhas soluções para perguntas deste site.
link
Os usuários do FreeBSD também podem usar a devel/shell-toolbox
port.
O comando é chamado shell
e cria um diretório de trabalho descartável temporário, opcionalmente pré-preenchido com o conteúdo de outro diretório, e inicia um shell nele. Quando a sessão de shell termina, o diretório temporário é descartado (dependendo dos flags de linha de comando usados).
Isso também pode ser usado para iniciar outro shell diferente do shell de login do usuário.
Ele não cria um usuário temporário (pois isso exigiria permissões administrativas), mas define a variável HOME
como o diretório temporário, o que significa que qualquer referência a $HOME
ou ~
seria resolvida como o diretório temporário e não para a "casa real" do usuário. É não um ambiente "seguro" no sentido de que o resto do sistema é protegido, mas fornece um shell interativo em um diretório descartável onde os arquivos e diretórios criados serão limpos quando terminados com impacto mínimo do seu ambiente de shell comum.
Exemplo:
[box] $ shell -s "$HOME/skel" zsh
shell: info: Copying /home/kk/skel into /tmp_mfs/shell-zsh.5IAh9F2B
shell: info: Starting /usr/local/bin/zsh in /tmp_mfs/shell-zsh.5IAh9F2B
$ ls -a
. .Xdefaults .cvsrc .mailrc .vimrc
.. .cshrc .login .profile .zshrc
$ echo "$HOME"
/tmp_mfs/shell-zsh.zqHtjz49
$ env
HOME=/tmp_mfs/shell-zsh.zqHtjz49
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin
PS1=$
SHELL=/usr/local/bin/zsh
TERM=screen
LOGNAME=kk
SHLVL=1
PWD=/tmp_mfs/shell-zsh.zqHtjz49
OLDPWD=/tmp_mfs/shell-zsh.zqHtjz49
_=/usr/bin/env
$ exit
shell: info: Removing /tmp_mfs/shell-zsh.5IAh9F2B
Não faz chroot
ou algo assim. É basicamente um wrapper glorificado em torno de env -i
.
Veja a documentação shell
.