MacOS: su pkill -9 “process_name” = desculpe

1

Como usar pkill como su em um Mac?

Quando eu executo su pkill -9 "RFBEventHelperd" no terminal eu recebo su: Sorry (mas funciona como sudo). Eu estou procurando uma maneira de matar este processo de dentro de um script que é executado como su .

Meu aplicativo

Eu uso o SleepWatcher no MacOS para abrir aplicativos de compartilhamento de tela ao acordar. Depois de iniciar o aplicativo Compartilhamento de tela, eu quero matar o processo RFBEventHelperd , pois isso retorna o Comando + Tab para Mac em vez de ser ligado ao sistema operacional em Compartilhamento de tela.

O SleepWatcher executa o script de ativação como su :

$ su - $user -c "$home/.wakeup"

Pergunta

Como posso colocar o pkill -9 "RFBEventHelperd" no meu script e fazer com que ele mate um processo que está sendo executado como outro usuário.

    
por Jsp 16.07.2018 / 18:57

1 resposta

0

A forma de su que você está procurando é a seguinte:

$ su -c pkill -9 "RFBEventHelperd" <user>

No OSX, este formulário pode não funcionar. Nessas situações, você provavelmente terá que ceder ao uso de sudo :

$ sudo -u <user> <cmd>

Para que isso funcione sem senha, você terá que criar uma entrada para isso no seu arquivo /etc/sudoers e utilizar o recurso NOPASSWD para um comando explícito que seu uso executando o script original tem acesso para executar sem ser desafiado pela senha .

Usando o sudo

Para configurar uma regra no arquivo /etc/sudoers para permitir que este usuário acesse o comando pkill , pode-se adicionar isso em /etc/sudoers :

%admin ALL=(ALL) NOPASSWD: ALL

E com isso, o shell script pode executar este comando sem qualquer senha:

$ sudo -u root /usr/bin/pkill -9 "RFBEventHelperd"

OBSERVAÇÃO: Ao lidar com /etc/sudoers edições, você pode usar visudo assim:

$ sudo visudo

Referências

por 17.07.2018 / 03:54