Então, meu objetivo é dar a cada usuário sua própria "raiz", basicamente criando uma unidade de loop com uma cópia dos arquivos principais. Eu sei que há coisas como conchas, e todas aquelas coisas divertidas que tornam isso um pouco mais fácil, MAS você ainda está acessando os arquivos-raiz daquele sistema e um bastardo astuto pode mexer o suficiente para sair da cadeia.
Minha teoria é sobre a criação do usuário uma unidade de loop é girada com uma cópia do root, em seguida, quando um usuário faz o login, algo, talvez um chroot é executado, e ele aparece em sua bolha. Conheço as permissões dos usuários e as que não mantêm as pessoas honestas, mas essencialmente não quero que essa pessoa saiba que há mais ninguém nesse dispositivo, não importa onde olhem, nada além do conteúdo será exibido e, se de alguma forma, eles executaram um comando e destruiu seu env raiz, ele não vai tocar a máquina real, apenas estourar sua bolha. Eu sei que percorremos um longo caminho com snaps e outras ferramentas de sandboxing para impedir que as coisas toquem em outras coisas, mas nada que eu tenha visto em manter os usuários em seu próprio ambiente de usuário.
Estou jogando em torno de idéias, e não posso pensar, seria um cenário docker, uma máquina virt, onde ele aparece apenas no login, ou se é realmente factível com ajustes para os parâmetros addusr e login.
Minha teoria.
Como as máquinas Virt, existe um "usuário root" (vamos chamá-lo de bob) que gerencia as contas de usuários, bob pode adicionar, excluir, modificar o que não e também gerenciar o software das máquinas e quais não.
bob, em seguida, quer adicionar sally para a máquina, ele faz o adduser normal, o usuário add, em seguida, gira um arquivo aa (dd se = / dev / zero de = / home / sal_drive bs = contagem de 1000M = 60) gira um dispositivo de loop, adiciona-o ao fdisk e copia alguns arquivos principais nele.
(agora é aqui que eu fico tropeçando)
Sally agora é um usuário, sua casa está configurada para / dev / loop (sally) / home (se essa é a sintaxe apropriada. Ou seria apenas deixada / home / sally e um script apenas a deixaria na nova unidade com o ambiente definido?)
Sally, em seguida, está na página de login, insere suas informações de login e, em seguida, é descartada em sua bolha, com seus arquivos raiz e inicial.
Então a questão,
Isso é factível apenas com alguns ajustes no env do usuário no adduser e no script de login, e quando o usuário efetua login, ele faz o chroot para o ambiente e o Chroots volta ao logout. OU eu teria que criar uma instância virtual e, em seguida, eles fazem login dessa maneira. por exemplo, a máquina host é charles.local, a página de login é então carregada para login.charles.local e então sally entraria em sally.charles.local ....