Posso executar um comando carregado de .bashrc com sudo?

4

Eu tenho algumas funções personalizadas e aliases definidas no meu arquivo .bashrc . Às vezes eu preciso executar whem como root. Eu então faço algo como:

$ sudo custom_cmd 80                                                                                                                                   
sudo: custom_cmd: command not found

Como posso executar esses comandos com privilégios de root?

EDIT: É claro que para conseguir isso, eu poderia simplesmente usar minha .bashrc como root, mas eu gostaria de saber se existe alguma maneira rápida (em termos de digitar) para fazer isso. Eu também gostaria de evitar qualquer customização se isso for possível (como o sourcing my .bashrc automaticamente).

    
por syntagma 27.01.2015 / 20:54

2 respostas

7

Execute-o no seu shell:

sudo bash -c 'source /home/reachus/.bashrc; custom_cmd 80'

Como alternativa, escreva um script que forneça .bashrc para você, digamos /usr/local/bin/my :

#! /bin/bash
source /home/reachus/.bashrc
"$@"

Então faça:

sudo my custom_cmd 80
    
por 27.01.2015 / 20:56
0

Acabou de ter o mesmo problema.

Você também pode

  cd /etc/profile.d
  sudo gedit ./newfile.sh (you write commands here, can be nano also)
  sudo chmod +x newfile.sh

Ele deve ser executado automaticamente sempre que você fizer login na sua conta. Para testá-lo, em vez de reiniciar, basta executar "su yourususername" no bash e login e deve funcionar.

    
por 17.07.2017 / 11:54