Executando aplicativos como usuários diferentes

1
  1. Podemos executar o mesmo aplicativo em diferentes usuários? Ex: App1 sendo executado em /home/usr1/App1 e /home/Usr2/App1 em uma plataforma Linux?
  2. Podemos ter o mesmo UID para dois usuários diferentes? Ex: /home/usr1/App1 e /home/usr2/App2 Ou seja, Usr1 e Usr2 com o mesmo UID ?? Se sim, então como fazer isso?
  3. Um aplicativo pode alternar de um usuário para outro, por exemplo, app1 em execução em /home/usr1 pode alternar para /home/usr2
por sgpdglb 22.03.2013 / 07:17

1 resposta

2

É melhor publicar perguntas separadas separadamente. No entanto, uma vez que todos podem ser respondidos rapidamente (e estão relacionados), eu fiz isso.

  1. 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).

  2. 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).

  3. Sim, é possível mudar a identidade do usuário. Você pode usar sudo -u other-user command... ou (se você estiver atualmente root , 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 e man 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ção setuid ; veja man 2 setuid e man 3 setuid . Para executar aplicativos gráficos, você deve usar gksu / gksudo ou (no Kubuntu) kdesudo em vez de invocar su e sudo diretamente (mas observe que por padrão no Ubuntu gksu chama sudo , não su ). Veja esta seção da documentação da comunidade , man gksu (também cobre gksudo ) e man 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.

por Eliah Kagan 13.04.2017 / 14:24