É melhor publicar perguntas separadas separadamente. No entanto, uma vez que todos podem ser respondidos rapidamente (e estão relacionados), eu fiz isso.
-
O mesmo aplicativo pode ser executado por diferentes usuários, em momentos diferentes ou ao mesmo tempo. O aplicativo pode executar do mesmo local (desde que ambos os usuários tenham acesso para executá-lo), ou cópias separadas podem ser executadas de locais diferentes (como no seu exemplo).
-
Dois usuários diferentes não podem compartilhar um UID. Seu UID é na verdade mais central para sua identidade de usuário (daí o nome) do que seu nome de usuário. Quando você possui um arquivo ou pasta , o sistema de arquivos contém seu UID associado ao arquivo, não seu nome de usuário. Ter dois usuários com o mesmo UID significaria ter um único usuário com vários nomes (o que também não é suportado).
-
Sim, é possível mudar a identidade do usuário. Você pode usar
sudo -u other-user command...ou (se você estiver atualmenteroot, ou se o usuário de destino tiver o login ativado e você souber sua senha)su other-user -c 'command...'. Você pode invocar esses comandos, mas scripts e aplicativos também podem usá-los.Veja a documentação da comunidade ,
man sudoeman supara mais detalhes sobre como isso funciona e como usá-lo. Em um programa que você está escrevendo, você também pode usar a funçãosetuid; vejaman 2 setuideman 3 setuid. Para executar aplicativos gráficos, você deve usargksu/gksudoou (no Kubuntu)kdesudoem vez de invocarsuesudodiretamente (mas observe que por padrão no Ubuntugksuchamasudo, nãosu). Veja esta seção da documentação da comunidade ,man gksu(também cobregksudo) eman kdesudo.Antes de escrever programas ou scripts que alteram usuários, recomendo a leitura extensiva de como a identidade do usuário funciona em sistemas semelhantes ao Unix.