Execute o comando automaticamente como root após o login

Execute o comando automaticamente como root após o login

Estou usando o evrouter para simular o pressionamento de teclas dos botões extras do mouse. Funciona muito bem, mas preciso executar o comando com sudo para que funcione, então não posso simplesmente usar meu DE para lidar com a inicialização automática.

Eu considerei init.d, mas pelo que ouvi, isso só funciona para diferentes estágios de inicialização e preciso que ele seja executado como rootdepoisConecte-se.

$ cat .evrouterrc 
"Logitech G500" "/dev/input/event4" any key/277 "XKey/0"
"Logitech G500" "/dev/input/event4" any key/280 "XKey/9"
"Logitech G500" "/dev/input/event4" any key/281 "XKey/8"
$ sudo evrouter /dev/input/event4

Editar:Tudo bem, parece que posso usar session-setup-scripta opção lightdm.conf para executar um script como root. O script que tenho está abaixo, mas como esperado, quando executado como root, id -unão é mais igual a 1000 e a instrução if nunca é executada. Existe um argumento ou variável que posso usar para obter o nome ou ID do usuário?

Responder1

Após a inicialização do computador, o Linux executa tudo o que está no arquivo crontab do seu sistema. Cron é um programa que agenda comandos, programas ou scripts para serem executados em horários muito específicos do dia. Cada usuário possui um crontab, mas nesta situação o crontab do sistema é apropriado para tal trabalho.

Você pode configurar o cron para executar comandos ou programas quando o sistema for inicializado. Então, acho que é isso que você quer dizer.

Para editá-lo adequadamente, você desejará abrir o arquivo crontab do seu sistema executando o comando sudo vim /etc/crontabSinta-se à vontade para substituir ``vim" pelo seu editor de texto cli favorito.

Adicione a linha (substituindo as coisas apropriadas exatamente pelo que você precisa, como comandos, etc.) abaixo de todas as outras. @reboot evrouterNota: A melhor ideia pode ser criar um script e colocar os comandos nele e executar o script usando o crontab. A escolha é realmente sua.

Dependendo da sua distribuição, você pode ou não ter que colocar quem deseja que o comando seja executado como após. @rebootNa maioria das vezes, o arquivo crontab terá alguns comentários no topo do arquivo para instruí-lo. É claro que olhar as outras entradas neste arquivo provavelmente será mais útil para você.

Responder2

Usando o valor lightdm.confde, session-setup-scriptconsegui executar o comando como root conforme o esperado.

session-setup-script=/opt/hacks/lightdm-startup

Enquanto isso, em outra pasta:

#!/bin/bash
if [ "$USER" = "j" ]
then
evrouter /dev/input/event4
fi

Ainda não sei por que ==não funcionou na instrução if e =funcionou... O Bash às vezes é errático.

informação relacionada