Estou procurando uma maneira de executar vários aplicativos python/php em um servidor. Cada aplicativo em sua própria pasta /bob_app.
Eu preciso que os usuários não possam executar sth como:
>>> import glob
>>> glob.glob("/*")
['/boot', '/cdrom', '/dev', '/lib64', '/run', '/initrd.img', '/sys', '/media', '/var', '/etc', '/srv', '/initrd.img.old', '/root', '/sbin', '/tmp', '/opt', '/vmlinuz', '/usr', '/home', '/lost+found', '/bin', '/proc', '/lib', '/mnt', '/vmlinuz.old']
Ou o php etc equivalente. Os aplicativos devem ver apenas o conteúdo da pasta em que estão sendo executados e nada acima disso.
Editar: os aplicativos estão em contêineres do docker e usar um ambiente chroot no docker não é algo que tenho certeza de que é a coisa certa a fazer.
Se você tiver o controle do aplicativo, não importa se eles podem ver outros caminhos de aplicativos. Se os aplicativos forem executados com UIDs diferentes, você só precisará definir permissões no diretório do aplicativo como 700 para que outros usuários não possam ver seus arquivos.
Mesmo que o usuário possa inserir caminhos para recursos, você pode limpar os caminhos que eles inserirem. Limite os caminhos aceitos aos diretórios apropriados.
Existem vários métodos para fornecer dados de configuração com segurança. Você pode querer considerar o uso de um repositório/registro de serviço. Se você tiver senhas ou outros dados confidenciais, eles devem ser armazenados em um formato criptografado.