Como posso adicionar um script ao nautilus para executar o arquivo selecionado como administrador (não abrir como administrador)? E, se possível, desejo executar este arquivo como administrador sem inserir minha senha.
Como posso adicionar um script ao nautilus para executar o arquivo selecionado como administrador (não abrir como administrador)? E, se possível, desejo executar este arquivo como administrador sem inserir minha senha.
Respostas:
Você precisa fazer o seguinte, no tipo de terminal sudo visudo
e adicionar uma linha como esta no final do arquivo, especificando os comandos que deseja executar sem digitar a senha do sudo:
<yourusername> hostname=NOPASSWD: <command1>, <command2>
Agora você pode executar os comandos especificados sem senha, desde que você digite esse comando sudo
.
ou seja: permite que você queira executar shutdown -r now
sem precisar digitar a senha sudo toda vez e seu nome de usuário é 'joedoe'
digite sudo visudo
em um terminal
Adicione joedoe hostname=NOPASSWD: shutdown -r now
como uma nova linha no final do arquivo
no seu script, você pode usá-lo sudo shutdown -r now
sem precisar digitar a senha do sudo.
Para criar um script, use seu editor favorito para criar um <nameofyourscript>.sh
com o conteúdo:
#! /bin/bash
sudo <commandsyouwanttorun1>
<commandsyouwanttorun2>
sudo<commandsyouwanttorun3>
Use o sudo para chamar comandos que precisam, pois ele não pedirá senha desde que você a tenha adicionado na NOPASSWD: <commmand1>, <command2>, etc
linha visudo
.
Depois que você precisa para torná-lo executável com: sudo chmod 755 <nameofyourscript>.sh
.
Agora você pode executar seu script usando sh <nameofyourscript>.sh
um terminal, clicando duas vezes nele e selecionando run
na caixa de diálogo ou colocando-o no seu, ~/.gnome2/nautilus-scripts/
que estará disponível no seu scripts
menu quando você clicar com o botão direito do mouse no nautilus:
Para criar um script que abra arquivos usando permissões de administrador, clique com o botão direito do mouse neles e faça com que nenhuma senha seja solicitada para criar um script com o seguinte:
#! /bin/bash
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do
gksudo "gnome-open $file" &
done
Salve no seu ~/.gnome2/nautilus-scripts/
, torne-o executável com sudo chmod 755 ~/.gnome2/nautilus-scripts/<nameofyourscript>.sh
, sudo visudo
adicione a linha <yourusername> ALL=NOPASSWD: /usr/bin/gnome-open
e salve o arquivo.
Você deve poder clicar com o botão direito do mouse em um arquivo, ir para sua pasta de scripts e selecionar o script que você acabou de criar para abrir esse arquivo usando permissões de raiz. gnome-open
manipulará o tipo de arquivo da melhor maneira possível.
Os scripts do Nautilus geralmente devem ser colocados $HOME/.gnome2/nautilus-scripts/
e precisam ser executáveis. Dito isto, o script a seguir deve fazer o que você deseja:
#!/bin/bash
IFS='
'
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do
gksudo -k "sh -c 'chmod +x $file; $file'"
done
Você pode acessar esse script do nautilus clicando com o botão direito do mouse no arquivo, passando o mouse sobre o menu de script e, em seguida, clicando no nome do arquivo do script em $HOME/.gonme2/nautilus-scritps/
. Você ainda precisa digitar sua senha.
Não existe uma maneira segura de fazer isso com arquivos arbitrários sem inserir sua senha. Para comandos especiais, o processo é descrito no post de brunopereira81 aqui e usa o sudo, mas dependendo dos comandos levará a um sistema vulnerável. Se você não se importa (e eu aconselho fortemente isso), você pode definir ALL
comandos para usar NOPASSWD
e substituir gksudo
apenas sudo
.
Você pode usar esta extensão do Nautilus. Nautilus-gksu .
sudo apt-get install nautilus-gksu
A instalação adiciona uma entrada 'Abrir como administrador' no menu de atalho do nautilus.
Quando você precisar abrir qualquer arquivo com permissão root, basta clicar com o botão direito do mouse no arquivo, selecionar 'Abrir como administrador', simples assim.
Para extensões mais interessantes, visite: http://www.techdrivein.com/2010/09/6-useful-nautilus-extensions-and.html
"gksudo "gnome-open $file" &"
para"gksudo "gnome-terminal -x $file" &"