Crie um item de menu de contexto: Assumir propriedade de arquivos / pastas

1

Eu quero este comando:

sudo chown $USER -R ./

Para aparecer no meu menu de contexto Nautilus , para que eu possa rapidamente assumir a propriedade dos arquivos.

Isso é possível, já que este é um comando sudo? Se sim, como?

    
por Isa Hassen 11.06.2014 / 15:42

1 resposta

3

Seu script (curto) parece não funcionar como um script nautilus, mas aqui no Ubuntuforums, Eu encontrei um que funciona muito bem. Tem algumas opções mais avançadas, conforme descrito no comentário do poster no Ubuntuforums:

"Nota: Isto é não-recursivo por padrão, então ele só operará na pasta específica e nos arquivos que você selecionou. Se você quiser um comportamento recursivo - descomente a linha" # RECURSIVE = -R; " Ele é deixado de fora como padrão, já que o risco de bagunçar as propriedades é bem grande quando algo assim fica tão fácil. "

Como usar

O script abaixo é copiado sem alteração. Cole-o em um arquivo vazio e salve-o em ~/.local/share/nautilus/scripts (o comentário do script menciona ~/.gnome2/nautilus-scripts , mas parece desatualizado), torne-o executável e, após o logout / in, ele estará disponível no menu de contexto> scripts).

Nota : você precisa instalar o gksu para usá-lo

#!/bin/bash
#Title=Make owned by current user
#Title[se]=Gör nuvarande användare till ägare

# Make owned by current user - Makes the selected files owned by the current user with group 
# being the user's primary group (the first in the output from the "groups" command)

# Installation:
# Put this script into the Nautilus script dir (~/.gnome2/nautilus-scripts) and make it executable.
#
# Usage:
# Right-click on files in Nautilus and choose Scripts -> Make owned by current user
#
# Notes:
# This operates non-recursively by default, so it will only operate on the specific folder and files that 
# you have selected. If you want recursive behavior - uncomment the "#RECURSIVE=-R;" line further down.
# It is left out be default since the risk of messing up ownerships is pretty big when something 
# like this gets so easy. 
#
# Acknowledements and version history:
# v20080131 - Fredrik Wollsén
#
# License GPL v3
#
# Feel free to provide feedback on this script here:
# http://ubuntuforums.org/showthread.php?t=683945
#
# Suggestions for improvements:
#  - Show a zenity dialogue box to dynamically decide whether or not the command 
#    should be run recursively or not.
#  - Show a zenity progress bar for the execution of the command.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

USER='whoami';
GROUP='groups | sed -r 's/ .*//g'';
#RECURSIVE=-R; # Uncomment this to make the ownerships be implemented resursively

# default to a group name identical to the username if a group is not found (is this case even possible? this if-statement could be totally useless - but: better safe than sorry...)
if [ "$GROUP" == "" ] ; then
GROUP=$USER;
fi

gksudo -- chown -v $RECURSIVE $USER:$GROUP "$@"| zenity --text-info --height=100 --width=300;

exit 0;
    
por Jacob Vlijm 11.06.2014 / 22:13