Как я могу выполнять сценарии от имени пользователя root, не указывая его местоположение?

Я часто использую sudo arp-scan --localnet --interface wlan0, но считаю, что каждый раз вводить это неудобно. Чтобы ускорить процесс, я создал скрипт под названием arp-lw-scan, который должен сделать это для меня.

Содержимое ~/Scripts/arp-lw-scan:

#!/bin/bash
arp-scan --localnet --interface wlan0

Я добавил ~/Scripts к своему $PATH в ~/.profile, поэтому каждый сценарий в этой папке можно запустить из любого места, просто набрав его имя в терминале.

Тем не менее, у меня возникают проблемы с выполнением arp-lw-scan простым способом, потому что для этого требуется root-доступ. Просто напечатайте arp-lw-scan, находясь в моем домашнем каталоге, выдает ошибку об отсутствии рут прав. Я могу напечатать sudo ~/Scripts/arp-lw-scan, и это работает, но это все еще в значительной степени набирать. Я хочу иметь возможность просто набрать sudo arp-lw-scan для выполнения заданного сценария.

Как мне этого добиться?

0
задан 19 January 2013 в 02:25

1 ответ

Псевдонимы Bash.

Псевдонимы - это ярлыки в командной строке. Обычная оболочка Bash позволяет создавать собственные псевдонимы.

Чтобы попробовать (не сохраняя их навсегда), попробуйте следующее:

alias myalias='gksudo gparted'
myalias

Чтобы сохранить их навсегда, создайте файл ~/.bash_aliases, например:

alias myalias='gksudo gparted'
alias edsources='gksudo gedit /etc/apt/sources.list'

файл ~/.bashrc по умолчанию, установленный для пользователей в Ubuntu, будет источником файла ~/.bash_aliases по умолчанию.

Псевдонимы позволяют вам добавлять больше аргументов и «отменять» текущие команды. Типичным случаем использования этого является

alias rm='rm -i'

Чтобы получить подтверждающее сообщение для всего, что вы пытаетесь удалить с помощью rm.

Если вы хотите «избежать» псевдонима, выполнив оригинальную команду, добавьте к нему обратную косую черту. Итак, в примере rm просто сделайте

\rm myfile

, чтобы удалить файл без опции -i, вызванной псевдонимом.

Текущий скрипт

Что касается вашего текущего подхода, вы должны просто иметь возможность добавить команду в однострочном скрипте с помощью sudo (или gksudo).

0
ответ дан 19 January 2013 в 02:25

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

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