Basta ajustar sua política de segurança do sudo, criando uma regra em /etc/sudoers.d que permita:
- um conjunto definido de usuários (possivelmente apenas um usuário ou um grupo, conforme necessário),
- para executar SOMENTE
modprobeermmod, - APENAS no argumento cmd
psmouse, - COM ou SEM senha do sudo.
Isso é exatamente o que '/etc/sudoers.d' é geralmente usado. Então aqui vai ... (assumindo configuração de host único e lembrando que os arquivos localizados em /etc/sudoers.d são analisados por sudo na ordem lexical ordenada.)
- verifique se
/etc/sudoersinclui a linha#include /etc/sudoers.d - Normalmente, trabalho com um arquivo padrão pessoal
/etc/sudoers.d/00_aliases, onde defino os aliases user, cmd, host e group a gosto. Dessa forma, não só reduzo drasticamente o uso desudo visudopara ajustar/etc/sudoers, que contém as configurações padrão do sistema base, como também meus outros arquivos em/etc/sudoers.d/usam aliases analisados primeiro porsudoin/etc/sudoers.d/00_aliases. - solte um arquivo em
/etc/sudoers.d, nomeado por exemplo 20_psmouse
Se você não planeja usar extensivamente os arquivos sudoers.d, você pode não criar /etc/sudoers.d/00_aliases e, em vez disso, incluir seu ad-hoc aliases diretamente nos seus arquivos drop-in, conforme mostrado abaixo.
User_Alias MOUSE_TWKR = user1[, user2[, user3[, ...]]]
Cmnd_Alias MOUSE_MOD_TWK = /usr/bin/modprobe, /usr/bin/rmmod
MOUSE_TWKR your-host = NOPASSWD: MOUSE_MOD_TWK psmouse
A verdade está no pudim, então você precisará:
1) consulte man sudoers (no Archlinux, os exemplos começam na linha 1911 de 2038 linhas !!) e
2) experimente um pouco.
Por exemplo, se a regra acima for muito permissiva e você quiser restringir o uso de qualquer opção junto com os cmds modprobe e rmmod no contexto que você está administrando, substitua a entrada do arquivo por:
MOUSE_TWKR your-host = NOPASSWD: MOUSE_MOD_TWK [!-] psmouse
... e com entrada de senha obrigatória:
MOUSE_TWKR your-host = MOUSE_MOD_TWK [!-] psmouse
(*) substitua "your-host" pelo seu nome de host, ou com ALL para permitir todos os hosts, o que reduz apenas para yr host se yr system for uma caixa independente e / ou you ' Não estou lidando com o administrador remoto em uma sub-rede, por exemplo ...