Por padrão, o BusyBox não faz nada de especial com relação aos applets que ele embutiu (os comandos listados com busybox --help ).
No entanto, se as opções FEATURE_SH_STANDALONE e FEATURE_PREFER_APPLETS estiverem habilitadas em tempo de compilação, quando BusyBox sh¹ executa um comando que é um nome de applet conhecido, ele não executa a% normalPATH lookup, mas executa seus applets integrados por meio de um atalho:
- Os applets declarados como “noexec” no código-fonte são executados como chamadas de função em um processo bifurcado. A partir do BusyBox 1.22, os seguintes applets são noexec:
chgrp,chmod,chown,cksum,cp,cut,dd,dos2unix,env,fold,hd,head,hexdump,ln,ls,md5sum,mkfifo,mknod,sha1sum,sha256sum,sha3sum,sha512sum,sort,tac,unix2dos. - Os applets declarados como “nofork” no código-fonte são executados como chamadas de função no mesmo processo. A partir do BusyBox 1.22, os seguintes applets são nofork:
[[,[,basename,cat,dirname,echo,false,fsync,length,logname,mkdir,printenv,printf,pwd,rm,rmdir,seq,sync,test,true,usleep,whoami,yes. - Outros applets são realmente executados (com
forkeexecve), mas em vez de fazer uma pesquisaPATH, BusyBox executa/proc/self/exe, se disponível (o que normalmente é o caso no Linux), e um caminho definido em tempo de compilação.
Isso está documentado em mais detalhes em docs/nofork_noexec.txt . As declarações do applet estão em include/applets.src.h no código-fonte.
A maioria das configurações padrão desativa esses recursos, para que o BusyBox execute comandos externos como qualquer outro shell. O Debian ativa esses recursos nos pacotes busybox e busybox-static .
Portanto, se você tiver um executável do BusyBox compilado com FEATURE_SH_STANDALONE e FEATURE_PREFER_APPLETS , poderá executar todos os comandos do BusyBox a partir de um shell do BusyBox, mesmo que o executável seja excluído (exceto os applets que não estão listados acima, se/proc/self/exe não está disponível).
¹ Na verdade, existem duas implementações de "sh" no BusyBox - ash e hush - mas elas se comportam da mesma maneira a esse respeito.