É 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 sudo
eman su
para 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 setuid
eman 3 setuid
. Para executar aplicativos gráficos, você deve usargksu
/gksudo
ou (no Kubuntu)kdesudo
em vez de invocarsu
esudo
diretamente (mas observe que por padrão no Ubuntugksu
chamasudo
, 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.