Como usar a opção sudo -u?

6

Eu tenho 2 usuários, userA e userB. userB precisa executar alguns comandos como userA. Eu especifiquei estas opções em /etc/sudoers conforme abaixo:

userA ALL=(ALL) ALL
userB ALL=(vinoth) /sbin/fdisk

Eu executei este comando como userB:

sudo -u userA fdisk -l 

Ele pediu a senha do userB. Uma vez que eu digitei a senha, o comando não deu a saída do fdisk.

    
por vinothsaran 08.02.2016 / 11:43

1 resposta

9
  1. Na sua configuração, você permitiu:

    • userA para executar qualquer comando como qualquer usuário
    • userB para executar fdisk como vinoth
  2. Por padrão,
  3. fdisk exige que root privileges acessem os dispositivos, não é possível executá-lo como userA , ou seja. você pode executar, mas fdisk -l não imprimirá nenhuma saída, que é o que você conseguiu.

  4. Finalmente, o comando sudo não é transitivo. Quando você executar um comando da conta userB usando sudo -u userA <command> , o <command> será executado usando as credenciais userA e o fato de userA ter configurações definidas em sudoers não se aplica a esse comando.

Usando sudo -u

Para permitir que userB execute o comando como userA , é necessário colocar o seguinte em sudoers :

userB ALL=(userA) /usr/bin/whoami

faça login no shell como userB e execute:

$ sudo -u userA whoami
userA

Mas userA tem permissões para executar whoami (o que faz). Não é para fdisk .

Ativando fdisk para usuários comuns

fdisk em si não está restrito a root conta, no entanto, requer acesso a dispositivos de disco (armazenados em /dev , que não são acessíveis a usuários comuns). Para dar permissão ao usuário para executar fdisk , você pode:

  1. Ativar sudo para a conta. A execução de sudo fdisk -l significa efetivamente que fdisk é executado na conta root .

  2. Adicione a conta a disk group, o que permitirá executar fdisk -l sem sudo , usando credenciais de conta.

por 08.02.2016 / 12:22

Tags