Você poderia executá-lo com sudo
, depois de executar visudo
para adicionar YOURUSER ALL=(ALL) NOPASSWD:ALL
, o que impedirá que sudo
solicite senhas ao usuário.
Eu uso o XFCE que não suporta as teclas de controle de iluminação do teclado do meu laptop.
Eu encontrei um script ( /etc/acpi/asus-keyboard-backlight.sh
) que pode controlá-lo, mas preciso executá-lo como root.
Eu não quero inserir minha senha de root toda vez que eu mudar a luz de fundo do teclado.
Como posso configurar um atalho de teclado para que ele seja executado como root sem solicitar minha senha?
Escreva um pequeno programa em C que chame o Bash para executar o script. Você compila este programa e dá a ele um suid
bit para que ele execute o Bash (e consequentemente o script) como root.
Veja um exemplo do dito wrapper:
#include <unistd.h>
int main(void) {
const char *bin = "/bin/bash";
const chrar *script = "/tmp/myscrypt.sh";
char *const argv[] = {bin, script, NULL};
char *const env[] = {"SHELL=/bin/bash",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"HOME=/root", "LOGNAME=root", "_=/usr/bin/env", NULL};
execve(bin, argv, env);
return 0;
}
Observe que isso executa o script como root , incluindo acreditar que a raiz é /root
. Se você não quiser isso, modifique o wrapper.
Assim, uma vez compilado, tudo o que lhe resta é dar um suid
.
gcc wrapper.c -o wrapper
chown root wrapper
chmod u+wrxs,g+rx,o-wrx wrapper
Se você ls -l
, as permissões serão assim:
-rwsr-x--- 1 root group [snip] wrapper
Isso significa que apenas o usuário do grupo group
poderá executar esse wrapper. E quando o fizerem, o s
in significará que o seu ID de usuário efetivo será 0.
Se você estiver fazendo isso em um ambiente compartilhado em que muitos usuários pertencem ao mesmo grupo, você poderá criar um grupo especial somente para esse arquivo e adicionar apenas seu usuário a esse grupo. Por exemplo, talvez você faça o login com o LDAP e todos os usuários pertençam ao grupo "Usuários do Domínio". Você pode criar um grupo local chamado, digamos, "JulieOnly" e adicionar somente seu usuário a esse grupo. Então você chown
o wrapper para root:JulieOnly
.
Tags xfce root keyboard-shortcuts