Iniciar o Terminal com Comando; Então vá para Bash Shell

1

Por meio de um atalho na área de trabalho, um administrador iniciará um shell como outro usuário. O usuário deve entrar no shell sem privilégios elevados, mas executar o primeiro comando com privilégios elevados. No final, o usuário deve estar no shell não privilegiado que é mantido aberto para uso posterior.

Como faço isso?

Pergunta Editada para Resposta WIP.

Último teste:

gksudo "gnome-terminal --execute bash -c 'boss "apt-get update"; bash'"

Não funciona.

O que se segue é a resposta, graças a Laurent ajudando-me a debater. Infelizmente minha situação era muito sofisticada para eu expressar bem.

Eu tenho um usuário administrador que nunca fica on-line. Ele usa usuários de proxy para buscar as coisas e fazer seus lances. O usuário chamado update está no arquivo sudoers e tem permissão para apt-get com o NOPASSWD. admin quer um atalho que leve a um gnome-terminal que chama automaticamente o apt-get update na execução porque o admin quer instalar algo logo depois disso, algo que não pode ser previsto para ser colocado em um script. As atualizações automáticas não funcionarão para o administrador, porque o administrador está protegido contra incêndios da Internet e é forçado a contratar capangas para atualizações do sistema e buscar outros downloads.

Obrigado Laurent por me levar à resposta certa! Aqui está:

gksudo -u update "gnome-terminal --execute bash -c 'sudo apt-get update;bash'"
    
por cxx6xxc 23.12.2012 / 13:15

1 resposta

7

Você precisa fazer o lançador usando isto:

gksudo "gnome-terminal --execute bash -c 'apt-get "update"; bash'"

Edite após a definição de não abrir o terminal como root (para deixá-lo em privilégios não elevados depois de executar o comando:

gnome-terminal --execute bash -c "sudo apt-get 'update';bash"

Dessa forma, o terminal abrirá, solicitará a senha (se necessário) e continuará.

Obs: se seu comando não precisar de sudo , apenas remova-o do comando. Eu usei o gksudo na primeira resposta porque o seu exemplo foi usá-lo, então achei que era necessário para todo o processo (e deixar o terminal em privilégios elevados).

O lançador funcionará, mas o primeiro pedirá a senha na GUI e executará todo o processo como sudo deixando o terminal aberto no "modo sudo" e o segundo ativador abrirá o terminal, solicitará a senha lá, executará o comando como sudo e sairá terminal em "modo de usuário".

Você pode editar sudo (com visudo ) para fazer com que ele use sudo sem senha (e talvez restringir este usuário a executar apenas alguns comandos, se não apenas este), mas essa não é a coisa mais recomendada.

Se você puder dar mais informações sobre o que está tentando fazer, talvez exista uma maneira diferente de fazer isso? (pode ser melhor ... ou pior ... claro :))

    
por laurent 23.12.2012 / 14:05