Como executar o Dolphin como root?

14

Atualmente, uso dolphin 17.04.3e sempre que o executo como sudo, ocorre o seguinte erro Executing Dolphin as root is not possible.sem explicar o porquê ou dar uma alternativa. Então, como posso executar o dolphin como root para copiar ou excluir arquivos?

Ankur S
fonte
Qual versão do Ubuntu você está usando?
George Udosen
1
você está usando wayland? por padrão, o wayland não permite que os programas da GUI sejam executados como raiz.
Ravery
não funciona a opção de criar ou mover arquivos é simplesmente acinzentada no menu de contexto. Por favor, verifique sua versão
Ankur S
Estou usando o ubuntu 17.10 e o x11 com o kde instalado.
Ankur S
2
"Então, como posso executar o dolphin como root para copiar ou excluir arquivos?" Por favor, reavalie esta pergunta. Use a linha de comando para tarefas administrativas. Está lá especificamente para tarefas administrativas. Ferramentas gráficas não devem ser usadas para tarefas administrativas. A execução de ferramentas gráficas como administrador tem efeitos colaterais invisíveis em relação às permissões e, ultimamente, é considerado tal que os desenvolvedores a bloqueiam ativamente. Você realmente acha que é uma boa ideia ir contra as pessoas que sabem (ou deveriam saber;)) exatamente o que uma ferramenta gráfica de manipulação de arquivos pode e faz?
Rinzwind

Respostas:

11

Baixo:

Dolphin 17.04

O Dolphin 17.04 ou posterior tem uma verificação:

if uid == 0 then show the "Executing Dolphin as root is not possible." and exit.

Uma solução alternativa

Você pode editar as fontes e desativar a verificação. Então o Dolphin funcionará como antes.

Dolphin 18.08

Pouca solicitação de revisão

O Dolphin 18.08.0 está usando essas alterações e o Dolphin pode ser iniciado com o comando pkexec como superusuário administrativo.

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true dolphin

Mais: KDE Foruns - Como executar o Dolphin 18.08 como root no Kubuntu ou KDE neon? - https://forum.kde.org/viewtopic.php?f=224&t=153655

insira a descrição da imagem aqui

Fundo:

Anterior - Fóruns do KDE - Como executar o Dolphin como root ?: https://forum.kde.org/viewtopic.php?f=224&t=141836

Por razões de segurança: Proibir a execução do Dolphin como root no Linux - https://cgit.kde.org/dolphin.git/commit/?id=0bdd8e0b0516555c6233fdc7901e9b417cf89

Não permitir a execução do Dolphin como root no Linux Basicamente, uma cópia do commit kate / 9adcebd3c2e476c8a32e9b455cc99f46b0e12a7e, escrita por Martin Grässlin

Proibir a execução de kate e kwrite como root no Linux: https://phabricator.kde.org/R40:9adcebd3c2e476c8a32e9b455cc99f46b0e12a7e

Mais dicas

KDE Reddit - root Dolphin no KDE App 17.04: https://www.reddit.com/r/kde/comments/6785b1/dolphin_root_on_kde_app_1704/

Ignore "Não é possível executar o Dolphin como root" e recupere os privilégios de raiz do KDE Dolphin: https://www.reddit.com/r/kde/comments/6xs3mp/bypass_executing_dolphin_as_root_is_not_possible/

Futuro

Suporte do Polkit no KIO: https://phabricator.kde.org/T6561

Quando estiver pronto, o Dolphin mostrará a consulta de senha, se necessário. Agora, com o Dolphin & KIO corrigido:

insira a descrição da imagem aqui

user26687
fonte
1
Você poderia elaborar um pouco mais sobre "Por razões de segurança"?
22618 Jim McAdams
Você leu o phabricator.kde.org/… . Mesmas / mais: Martin GRASSLIN - edição de arquivos como root: blog.martin-graesslin.com/blog/2017/02/editing-files-as-root
user26687
então, a resposta simples é "você não pode executar o Dolphin como root, a menos que instale uma versão corrigida"?
@ user47206: Por que não corrigir você mesmo? ;) Veja minha resposta abaixo!
WitchCraft 11/10/19
10

Não é uma resposta, apenas uma solução alternativa para a finalidade mencionada pelo OP ( copying or deleting files).

A ideia é

  1. instale outro gerenciador de arquivos que não tenha essa limitação e que não traga muitas dependências

  2. crie um menu de contexto "Abrir como raiz" no Dolphin para esse outro gerenciador de arquivos.

Os principais gerenciadores de arquivos de outros desktops podem ser usados ​​(Nautilus, Nemo, Caja, Thunar), mas trazem algumas dependências. Até o PCManFM e o PCManFM-Qt fazem isso. Se você precisar de um desses para algum outro propósito, adicionar esse pode ser uma boa solução.

Eu descobri que o Krusader (que eu acho que no passado era instalado por padrão em alguns sistemas KDE) pode ser facilmente instalado, não traz dependências no Kubuntu 18.04 e pode ser usado como root.

sudo apt install krusader

Nas ferramentas, ele possui a opção "Root".

insira a descrição da imagem aqui

que pede senha em uma GUI.

Para adicionar um menu de contexto no dolphin, crie a pasta ~/.local/share/kservices5/ServiceMenuse faça

kate ~/.local/share/kservices5/ServiceMenus/filemanager_root.desktop

e adicione

[Desktop Action root]
Exec=/usr/lib/kde4/libexec/kdesu krusader
Icon=dolphin
Name=Open in Krusader file manger as administrator

[Desktop Entry]
Actions=root
Icon=krusader_root
MimeType=inode/directory
ServiceTypes=KonqPopupMenu/Plugin
Type=Service
X-KDE-Priority=TopLevel
X-KDE-StartupNotify=false

Por alguma razão kdesu krusadernão funciona, e eu usei a solução daqui .. O que também funciona é konsole -e sudo krusader, mas isso mostra o terminal em vez de uma interface gráfica para o prompt de senha.

Então, você verá no Dolphin:

insira a descrição da imagem aqui

trazendo um diálogo

insira a descrição da imagem aqui

qual é aquele que funciona ..


fonte
4

Eu criei minha própria versão com base nas respostas acima. Portanto, para adicionar um menu de contexto para abrir o Dolphin como raiz, siga estas etapas:

  • Crie um arquivo chamado, por exemplo, DolphinAsRoot.desktopno diretório~/.local/share/kservices5/ServiceMenus/
  • Com um editor de texto, coloque o seguinte conteúdo:
[Desktop Entry]
Actions=root
Icon=system-file-manager-root
MimeType=inode/directory
ServiceTypes=KonqPopupMenu/Plugin
Type=Service
X-KDE-Priority=TopLevel
X-KDE-StartupNotify=false

[Desktop Action root]
Exec=/usr/bin/pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true dolphin
Icon=system-file-manager-root
Name=Open as administrator
  • Se ele ainda não aparecer no menu de contexto do Dolphin, vá para "Configurações -> Configurar o Dolphin ...-> Serviços" e ative a opção que você adicionou recentemente. Deveria estar lá. Caso contrário, feche o Dolphin ou efetue logout e logon na sua sessão.

Isso é tudo, espero que ajude a todos, como me ajudou;)

Juan Gómez Carrillo
fonte
0

Tudo o que fiz foi adicionar o Terminal à barra de ferramentas (embora o atalho do teclado estivesse vinculado ao F4) e usei a linha de comando para executar operações com o sudo conforme necessário.

Igual a

Sim, pode não ser tão conveniente, mas força você a começar a aprender a linha de comando enquanto fornece uma representação visual de como o comando realmente funciona.

Isso está no Arch, mas a funcionalidade deve ser a mesma no Ubuntu. Espero que tenha ajudado.

espada
fonte
0

aqui está uma solução alternativa para o Dolphin 17.x:

export XDG_CURRENT_DESKTOP=KDE; LD_PRELOAD=/home/roger/Downloads/dolphin/usr/lib64/libkdeinit5_dolphin.so /usr/bin/dolphin

obter libkdeinit5_dolphin.soa partir daqui

Testado por mim, funciona bem no Ubuntu biônico.

fonte

eadmaster
fonte
0

É trivial!

Basta olhar para o código fonte de kate e kwrite:

diff --git a/kate/main.cpp b/kwrite/main.cpp

Nas primeiras linhas de código diretamente no início da função "principal", você encontrará:

/**
 * Check whether we are running as root
 **/
if (getuid() == 0) // uid = user id = 0 ==> means if you are user 0 (aka root)
{
    std::cout << "Executing Kate as root is not possible. To edit files as root use:" << std::endl;
    std::cout << "SUDO_EDITOR=kate sudoedit <file>" << std::endl;
    return 0;
}

O Dolphin não é diferente, exceto que isso acontece em libkdeinit5_dolphin.so.

Portanto, rodar como root é trivial, tudo o que precisamos fazer é pular a verificação if uid = 0.

A maneira como fazemos isso é através da aplicação permanente de patches kate, kwrite e golfinho.
Então, a primeira coisa que fazemos é despejar o conteúdo binário em um arquivo de texto:

objdump -Crd /usr/bin/kate >> ~/kate.txt
objdump -Crd /usr/bin/kwrite >> ~/kwrite.txt

Agora você pode olhar para o arquivo e gedit ~/kate.txt, se procurar por getuid, encontrará algo como:

   2a985:   31 c0                   xor    %eax,%eax
   2a987:   89 bc 24 dc 00 00 00    mov    %edi,0xdc(%rsp)
   2a98e:   e8 ed ce ff ff          callq  27880 <getuid@plt>
   2a993:   85 c0                   test   %eax,%eax
   2a995:   0f 84 e9 1e 00 00       je     2c884 <__cxa_finalize@plt+0x1f5c>

Agora, no lado esquerdo, você encontra o endereço da memória, depois dos dois pontos (:), você verá o código de instruções binárias (hex) e, à direita, verá a desmontagem desse código (também conhecido como o que significa) .

Agora, veja bem, lá chama getuid, testa se esse é zero e pula para a instrução if, ou seja, se o valor de retorno é igual a zero (je: jump se igual).

Agora não queremos pular para o if, então apenas removemos essa porcaria lá. Mas apenas remover essa porcaria mudaria de endereço em 6 bytes, descartando quaisquer saltos relativos no programa no processo e, como conseqüência, no programa. Então, ao invés você apenas substituir todo o comprimento da instrução salto com NOP (abreviatura de N S Op peração) instruções, aka 0x90 na instrução de código / hex.

Então você precisa substituir cada byte de salto por 0x90, para onde você tinha anteriormente

0f 84 e9 1e 00 00

voce terá

90 90 90 90 90 90

Isso pode ser feito simplesmente com um editor hexadecimal.
Então, instalamos um:

sudo apt-get install wxhexeditor

Agora, no editor hexadecimal, procure 0f 84 e9 1e 00 00 e substitua por 90 90 90 90 90 90. Se houver apenas uma ocorrência de 0f 84 e9 1e 00 00, e houver, isso é trivialmente simples. Apenas altere os bytes em hexadecimal para 90 90 90 90 90 90 e salve. Acabado. Agora, o Kate ou o kwrite serão abertos, seja você root ou não.

se você fizer o mesmo com o golfinho, perceberá que objdump -Crd /usr/bin/dolhinproduz uma desmontagem muito curta.

se você executar ldd /usr/bin/dolphin, você verá o dolphin carregar a biblioteca compartilhada libkdeinit5_dolphin.so

linux-vdso.so.1 (0x00007ffc2fdf0000) libkdeinit5_dolphin.so => ​​/usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so (0x00007fb54e76c000)

Então você faz o objdump em libkdeinit5_dolphin.so:

objdump -Crd /usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so >> ~/libkdeinit5_dolphin.txt

Agora abra o objdump: gedit ~/libkdeinit5_dolphin.txt

Pesquise getuid e verá que um dos resultados da pesquisa é:

   41f95:   31 c0                   xor    %eax,%eax
   41f97:   89 7c 24 5c             mov    %edi,0x5c(%rsp)
   41f9b:   e8 50 b6 ff ff          callq  3d5f0 <getuid@plt>
   41fa0:   85 c0                   test   %eax,%eax
   41fa2:   0f 84 58 1a 00 00       je     43a00 <kdemain@@Base+0x1a90>
   41fa8:   48 8d 84 24 a0 00 00    lea    0xa0(%rsp),%rax

Isso é ótimo, veja bem, mais porcaria como em Kate e Kwrite.
Agora abra /usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.sono seu editor hexadecimal, procure 0f 84 58 1a 00 00e substitua-o por 90 90 90 90 90 90.
Clique em salvar e pronto.

O Dolphin agora roda como root.

Nota: É uma boa ideia fazer uma cópia de backup dos arquivos que você modifica, caso você se arrependa.

Além disso, você pode simplesmente baixar a fonte de kate, kwrite e dolphin, remover essa porcaria do código-fonte, compilar e instalar. Mas como o sistema cmake estúpido está faltando algum modelo de porcaria de porcaria, como ícones, provavelmente porque o cmake fornecido novamente é muito antigo, isso não funciona. Que pena, teria sido muito simples se funcionasse, não?

Mas apenas corrigir os executáveis ​​como eu descrevi é mais rápido, então quem se importa de qualquer maneira.

Veja bem, não é simples, mas é trivial.

PS:
Agora, sempre que o kate, o kwrite ou o dolphin forem atualizados via apt, suas alterações serão substituídas. Você precisará reaplicá-los. Vou deixar automatizar o processo de correção nas suas mãos mais do que capazes e na sua linguagem de programação do joice;)

Isso pode ser feito em pura festa?

Além disso, se você deseja corrigir o vlc para a mesma porcaria, pode fazê-lo com o sed:

sed -i 's/geteuid/getppid/' /usr/bin/vlc

Basta colocar a declaração sed em um script, para que você possa se inscrever novamente, se precisar, se estiver offline e não tiver acesso à Internet.

Happy hacking - com kate, kwrite e dolphin - como root - enquanto assiste / ouve algo no vlc.

PS2:
As verificações de raiz ruins foram o caminho do Dodo no KDE v19.04.
Quem disse que n evolução era uma coisa ruim.
Para progredir - Saúde!

Feitiçaria
fonte
0

Não é uma solução, mas uma sugestão .... Alterar o Dolphin e os arquivos é bastante arriscado. O Double Commander é uma excelente alternativa e pode ser encontrada no repositório. Ele será instalado sem restrições de raiz. Para ganhar root, basta digitar 'sudo doublecmd' no terminal. Tem muitas vantagens ao trabalhar com arquivos grandes e milhões.

Rob Grune
fonte