Como posso executar scripts como root sem apontar para sua localização?

0

Eu costumo usar muito o sudo arp-scan --localnet --interface wlan0 , mas acho complicado digitar isso toda vez. Para acelerar as coisas, criei um script chamado arp-lw-scan , que deve fazer isso por mim.

Conteúdo de ~/Scripts/arp-lw-scan :

#!/bin/bash
arp-scan --localnet --interface wlan0

Eu adicionei ~/Scripts ao meu $PATH em ~/.profile , então cada script dessa pasta pode ser executado de qualquer local apenas digitando seu nome no terminal.

No entanto, estou tendo problemas para executar arp-lw-scan de maneira fácil, porque requer acesso root. Apenas digitando arp-lw-scan enquanto estiver no meu diretório home dá um erro sobre não ter direitos de root. Eu posso digitar sudo ~/Scripts/arp-lw-scan e isso funciona, mas ainda é muito bonito digitar. Eu quero poder apenas digitar sudo arp-lw-scan para executar o script fornecido.

Como posso conseguir isso?

    
por Exeleration-G 18.01.2013 / 23:25

1 resposta

6

Aliases de Bash

Aliases são os atalhos na linha de comando. O shell regular, Bash, permite que você crie seus próprios aliases.

Para experimentar (sem salvá-los permanentemente), tente o seguinte:

alias myalias='gksudo gparted'
myalias

Para salvá-los permanentemente, crie um arquivo ~/.bash_aliases assim:

alias myalias='gksudo gparted'
alias edsources='gksudo gedit /etc/apt/sources.list'

O arquivo ~/.bashrc padrão instalado para usuários no Ubuntu irá fornecer o arquivo ~/.bash_aliases por padrão.

Os aliases permitem acrescentar mais argumentos e 'anular' os comandos atuais também. Um caso de uso comum disso é

alias rm='rm -i'

Para obter uma mensagem de confirmação para tudo o que você tenta excluir com rm .

Caso você queira "escapar" de um alias executando o comando original, coloque-o com uma barra invertida. Então, com o exemplo rm , faça

\rm myfile

para remover o arquivo sem a opção -i forçada pelo alias.

Script atual

Sobre sua abordagem atual, você deve apenas poder preceder o comando no script de uma linha com sudo (ou gksudo ).

    
por gertvdijk 18.01.2013 / 23:47