7

У меня есть несколько сетевых сценариев, которые я использовал под OS X Lion, которые автоматически создавали ssh-соединение, а затем меняли конфигурацию сети на моем локальном компьютере, чтобы пропускать трафик через ssh-туннель. Я изменил конфигурацию сети с помощью этих команд оболочки:

networksetup -setsocksfirewallproxy "Wi-Fi" localhost ####

networksetup -setsocksfirewallproxystate "Wi-Fi" on

Теперь, под Mountain Lion, он запрашивает пароль для обоих при каждом запуске скрипта, что очень раздражает. Есть ли способ, чтобы он запомнил пароль, или обойти его, или просто вставил его в первый раз и запомнил?

4 ответа4

4

Убедитесь, что ваши скрипты имеют права доступа и владельца. Это должен быть root:wheel вроде этого (wifi - это имя скрипта):

lion:~/Downloads napcae$ ls /usr/local/bin/
-rwxr-xr-x  1 root      wheel       739 25 Nov 18:35 wifi

Вы можете добиться этого, набрав

lion:~/Downloads napcae$ sudo chown root:wheel wifi

Теперь вы можете выполнять команды в сценарии, т.е.

sudo networksetup -setnetworkserviceenabled "Huawei Modem" on;

Терминал /Finder должен прекратить запрашивать пароль. Надеюсь, это поможет.

1

У меня была та же проблема, вместо этого я использовал сервис для переключения состояния прокси, нажав клавишу быстрого доступа.

После того, как вы закончили копирование настройки сети в NewNetConfig и отредактировали /etc /sudoers, создайте новую службу в Automator с именем "ChangeWiFiProxy". Добавьте сценарий оболочки и добавьте этот сценарий:

STATUS=`NewNetConfig -getsocksfirewallproxy Wi-Fi | grep -c 'Enabled: Y'`
if   [ "$STATUS" == "0" ] ; then
    sudo NewNetConfig -setsocksfirewallproxystate Wi-Fi on
say on
else
    sudo NewNetConfig -setsocksfirewallproxystate Wi-Fi off
    say off
fi

Затем назначьте ему ярлык, например Cmd + Option + ";" в «Системные настройки> Клавиатура> Сочетания клавиш> Службы».

1

не уверен, что это правильный способ сделать это с точки зрения безопасности, но он работает:

1) Скопируйте networksetup в /usr /sbin / в другой файл (таким образом, все другие сервисы, использующие его, продолжат запрашивать пароль при запуске):

sudo cp /usr/sbin/networksetup /usr/sbin/NewNetConfig

2) Добавьте эту строку в ваш файл sudoers, чтобы пропустить пароль при вызове NewNetConfig:

username   ALL=NOPASSWD: /usr/sbin/NewNetConfig

3) Перезагрузка. Затем используйте это, чтобы изменить конфигурацию вашей сети, и он не должен запрашивать пароль:

sudo NewNetConfig -setsocksfirewallproxy "Wi-Fi" localhost ####
0

Вы можете установить suid для разрешения /usr/sbin/networksetup и тогда networksetup будет работать с правами суперпользователя, поэтому вам больше не нужно вводить пароль.

sudo chmod u+s /usr/sbin/networksetup

О suid: http://www.linuxnix.com/2011/12/suid-set-suid-linuxunix.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .