Перезапустить сеть с помощью команды без необходимости предоставления пароля

Беспроводная сеть на моем ноутбуке Dell уходит много раз, когда возобновляется с «suspend». Как только я запустил перезагрузку «sudo service network-manager restart», он начинает работать.

Мне было интересно, есть ли способ перезапустить сеть при возобновлении с приостановки и только если беспроводная сеть не была вверх! Какой бы лучший способ перезапустить сеть, не вводя пароль?

Я не хочу вручную делать это, перейдя к значку сети, а затем выполняя некоторые действия с мышью. У меня скорее была команда, которую я мог бы создать как ярлык. Я попытался создать исполняемый файл bash с реестром «service network-manager restart» и установить setuid на исполняемый файл, а также дать ему право владеть им, но это не сработало.

У меня Ubuntu 14.04 Trusty OS .

1
задан 22 September 2015 в 18:10

3 ответа

Вы можете внести изменения в sudoers, чтобы позволить вашей учетной записи пользователя выполнять необходимые команды без пароля.

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

Открыть sudo visudo В разделе, озаглавленном «Спецификация псевдонима Cmnd», добавить
Cmnd_Alias NETWORK = /usr/sbin/service network-manager restart
NETWORK - это просто псевдоним для группы команд. Дайте ему другое имя, если вы предпочитаете! В конце файла добавьте оператор
user_name ALL = (ALL) NOPASSWD: NETWORK
, где вы подставляете свою учетную запись пользователя для user_name. Также замените NETWORK на любое имя, присвоенное псевдониму. Можно также обойтись без псевдонима и просто заменить его командой, но я предпочитаю его таким образом. Я нахожу, что он держит вещи более организованными. Сохраните файл и выйдите из редактора. Проверьте с помощью sudo -l, что теперь вам действительно разрешено выдавать команду.

Вам все еще нужно добавить команду с помощью sudo, но вам больше не будет предложено ввести пароль.

5
ответ дан 23 May 2018 в 17:15

Еще одна возможность - использовать интерфейс командной строки Network Manager (это не так «сильно», как перезапуск демона, но это сработало для меня). В этом случае операция точно такая же, как если бы вы взаимодействовали с апплетом, поэтому вам не нужны никакие привилегии.

Чтобы перезапустить интерфейс wifi, используйте этот код:

nmcli nm wifi off
sleep 5
nmcli nm wifi on

У меня были аналогичные проблемы с удалением сети (это был ошибочный маршрутизатор в моем случае), поэтому я использовал это скрипт добавлен в интерфейс командной строки Network Manager :

#!/bin/bash
PINGTEST=192.168.1.1 # my router, change here. google.com should work anytime ;-)
while /bin/true; do
    if ! [ "$(ping -c 1 $PINGTEST)" ]; then
        echo "Warning: connection lost at $(date) -- restart" 1>&2  
        nmcli nm wifi off
        sleep 5
        nmcli nm wifi on
        sleep 60
        if ! [ "$(ping -c 1 $PINGTEST)" ]; then
             echo "Waiting for connection going up at $(date)" 1>&2
             sleep 60
        else 
             echo "Connection on at $(date)" 1>&2
        fi
#    else
#        echo "Connection OK on $(date)" 1>&2
    fi
sleep 60
done

он проверяет соединение каждую минуту, и если он не работает, он перезапускает Wi-Fi.

Если этого недостаточно, вам, вероятно, придется использовать более сильное оружие, например, запуск / остановка Network Manager. Даже то, что когда-то терпит неудачу, и я должен прибегнуть к выгрузке (sudo rmmod), а затем перезагрузить (sudo modprobe) модуль драйвера карты Wi-Fi.

5
ответ дан 23 May 2018 в 17:15
  • 1
    В некоторых случаях я могу успешно использовать «nmcli nm wifi on», а иногда мне приходится перезапускать сетевой менеджер! :( – Champ 29 September 2015 в 21:27
  • 2
    @ Champ да, это происходит. Я добавил примечание об этом в ответ. ath9k когда-то так запутался, что вам нужно удалить / перезагрузить его ... – Rmano 29 September 2015 в 21:45

Вы должны добавить что-то похожее на это:

YourUserName ALL=NOPASSWD: service network-manager restart

в файл / etc / sudoers и сможете перезапустить сетевой менеджер со своим скриптом.

2
ответ дан 23 May 2018 в 17:15

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

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