Não. As opções de montagem superam todas. É para isso que eles servem: para garantir que nada seja executado diretamente desse sistema de arquivos.
Para combater noexec
, você pode executar a maioria dos programas indiretamente chamando o inicializador:
- Se o programa é um script (começando com um shebang ), invoque o intérprete e passe o script como seu primeiro argumento.
- Se o programa for um executável vinculado dinamicamente, invoque o carregador dinâmico (por exemplo,
/lib/ld-linux.so.2
ou/lib64/ld-linux-x86-64.so.2
) e passe-o ao binário como seu primeiro argumento.
Se você tem um sistema de arquivos montado com noexec
, você pode visualizar um diretório onde todos os arquivos são executáveis com bindfs . No entanto, o Bindfs não permite definir permissões por arquivo.
É claro que você pode fazer uma cópia do arquivo em outro lugar e torná-lo executável.
Se o sistema de arquivos estiver montado nosuid
, não há como fazer os arquivos setuid. Isso quebraria a segurança. Para criar um arquivo setuid, você precisa ter acesso à conta de usuário proprietária. Fazer uma cópia e fazer esse setuid, ou remontar sem a opção nosuid
, são as únicas soluções.