Команда отключения eth1?. Команда включения eth1? Не от root

Автор serke7771, 24 февраля 2017, 03:08:00

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

serke7771

Команда отключения eth1?. Команда включения  eth1? Не от root
я знаю про Debian это
https://yadi.sk/d/DvClza40AyT8ag

ogost

Если по умолчанию, то нельзя. Только через sudo/root.
network-manager или wicd умеют не от рута, но как я понял из краткого вопроса - это не то, что вам нужно.

vic5710

#2
SUID на свой страх
SUID

serke7771

#3
Нашёл это.
2. Скрипт для простого управления соединениями:
Открыть содержимое (спойлер)
#!/bin/bash


    ############
    # SETTINGS #
    ############

get_connections_paths()
{
    dbus-send --system --print-reply --dest="$1" "/org/freedesktop/NetworkManagerSettings" "org.freedesktop.NetworkManagerSettings.ListConnections" \
    | grep "object path" | cut -d '"' -f2
}

get_connection_settings()
{
    dbus-send --system --print-reply --dest="$1" "$2" org.freedesktop.NetworkManagerSettings.Connection.GetSettings
}

get_connection_string_setting()
{
    echo "$1" | grep -A 1 \""$2"\" | grep variant | cut -d '"' -f2
}

get_connection_id()
{
    get_connection_string_setting "$1" "id"
}

get_connection_type()
{
    get_connection_string_setting "$1" "type"
}

get_device_type_by_connection_type()
{
    echo "$1" | grep -q "ethernet" && echo 1 && return
    echo "$1" | grep -q "wireless" && echo 2 && return
    echo 0
}

find_connection_path()
{
    for connection_path in `get_connections_paths "$1"`
    do
        connection_settings=`get_connection_settings "$1" "$connection_path"`
        connection_settings_id=`get_connection_id "$connection_settings"`
        [ "$connection_settings_id" = "$2" ] && echo "$1" "$connection_path"
    done
}

find_connection_path_everywhere()
{
    find_connection_path "org.freedesktop.NetworkManagerSystemSettings" "$1"
    find_connection_path "org.freedesktop.NetworkManagerUserSettings" "$1"
}

print_connections_ids()
{
    for connection_path in `get_connections_paths "$1"`
    do
        connection_settings=`get_connection_settings "$1" "$connection_path"`
        connection_settings_id=`get_connection_id "$connection_settings"`
        echo "$connection_settings_id"
    done
}

print_connections_ids_everywhere()
{
    print_connections_ids "org.freedesktop.NetworkManagerSystemSettings"
    print_connections_ids "org.freedesktop.NetworkManagerUserSettings"
}


    ###########
    # DEVICES #
    ###########

get_devices_paths()
{
    dbus-send --system --print-reply --dest="org.freedesktop.NetworkManager" "/org/freedesktop/NetworkManager" "org.freedesktop.NetworkManager.GetDevices" \
    | grep "object path" | cut -d '"' -f2
}

get_device_property()
{
    dbus-send --system --print-reply --dest="org.freedesktop.NetworkManager" "$1" "org.freedesktop.DBus.Properties.Get" string:"org.freedesktop.NetworkManager.Device" string:"$2" \
    | grep variant | awk '{print $3}'
}

get_device_type()
{
    get_device_property "$1" "DeviceType"
}

get_device_path_by_device_type()
{
    device_path_by_device_type="/"
    for device_path in `get_devices_paths`
    do
        device_type=`get_device_type "$device_path"`
        [ "$device_type" = "$1" ] && device_path_by_device_type="$device_path"
    done
    echo "$device_path_by_device_type"
}


    #######################
    # ACTIVES CONNECTIONS #
    #######################

get_actives_connections_paths()
{
    dbus-send --system --print-reply --dest="org.freedesktop.NetworkManager" "/org/freedesktop/NetworkManager" "org.freedesktop.DBus.Properties.Get" string:"org.freedesktop.NetworkManager" string:"ActiveConnections" \
    | grep "object path" | cut -d '"' -f2
}

get_last_active_connection_path()
{
    get_actives_connections_paths | tail -n 1
}

get_parent_connection_path_by_device_type()
{
    parent_connection_path="/"
    [ "$1" = 0 ] && parent_connection_path=`get_last_active_connection_path`
    echo "$parent_connection_path"
}

get_active_connection_property()
{
    dbus-send --system --print-reply --dest="org.freedesktop.NetworkManager" "$1" "org.freedesktop.DBus.Properties.Get" string:"org.freedesktop.NetworkManager.Connection.Active" string:"$2" \
    | grep variant | awk -F '"' '{print $2}'
}

get_active_connection_service()
{
    get_active_connection_property "$1" "ServiceName"
}

get_active_connection_path()
{
    get_active_connection_property "$1" "Connection"
}

get_active_connection_path_by_connection_path()
{
    for active_connection_path in `get_actives_connections_paths`
    do
        service=`get_active_connection_service $active_connection_path`
        path=`get_active_connection_path $active_connection_path`
        [ "$service" = "$1" ] && [ "$path" = "$2" ] && echo "$active_connection_path"
    done
}

print_actives_connections_ids()
{
    for active_connection_path in `get_actives_connections_paths`
    do
        service=`get_active_connection_service $active_connection_path`
        path=`get_active_connection_path $active_connection_path`
        connection_settings=`get_connection_settings "$service" "$path"`
        connection_settings_id=`get_connection_id "$connection_settings"`
        echo "$connection_settings_id"
    done
}


    ##############
    # START/STOP #
    ##############

start_connection()
{
    my_connection_complete_path=`find_connection_path_everywhere "$1"`
    my_connection_settings=`get_connection_settings $my_connection_complete_path`
    my_connection_type=`get_connection_type "$my_connection_settings"`
    my_connection_device_type=`get_device_type_by_connection_type "$my_connection_type"`
   
    my_connection_service=`echo $my_connection_complete_path | awk '{print $1}'`
    my_connection_path=`echo $my_connection_complete_path | awk '{print $2}'`
    my_connection_device_path=`get_device_path_by_device_type "$my_connection_device_type"`
    my_parent_connection_path=`get_parent_connection_path_by_device_type "$my_connection_device_type"`
   
    echo "connection_service=$my_connection_service"
    echo "connection_path=$my_connection_path"
    echo "connection_device_path=$my_connection_device_path"
    echo "parent_connection_path=$my_parent_connection_path"
   
    dbus-send --system --print-reply --dest="org.freedesktop.NetworkManager" /org/freedesktop/NetworkManager "org.freedesktop.NetworkManager.ActivateConnection" string:"$my_connection_service" objpath:"$my_connection_path" objpath:"$my_connection_device_path" objpath:"$my_parent_connection_path"
}

stop_connection()
{
    my_connection_complete_path=`find_connection_path_everywhere "$1"`
    my_active_connection_path=`get_active_connection_path_by_connection_path $my_connection_complete_path`
   
    echo "active_connection_path=$my_active_connection_path"
   
    dbus-send --system --print-reply --dest="org.freedesktop.NetworkManager" /org/freedesktop/NetworkManager "org.freedesktop.NetworkManager.DeactivateConnection" objpath:"$my_active_connection_path"
}


    ########
    # MAIN #
    ########

invalid_arguments()
{
    echo "Usage: `basename "$0"` connexion_name start|stop"
    echo "---Available Connections:"
    print_connections_ids_everywhere
    echo "---Active Connections:"
    print_actives_connections_ids
    exit 0
}

[ "$#" != 2 ] && invalid_arguments

case "$2" in
    "start")
        start_connection "$1"
        ;;
    "stop")
        stop_connection "$1"
        ;;
    *)
        invalid_arguments
        ;;
esac
[свернуть]
Чтобы потом делать так

$ nmcli connection_name start|stop 
включать или выключать

Узнал подключения
$ nmcli connection show

Моё соединение "Wired connection 1"
Смотрел информацию о подключении
$ nmcli connection show "Wired connection 1"
Сохраняем скрипт в текстовый файл, скажем, под именем nmcli
Сохранил  в текстовый файл nmcli.txt









Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.NetworkManagerSystemSettings was not provided by any .service files
Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.NetworkManagerUserSettings was not provided by any .service files
Error org.freedesktop.DBus.Error.AccessDenied: Property "ServiceName" of interface "org.freedesktop.NetworkManager.Connection.Active" isn't exported (or may not exist)
active_connection_path=
process 1965: arguments to dbus_message_iter_append_basic() were incorrect, assertion "_dbus_check_is_valid_path (*string_p)" failed in file ../../dbus/dbus-message.c line 2681.
This is normally a bug in some application using the D-Bus library.
Error org.freedesktop.DBus.Error.UnknownMethod: Method "DeactivateConnection" with signature "" on interface "org.freedesktop.NetworkManager" doesn't exist

После применения  ниже команд получил вышеизложенное
Далее из папки, куда сохранили, делаем:

sudo cp nmcli /usr/local/bin/
sudo chmod ugo+x /usr/local/bin/nmcli




я знаю про Debian это
https://yadi.sk/d/DvClza40AyT8ag

qupl

serke7771, в текущем каталоге нет такого файла/каталога. Смотрите откуда копируете.

serke7771

#5
Скопировал от root. Теперь УСЁ.

http://forum.ubuntu.ru/index.php?topic=81009.msg1730411#msg1730411

Вот это.

Cообщение объединено 24 Февраля 2017, 15:21:30

Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.NetworkManagerSystemSettings was not provided by any .service files
Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.NetworkManagerUserSettings was not provided by any .service files
Error org.freedesktop.DBus.Error.AccessDenied: Property "ServiceName" of interface "org.freedesktop.NetworkManager.Connection.Active" isn't exported (or may not exist)
active_connection_path=
process 1965: arguments to dbus_message_iter_append_basic() were incorrect, assertion "_dbus_check_is_valid_path (*string_p)" failed in file ../../dbus/dbus-message.c line 2681.
This is normally a bug in some application using the D-Bus library.
Error org.freedesktop.DBus.Error.UnknownMethod: Method "DeactivateConnection" with signature "" on interface "org.freedesktop.NetworkManager" doesn't exist

Cообщение объединено 24 февраля 2017, 15:25:39

Просто нужна команда отключения сети в GNOME, чтобы мышкой не щелкать на значке "Сеть" и выбирать "Выключить"
я знаю про Debian это
https://yadi.sk/d/DvClza40AyT8ag


Aalexeey

#7
Правый клик на значке NM на панели и снять галочку с "Управление сетью" после этого интернет отключится на всех соединениях, если соединение WiFi и только его надо отключить то снять галочку с "Беспроводные соединения".
Цитата: ogost от 24 февраля 2017, 04:07:01network-manager или wicd умеют не от рута, но как я понял из краткого вопроса - это не то, что вам нужно
Вот вот, похоже на мне надо потому что гладиолус, но вы помогите  ;D, я так понял нужны команды которые выполняются NM во время этих нажатий. Я так когдато искал команды Caja для извлечения USB, безрезультатно, на то оно и GUI.
Думаю если существует приложение которое мониторит и показывает код который выполняется для например NM или др. то может что и получится.
https://debianforum.ru/index.php?topic=6879 100% защиты от "Ааааа у меня всё поломалось"

serke7771

#8
Пошёл играть в http://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/palisade.html
с параметрами
Width 4
Height 3
Region size 3
пример 4x3n3:f3a2a3 (вставлять в "Enter game ID")
Ибо это спасение от мук. :'(
я знаю про Debian это
https://yadi.sk/d/DvClza40AyT8ag

qupl

Цитата: serke7771 от 25 февраля 2017, 02:31:01
Пошёл играть в http://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/palisade.html
с параметрами
Width 4
Height 3
Region size 3
пример 4x3n3:f3a2a3 (вставлять в "Enter game ID")
Ибо это спасение от мук. :'(
Это юмор? Тема актуальна?