gksudo não age como sudo para o arquivo 'string' [duplicado]

1

Estou tentando fazer um script de duas linhas para definir temporariamente um servidor de nomes específico. Portanto, eu só envio 'nameserver XXX.XXX.XXX.XXX' para o arquivo /etc/resolv.conf , porque ele é sobrescrito da próxima vez. A coisa é, quando eu tento pedir a senha via gksudo, recebo um erro porque ele tenta mostrar o resultado do gksudo no arquivo.

ATUALIZAÇÃO:

Meu arquivo atual é agora:

#!/bin/sh
gksudo "bash -c \"echo 'nameserver XXX.XXX.XXX.XXX' >> /etc/resolv.conf\""

O comando com sudo em vez de gksudo e sem o "" e \ funciona como deveria. Permanece como obtê-lo no prompt da GUI.

    
por Peter Nerlich 13.01.2015 / 16:26

3 respostas

3

Você esteve muito perto, tente isso:

#!/bin/sh
gksudo "bash -c \"echo 'nameserver XXX.XXX.XXX.XXX' >> /etc/resolv.conf\""
    
por chaos 13.01.2015 / 16:33
1

Como você pode ler aqui - link o > > símbolo acrescenta o resultado do comando ao arquivo

O resultado do comando 'nameserver XXX.XXX.XXX.XXX' é .. bem comando não encontrado: P

O que vem para o resgate é o comando echo (como @chaos disse com razão) que ecoa o texto e esse resultado pode ser canalizado para o arquivo

Embora você possa usar uma versão mais simples do script dele

#!/bin/sh
gksudo echo 'nameserver XXX.XXX.XXX.XXX' >> /etc/resolv.conf
    
por Rishabh 13.01.2015 / 16:45
-4

Você tentou isso no tipo sted:

    #!bin/sh
           Case (nameserver) in
                 /bin/sh
                 nameserver = XXX.XXX.XXX XXX >>
                 gksudo 'echo' nameserver >>
                 resolvconf XXX.XXX.XXX.XXX >>
           endl

e pode funcionar bem assim.

    
por Michael 13.01.2015 / 16:42