Como iniciar o aplicativo como root no Unity Launcher?

81

Principalmente, estou procurando uma maneira de fixar um aplicativo na barra de lançamento do Unity e executá-lo como root.

Atualmente, mesmo se eu iniciar o aplicativo com sudo e fixá-lo após o início, ele será iniciado como usuário atual na próxima vez.

Triste, mas não há opção de menu de contexto "executar como ...".

Atualização : mudei para o gnome3 e agora estou feliz, estou perdendo apenas a pesquisa.

sorin
fonte
Se você conhece o risco de executar aplicativos gráficos como root e ainda deseja continuar, siga a etapa 1 aqui: askubuntu.com/a/118483/41562
edm
Você não entendeu a pergunta, eu sei como usá-la sudoe já a sintonizei. A questão é sobre como criar um atalho para o iniciador do Ubuntu Unity para o aplicativo que eu quero executar como root.
Sorin
Para o lançador de unidades, eu não sei. Mas se você possui um arquivo na área de trabalho e deseja executá-lo como gksu, pode instalar a extensão "nautilus execute".
Aprendiz curioso

Respostas:

89

Se você deseja que o aplicativo sempre seja executado como root

  1. Fixar o aplicativo ao iniciador normalmente.

  2. Localize o arquivo .desktop dos aplicativos que estará em:

    • /usr/share/applications/APPNAME.desktop
    • ~/.local/share/applications/APPNAME.desktop
    • ou em outro lugar, use locate .desktop|grep APPAME
  3. Abrir com o gedit:

    gksudo gedit /usr/share/applications/APPNAME.desktop
    
  4. Então mude a linha

    Exec=APP_COMMAND
    

    para

    Exec=gksudo -k -u root APP_COMMAND
    
  5. Salve 

Este comando também manterá seu ambiente muito útil se você precisar se conectar a outros servidores e usar sua chave privada.

Para adicionar uma opção da lista rápida a 'Executar como root'

Siga as etapas 1, 2 e 3 acima

Se o iniciador atualmente não tiver outras opções da lista rápida, basta anexá-lo ao final do documento

X-Ayatana-Desktop-Shortcuts=Runroot

[Runroot Shortcut Group]
Name=Run as root
Exec=gksudo -k -u root APP_COMMAND
TargetEnvironment=Unity
edm
fonte
51
Por que é tão extremamente complicado definir um atalho simples? O que há de errado com os criadores do ubuntu?
Sliq
7
para gksudocomando, você deve instalarsudo apt-get install gksu
Arul
5
@Sliq é chamado de segurança ... Ter um ícone na área de trabalho que é executado como root sem precisar de uma senha ... é muito perigoso ... Para mim, isso é realmente a alegria do linux ... Se eu quisesse uma vida fácil .. gostaria de estar usando o Windows como meu sistema principal ...
irritado 84
3
@sliq "Por que é tão difícil grep a partir do prompt do cmd? o que há de errado com os criadores do Windows?" - Criadores do Ubuntu ... provavelmente
thenaglecode
3
desatualizado para Ubuntu 18.XX Alguém pode fornecer uma solução atualizada?
JRsz
4

No menu principal, em Sistema, Preferências, digite gksudono campo Comando das Propriedades do iniciador, por exemplo:

/usr/bin/gksudo /usr/bin/yourapplication

O seu campo Nome pode dizer:

sudo yourapplication

Para que os usuários saibam que podem ver um pop-up de senha e por que ...

Não tenho certeza sobre o Unity Launcher vs Menu Principal. Talvez isso ajude?

Boa sorte

boolship
fonte
3
Você provavelmente sabe que o straight sudonão deve ser usado para executar aplicativos gráficos, pois root- afinal, você está usando gksudo(que é uma das boas maneiras). Pelo mesmo motivo, é desaconselhável usar sudono campo de nome da maneira que você usa , pois isso (1) cria a impressão entre usuários suficientemente experientes de que seu iniciador é feito incorretamente e (2) cria a impressão entre usuários menos experientes que não há problema em usar diretamente sudopara executar aplicativos gráficos como root.
Elias Kagan
Unable to locate package gksudo- Ubuntu 18.04.1 LTS
8bitjunkie
2

O seguinte parece fazer a mesma coisa, sem a necessidade de atributos particulares:

Actions=Runroot;Another

[Desktop Action Runroot]
Name=Run as root
Exec=gksudo -k -u root APP_COMMAND

[Desktop Action Another]
Name=Another action
Exec=whatever
Daniel
fonte
Unable to locate package gksudo- Ubuntu 18.04.1 LTS
8bitjunkie
2

Como uma alternativa rápida e simples às demandas complicadas descritas nas respostas aqui, adquiri o hábito de fazer o seguinte ...

  1. Lançar um novo terminal.
  2. Entrar gksu nautilus

    ( sudo -i nautilusfunciona também.)

A janela resultante fica sob o guarda-chuva sudo, para que você possa usá-la para acessar e iniciar arquivos com privilégios sudo-root no conteúdo do seu coração até que ele se feche. Isso é útil para situações transitórias em que você não precisa de uma solução mais permanente. Eu o uso rotineiramente para extrair arquivos compactados em pastas protegidas do sistema, por exemplo.

Syndog
fonte
2
Usar sudocom aplicativos gráficos NÃO é uma boa ideia. Use gksuou se precisar sudo -i.
Seth
2
@ Set: Atualizado. Além disso ... Uma pequena explicação do porquê não seria negligente, em vez de apenas dizer enigmaticamente que não é uma boa ideia.
Syndog
Um segmento interessante sobre o tema: crunchbang.org/forums/viewtopic.php?id=8468
Syndog
1

Estou postando isso em respone para a pergunta @ Chris nos comentários:

Suponha que você deseje criar um iniciador que abra o "gerenciador de arquivos (nautilus)" como root. Então você pode fazer isso:

Terminal aberto. Tipo:

sudo -H gedit /usr/share/applications/nautilus_root.desktop

Pressione Enter. Quando solicitado, digite sua senha de login e pressione Enter. Isso abrirá o gedit (editor de texto). Agora, cole o seguinte lá:

[DesktopEntry]
Encoding=UTF-8
Name=Nautilus(Root)
Comment=FileManager
Exec=gksu nautilus
Icon=file-manager
Categories=System;
Type=Application
Terminal=0

Agora, basta salvar e sair. Você terminou. Agora, se você pesquisar no painel, encontrará um novo iniciador "Nautilus (Root)". Ao clicar aqui, você solicitará a senha e, na autenticação, o nautilus será aberto como root.

Nota: Tenha cuidado ao executar o "Nautilus (Root)". Nesse modo, você pode excluir quase tudo /e interromper o sistema.

Aprendiz curioso
fonte
0

Talvez isso deva ser um comentário sobre a solução de Daniel. Funciona para mim, mesmo no Ubuntu 15.04. Eu tive que colocar o comando entre aspas Exec=gksu "nautilus --new-window"por causa do argumento extra. Além disso, de alguma forma, não sei por que, tive que editar o iniciador diretamente para manter o menu original (junto com a nova opção). Se você arrastar o seu próprio iniciador, ele será registrado, mas você não terá o mesmo menu.

No Ubuntu 15.04, o iniciador do nautilus é usr/share/applications/org.gnome.Nautilus.desktop. Você precisa usar a linha de comando para ver o nome real do arquivo.

Mais pesquisas me levaram ao que acredito ser uma opção melhor: http://ubuntuhandbook.org/index.php/2014/04/ubuntu-14-04-add-open-as-rootadministrator-to-context-menu/ . Em vez de abrir o Nautilus inteiramente como raiz, isso permite abrir diretórios selecionados como raiz no Nautilus. Enfim, eu verifiquei, e essas duas opções são compatíveis. Se você abrir o Nautilus como Root e, em seguida, usar a segunda opção para abrir um diretório como Root, ele simplesmente será aberto sem solicitar a senha.

Dominic108
fonte