Автор Тема: Как отключить автоматическое подключение к интернету до входа пользователя?  (Прочитано 3498 раз)

Оффлайн Maxik

  • Давно тут
  • **
  • Сообщений: 288
    • Вегетарианское сообщество сурового климата.
    • Email
Здравствуйте!
Как отключить автоматическое подключение к интернету до входа пользователя?
Используется Альт Рабочая станция 9.1.
С уважением, Максим.

Оффлайн Александр Ерещенко

  • Завсегдатай
  • *
  • Сообщений: 1 153
Здравствуйте!
Как отключить автоматическое подключение к интернету до входа пользователя?
Используется Альт Рабочая станция 9.1.
Начать с полного описания задачи.
Как сейчас осуществляется подключение к инету на данном компьютере?

Оффлайн reiss

  • Давно тут
  • **
  • Сообщений: 205
Начать с полного описания задачи.
Зачем?
Как отключить автоматическое подключение к интернету до входа пользователя?
Ежели рабочая станция не в домене, перенеси network из /etc/rc.d/rc3.d в /etc/rc.d/rc5.d
По идее должно быть счастье
« Последнее редактирование: 14.07.2021 08:05:00 от reiss »

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Как отключить автоматическое подключение к интернету до входа пользователя?

Проводное?

Оффлайн reiss

  • Давно тут
  • **
  • Сообщений: 205
Проводное?
Кстати да. Можно без всяких заморочек вытащить шнур или выключить ви-фи роутер.

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 031
  • ITS
#!/bin/bash

#IP_шлюз_c интернетом
GW1=192.168.0.1

#IP_шлюз_без интернета
GW2=192.168.0.2

# ...
# а условие первого входа пусть знающие пацаны помогут написать
# ...

/sbin/ip route change default via $GW1
ip route flush cache
# ...
/sbin/ip route change default via $GW2
ip route flush cache
   
 

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Отключение автоконнекта wifi в системе с NetworkManager

- Как на скриншоте снять маркер с опции Подключаться автоматически и сохранить.
  В файле /etc/NetworkManager/system-connections/ваше_wifi_соединение в секции [connection] появится опция=параметр autoconnect=false

- Перезапустить сервис NetworkManager.
  В системах на sysvinit:
# /etc/rc.d/init.d/NetworkManager restart

- Для подключения к точке доступа:
  Щёлкнуть по аплету NetworkManager в панели задач.
  В выпавшем списке точек доступа, щёлкнуть по имени своей точки доступа.
  Через пару секунд соединение поднимется.

Отключение autoconnect устанавливается глобально для этого настроенного соединения для всех пользователей.

В xfce-sysv установка и отключение соединения разрешается только группе wheel.
Также в xfce-sysv допускается создание рулеза для подключения/отключения к точке доступа для группы _nmconnect
# cat /etc/polkit-1/rules.d/60-sysvinit-nm-nmconnect.rules
polkit.addRule(function(action, subject) {
    if (subject.isInGroup("_nmconnect") && (action.id.indexOf("org.freedesktop.NetworkManager.network-control") == 0 )) {
        return polkit.Result.YES;
    }
});

после создания системной группы _nmconnect
# groupadd -r _nmconnect

с добавлением в группу _nmconnect пользователей, которым разрешено подключаться/отключаться к точке доступа
# gpasswd -a tester _nmconnect


Разрешения для действия в системах на systemd
# sed -n '481p; 512p; 563,568p' /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
  <action id="org.freedesktop.NetworkManager.network-control">
    <description xml:lang="ru">Разрешить контроль сетевых подключений</description>
    <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>


См. также:
[sisyphus] Еще раз о технологической нейтральности и съемных носителях
https://lists.altlinux.org/pipermail/sisyphus/2013-July/361036.html
« Последнее редактирование: 16.07.2021 15:57:05 от Speccyfighter »

Оффлайн Александр Ерещенко

  • Завсегдатай
  • *
  • Сообщений: 1 153
Не надо торопиться ответить на тот вопрос, который не задан. :)))
Топикстартер так и не ответил, как именно у него организован доступ в интернет.

Оффлайн Maxik

  • Давно тут
  • **
  • Сообщений: 288
    • Вегетарианское сообщество сурового климата.
    • Email
Здравствуйте!
Как отключить автоматическое подключение к интернету до входа пользователя?
Используется Альт Рабочая станция 9.1.
Начать с полного описания задачи.
Как сейчас осуществляется подключение к инету на данном компьютере?
Подключается через NetworkManager 1.8.24. Если после загрузки системы не логиниться в графическом интерфейсе, а нажать ctrl+alt+f2. Зайти без графического интерфейса и набрать ifconfig, выводится, что подключение к интернет осуществлено.
Т.е. получается при загрузке системы происходит подключение к интернету.
Как его отключить? Что бы подключение было только в графическом интерфейсе через Network Manager?

« Последнее редактирование: 17.07.2021 19:21:07 от Maxik »
С уважением, Максим.

Оффлайн Koi

  • alt linux team
  • ***
  • Сообщений: 1 893
  • валар дохаэрис
    • Канал на youtube
Я бы попробовал сначала выключить автозагрузку сервисов NetworkManager, а потом добавил из запуск при входе в DE.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Подключается через NetworkManager 1.8.24.

Подключение проводное или беспроводное?

Если после загрузки системы не логиниться в графическом интерфейсе, а нажать ctrl+shift+f2. Зайти без графического интерфейса и набрать ifconfig, выводится, что подключение к интернет осуществлено.
Т.е. получается при загрузке системы происходит подключение к интернету.

Изучить что такое инициализация системы, что такое сервисы, как они работают в системе на systemd|sysvinit и что такое уровни выполнения. Т.е. заняться изучением администрирования системы.

Как его отключить? Что бы подключение было только в графическом интерфейсе через Network Manager?

И как вы себе это представляете, чтобы система находилась на втором и пятом runlevel одновременно?

# cat ./tty5.txt
~                                                                                                                                                                         
~                                                                                                                                                                         
~                                                                                                                                                                         
~                                                                                                                                                                         
RUNLEVEL(8)                                                      Linux System Administrator's Manual                                                      RUNLEVEL(8)     
                                                                                                                                                                         
NAME                                                                                                                                                                     
       runlevel -- find the previous and current system runlevel.                                                                                                         
                                                                                                                                                                         
SYNOPSIS                                                                                                                                                                 
       runlevel [utmp]                                                                                                                                                   
                                                                                                                                                                         
DESCRIPTION                                                                                                                                                               
       Runlevel  reads  the system utmp file (typically /var/run/utmp) to locate the runlevel record, and then prints the previous and current system runlevel on its     
       standard output, separated by a single space. If there is no previous system runlevel, the letter N will be printed instead.                                       
                                                                                                                                                                         
       If no utmp file exists, or if no runlevel record can be found, runlevel prints the word unknown and exits with an error.                                           
                                                                                                                                                                         
       Runlevel can be used in rc scripts as a substitute for the System-V who -r command.  However, in newer versions of init(8) this information is also  available     
       in the environment variables RUNLEVEL and PREVLEVEL.                                                                                                               
                                                                                                                                                                         
OPTIONS                                                                                                                                                                   
       utmp   The name of the utmp file to read.                                                                                                                         
                                                                                                                                                                         
SEE ALSO                                                                                                                                                                 
       init(8), utmp(5)                                                                                                                                                   
                                                                                                                                                                         
AUTHOR                                                                                                                                                                   
       Miquel van Smoorenburg, miquels@cistron.nl                                                                                                                         
                                                                                                                                                                         
                                                                             May 27, 1997                                                                 RUNLEVEL(8)     
[root@comp ~]#                                                                                                                                                           
[root@comp ~]# who -r                                                                                                                                                     
         run-level 5  Jul  8 21:14                   last=S                                                                                                               
[root@comp ~]#                                                                                                                                                           
[root@comp ~]# tty                                                                                                                                                       
/dev/tty5                                                                                                                                                                 
[root@comp ~]#                                                                                                                                                           
[root@comp ~]# runlevel                                                                                                                                                   
N 5                                                                                                                                                                       
[root@comp ~]# chkconfig --list NetworkManager                                                                                                                           
NetworkManager  0:off   1:off   2:off   3:on    4:on    5:on    6:off                                                                                                     
[root@comp ~]#                                                                                                                                                           
[root@comp ~]# grep '^Wants\|^After\|^Before' /lib/systemd/system/NetworkManager.service                                                                                 
Wants=network.target                                                                                                                                                     
After=network-pre.target dbus.service network.service                                                                                                                     
Before=network.target                                                                                                                                                     
[root@comp ~]#                                                                                                                                                           

В альтовых системах на sysvinit
runlevel 2: multiuser, без графики, несетевой
runlevel 3: multiuser, без графики, сетевой
runlevel 5: multiuser, графический, сетевой


Текущее состояние соединений
$ nmcli c show
NAME                UUID                                  TYPE      DEVICE
Wi-Fi=1             xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  wifi      wlan1 
Wired connection 1  yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy  ethernet  --     

Отключение соединения с точкой доступа
$ nmcli connection down Wi-Fi=1
Connection 'Wi-Fi=1' successfully deactivated ...

Подключение к точке доступа
$ nmcli c up Wi-Fi=1
Connection successfully activated ...

При этом подключение|отключение происходит глобально и независимо от того, где находится в этот момент пользователь, в графической сессии или в tty:
$ LC_ALL=C nmcli connection down Wi-Fi=1
Connection 'Wi-Fi=1' successfully deactivated ...

# tail -n 10 ./tty5.2.txt
[root@comp ~]# nmcli c show                                                                                                                                               
NAME                UUID                                  TYPE      DEVICE                                                                                               
Wi-Fi=1             xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  wifi      wlan1                                                                                                 
Wired connection 1  yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy  ethernet  --                                                                                                   
[root@comp ~]#                                                                                                                                                           
[root@comp ~]# nmcli c show                                                                                                                                               
NAME                UUID                                  TYPE      DEVICE                                                                                               
Wi-Fi=1             xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  wifi      --                                                                                                   
Wired connection 1  yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy  ethernet  --                                                                                                   
[root@comp ~]#                                                                                                                                                           

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Я бы попробовал сначала выключить автозагрузку сервисов NetworkManager, а потом добавил из запуск при входе в DE.

Угу. И connection up появится и в tty. :-)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Я бы попробовал сначала выключить автозагрузку сервисов NetworkManager, а потом добавил из запуск при входе в DE.

Угу. И connection up появится и в tty. :-)

Фишка в том, что Maxik и сам не понимает чего просит. :-)
autoconnect TRUE задан умолчанием, параметром дефолт-профайла, который явно не задан в конфигурации, но уже существует как autoconnect=true (см. man nm-settings).
Теоретически, autoconnect можно держать в false, а поднимать соединение, автостартом на входе в X-сессию. Но после поднятия соединения, connection up будет и в tty. Не играет роли, откуда поднимать|отключать соединение на сетевом уровне, через nm-аплет в X-сах или командой nmcli с опциями в tty. Соединение будет подниматься|отключаться и там и сям.

Невзирая на то что входа в X-сессию ещё нет и nm-аплет не запущен, соединение уже поднято умолчальным autoconnect=true дефолт-профайла:
# head -n 11 ./tty5.3.txt
                                                                                                                                                                         
Welcome to ALT p9 starter kit (Hypericum) / tty5                                                                                                                         
comp login: root                                                                                                                                                         
Password:                                                                                                                                                                 
Last login: Sat Jul 17 17:02:39 +03 2021 on tty6                                                                                                                         
[root@comp ~]# nmcli c show                                                                                                                                               
NAME                UUID                                  TYPE      DEVICE                                                                                               
Wi-Fi=1             xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  wifi      wlan1                                                                                                 
Wired connection 1  yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy  ethernet  --                                                                                                   
[root@comp ~]# who                                                                                                                                                       
root     tty5         Jul 17 17:07                                                                                                                                       
# grep autoconn /etc/NetworkManager/system-connections/Wi-Fi\=1.nmconnection
#autoconnect=false
« Последнее редактирование: 17.07.2021 17:21:53 от Speccyfighter »

Оффлайн Maxik

  • Давно тут
  • **
  • Сообщений: 288
    • Вегетарианское сообщество сурового климата.
    • Email
Подключение проводное или беспроводное?
Проводное.
С уважением, Максим.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
По-идее у вас в системе уже должна быть системная группа xgrp.
Можно держать в autoconnect=false, а в автозапуске приложений на входе в сессию, отрабатывать через nmcli подключение. Но я не знаю, при подключении, требует ли у вас в системе на systemd пароль. Выяснить экспериментально, отключая и подключая через nmcli. Если требует, можно написать рулез аналогичный тому что выше, но не для группы _nmconnect, а для группы xgrp, для беспарольного подключения. С условием, что пользователь должен быть в группе xgrp.

Держать сервис NetworkManager выключенным, нерезонно. Его запуск требует рутовых прав. И через sudo поднимать сервис тоже не резон. Потому шо sudo по-умолчанию для wheelonly. А выкручивать в public, это очень плохая идея. Здесь должно быть выкручено так, чтобы disconnect|connect не требовал повышения прав.