Создать пункт контекстного меню: взять на себя ответственность за файлы / папки

Я хочу, чтобы эта команда:

sudo chown $USER -R ./

появлялась в моем контекстном меню Nautilus , чтобы я мог быстро стать владельцем файлов.

Возможно ли это, так как это команда sudo? Если да, то как?

1
задан 11 June 2014 в 17:50

1 ответ

Ваш (короткий) сценарий, кажется, не делает задание как сценарий наутилуса, но здесь на Ubuntuforums, я нашел тот, который работает вполне приятно. Это имеет еще некоторые расширенные настройки, как описано в комментарии плаката к Ubuntuforums:

"Примечание: Это нерекурсивно по умолчанию, таким образом, это будет только воздействовать на определенную папку и файлы, которые Вы выбрали. Если Вы хотите рекурсивное поведение - не комментируют "#RECURSIVE =-R"; строка. Это не учтено быть значением по умолчанию, так как риск того, чтобы портить владения является довольно большим, когда что-то вроде этого становится настолько легким. "

, Как использовать

, сценарий ниже копируется без изменения. Вставьте его в пустом файле и сохраните его в ~/.local/share/nautilus/scripts (упоминания комментария сценария ~/.gnome2/nautilus-scripts, но это кажется устаревшим), сделайте это, исполняемый файл, и после выходит из системы / в, это будет доступно в контекстном меню (под > scripts).

Примечание : Вам нужен gksu, который будет установлен для использования его

#!/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;
3
ответ дан 11 June 2014 в 17:50

Другие вопросы по тегам:

Похожие вопросы: