Como dar permissões para um comando específico?

0

Gostaria de executar o comando fastboot sem sudo . está funcionando se eu colocar sudo na frente dele, caso contrário não.

assim:

$ sudo fastboot devices
2738006a    fastboot

$ fastboot devices
no permissions  fastboot

Como posso resolver isso?

    
por Mohideen ibn Mohammed 15.08.2017 / 14:13

1 resposta

2

Usando o arquivo sudoers

A maneira correta é adicionar uma linha ao seu arquivo /etc/sudoers similar a:

username     ALL = NOPASSWD: /bin/path/to/fastboot

, o que significa que esse 'username' específico é capaz de executar o comando fastboot usando sudo sem fornecer qualquer senha como anyone .

Agora, quando você o executar usando sudo fastboot , ele não pedirá a senha e será um pouco mais rápido para trabalhar.

Em seguida, basta adicionar um alias simples ao seu .bashrc :

alias fastboot='sudo fastboot'

Usando o bit SUID

Eu recomendo a solução acima sobre esta;

Se o seu programa fastboot for um arquivo binário, você poderá fazer o seguinte:

sudo chown root:$(id -gn) /path/to/fastboot
sudo chmod 4750 /path/to/fastboot

Primeiro, asseguramos que root seja o proprietário deste arquivo e também que ele pertença ao seu grupo primário, então possibilitamos que o proprietário e o grupo executem esse arquivo ao adicionar o bit SUID (4), o que significa arquivo será executado com os direitos do proprietário (root).

Agora ele deve funcionar sem o sudo, mas somente o root e você pode executá-lo.

    
por Ravexina 15.08.2017 / 14:23