AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1067064
Accepted
Joe
Joe
Asked: 2018-08-21 00:00:11 +0800 CST2018-08-21 00:00:11 +0800 CST 2018-08-21 00:00:11 +0800 CST

Como executo um sudo gráfico no bash no kubuntu 18.04 agora que o kdesudo se foi?

  • 772

TL;DR: Qual é a nova maneira correta de fazer um gráfico a sudopartir de um script de shell?

Debatendo:

Acabei de atualizar do kubuntu 16.04 para 18.04 e estou fazendo a triagem normal.

kdesudodesapareceu em 18.04 (sem manutenção).

Eu o uso muito em scripts bash com GUI i/o.

Algumas postagens diziam usar kdesu- o que parece estranho. Parece que me lembro que isso mexe com o usuário efetivo ou algo assim.

Isso não está instalado no meu PATH.

eu encontrei em

bigbird@sananda:~/pq$ ls -l /etc/alternatives/kdesu
rwxrwxrwx 1 root root 41 Aug 19 03:23 /etc/alternatives/kdesu -> 
/usr/lib/kde4/libexec/kdesu-distrib/kdesu

que ainda diz kde4.

eu tenteisudo -A ls

e disse

bigbird@sananda:~$ sudo -A ls
sudo: no askpass program specified, try setting SUDO_ASKPASS

Eu andei em alguns círculos olhando ksshaskpasse ssh-askpass, mas ambos dizem que não devem ser chamados diretamente.

Eu não estou fazendo nada com ssh.

Eu preciso disso para scripts bash que fazem quase tudo como um usuário normal e, em seguida, executam um ou dois comandos como root. Esses scripts geralmente são iniciados a partir de ícones da área de trabalho onde não há janela de terminal aberta (e eu não preciso ou quero uma). Eles geralmente usam yad(como zenityou kdialog) para interagir com o usuário.

gui command-line kubuntu bash sudo
  • 4 4 respostas
  • 5040 Views

4 respostas

  • Voted
  1. Best Answer
    nobody special
    2018-08-21T04:24:13+08:002018-08-21T04:24:13+08:00

    Como você descobriu, pode usar a opção -A com o sudo, mas precisa de um método gui para fornecer a senha ao sudo.

    Você pode escrever essa ferramenta da maneira que quiser, desde que passe a senha de volta para sudo em stdout. Eu uso uma solução simples que alguém me sugeriu há muito tempo, que usa o kdialog e, como todas as soluções simples, continua sendo minha escolha desde então.

    Então crie você mesmo um script kdialog simples, como este

        #!/bin/bash
        kdialog --password "Password required to proceed"
    

    Agora você usa isso com sudo assim

        #!/bin/bash
        export SUDO_ASKPASS=<path to your kdialog script>
        sudo -A foo
    

    É claro que você pode usar qualquer idioma que desejar para o provedor de senha do gui, se não tiver o kde

    EDIT: Solução para ignorar sudo passwd_tries

    Para que você possa pedir a senha apenas uma vez (como você deseja fazer), você pode capturar a senha em uma variável dentro do script e passar essa variável diretamente para o comando sudo usando a opção -S.

    Isso tem a vantagem de ignorar a regra sudo passwd_tries e ainda requer a entrada de senha interativa, portanto, a senha não é armazenada no script.

    PASSWD=$(kdialog --password "sudo password required")
    echo $PASSWD | sudo -S foo
    

    Você também pode fazer isso diretamente em uma linha, se não precisar de vários comandos sudo no script, como este

    echo $(kdialog --password "sudo password required") | sudo -S foo
    

    E é claro que você pode usar seu próprio script kdialog que discutimos anteriormente em vez de usar o kdialog aqui, se desejar um prompt padrão do kdialog em todos os seus scripts.

    O problema ao ignorar passwd_tries do sudo, do meu ponto de vista, é que, se você errar a senha, seu script continuará processando todos os comandos após o comando sudo; portanto, se o comando elevado sudo for crítico para o sucesso do script, você terá problemas.

    A ressalva é que a senha do kdialog (ou alternativa como zenity) está escrita em stdout, algo que eu deveria ter mencionado antes, então qualquer pessoa que tenha capturado o stdout do PID verá sua senha. Mas qualquer hacker em seu sistema estaria fazendo muito mais do que apenas isso.

    • 6
  2. papampi
    2018-08-22T00:42:17+08:002018-08-22T00:42:17+08:00

    Você tentoupkexec

    pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY gedit
    
    • 3
  3. Elder Geek
    2018-08-24T12:02:36+08:002018-08-24T12:02:36+08:00

    Não apenas o kdesudo, mas também gksuestá obsoleto. Essas mudanças são pelo menos levemente irritantes. Parece que a abordagem que devemos adotar agora é utilizar o admin://prefixo, por exemplo, se você costumava usar kdesudo gedit /etc/default/grubagora, em vez disso gedit admin:///etc/default/grub, definitivamente levará algum tempo para se acostumar se eu abandonar o 16.04 para uma versão "nova e aprimorada".

    Outra solução possível seria simplesmente iniciar o script em um terminal para começar.

    Fonte: https://www.linuxuprising.com/2018/04/gksu-removed-from-ubuntu-heres.html

    • 1
  4. Joe
    2018-08-21T23:08:44+08:002018-08-21T23:08:44+08:00

    Acabei de encontrar algumas respostas aqui .

    A essência disso é:

    Por enquanto, uma solução alternativa é descobrir onde kdesuestá instalado em seu sistema

    com o qual você pode fazer

    ls -l /etc/alternatives/kdesu
    

    e, em seguida, adicione um alias para kdesudoto $HOME/.bashrcou, se você usá-lo, to $HOME/.bash_aliases.

    O pseudônimo é

    ## Resurect kdesudo - this will probably fail eventually
    alias kdesudo='/usr/lib/kde4/libexec/kdesu-distrib/kdesu'
    

    certificando-se de ajustar o caminho para kdesuaquele que você encontrou na etapa acima.

    Isso não funcionará para alguns programas no KDE porque

    Os desenvolvedores do KDE estão trabalhando em uma rota polkit para permitir privilégios elevados temporários para outros aplicativos, como já fizeram para o Kate. -- GreyGeek

    e quando o fazem, desativam a elevação direta porque (se funcionar direito) você não precisa mais dela. O programa apenas pede uma senha quando precisa fazer uma operação privilegiada. Resta saber como isso funcionará em um script.

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve