-
Na sua configuração, você permitiu:
-
userA
para executar qualquer comando como qualquer usuário -
userB
para executarfdisk
comovinoth
Por padrão, -
-
fdisk
exige queroot
privileges acessem os dispositivos, não é possível executá-lo comouserA
, ou seja. você pode executar, masfdisk -l
não imprimirá nenhuma saída, que é o que você conseguiu. -
Finalmente, o comando
sudo
não é transitivo. Quando você executar um comando da contauserB
usandosudo -u userA <command>
, o<command>
será executado usando as credenciaisuserA
e o fato deuserA
ter configurações definidas emsudoers
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:
-
Ativar
sudo
para a conta. A execução desudo fdisk -l
significa efetivamente quefdisk
é executado na contaroot
. -
Adicione a conta a
disk
group, o que permitirá executarfdisk -l
semsudo
, usando credenciais de conta.