Различные сайты в различных интерфейсах с помощью агрегирования каналов

На основе описаний из страниц справочника для su и sudo Я принял бы следующие вещи.

  1. С тех пор sudo -iu означает, что вход в систему окружает, это было бы эквивалентно su - или su -l .
  2. su без любых изменений аргументов Ваш эффективный идентификатор пользователя, но Вы все еще используете свой оригинал среда и a who am i сообщит, что Вы неподвижны .

выборка sudo страница справочника

-i [command]
        The -i (simulate initial login) option runs the shell specified in
        the passwd(5) entry of the target user as a login shell.  This means
        that login-specific resource files such as .profile or .login will 
        be read by the shell.  If a command is specified, it is passed to 
        the shell for execution.  Otherwise, an interactive shell is 
        executed.  sudo attempts to change to that user's home directory 
        before running the shell.  It also initializes the environment, 
        leaving DISPLAY and TERM unchanged, setting HOME, MAIL, SHELL, 
        USER, LOGNAME, and PATH, as well as the contents of 
        /etc/environment on Linux and AIX systems.  All other environment 
        variables are removed.

Пример

У меня есть учетная запись пользователя, saml с UID 500.

$ egrep "Uid|Gid" /proc/$$/task/$$/status
Uid:    500 500 500 500
Gid:    501 501 501 501

В вышеупомянутом выводе 1-м столбцом является мой реальный UID (uid), и 2-м является мой эффективный UID (euid).

Становление корнем через (su)

$ su

Теперь я - корень, но я все еще поддерживаю свою среду, и мой реальный UID тих 500. Заметьте, что мой euid теперь 0 (корень).

$ egrep "Uid|Gid" /proc/$(pgrep su -n)/task/$(pgrep su -n)/status
Uid:    500 0   0   0
Gid:    501 501 501 501

Однако моя среда тиха saml. Вот один из него переменные среды, $LOGNAME.

$ env | grep LOGNAME
LOGNAME=saml

Становление корнем через (su-) или (sudo-i)

$ su -

С su - или sudo -i мало того, что я изменяю свой эффективный UID на нового пользователя, но я также получаю их файлы, как будто это был вход в систему, и моя среда теперь становится идентичной, как будто я был ими непосредственно вход в систему.

$ egrep "Uid|Gid" /proc/$(pgrep su -n)/task/$(pgrep su -n)/status
Uid:    500 0   0   0
Gid:    501 501 501 501

Однако моя среда теперь root. Та же переменная, $LOGNAME, теперь это установлено с root.

$ env | grep LOGNAME
LOGNAME=root

Таким образом, каково различие?

Хорошо давайте попробуем вышеупомянутое sudo -i и узнайте.

$ sudo -i

Теперь давайте посмотрим на ту же информацию:

$ egrep "Uid|Gid" /proc/$(pgrep su -n)/task/$(pgrep su -n)/status
Uid:    0   0   0   0
Gid:    501 501 501 501

Хорошо одной главной вещью является мой эффективный идентификатор, и реальный идентификатор оба 0 (root) с этим подходом. Переменная среды $LOGNAME то, как будто мы вошли в систему как root.

$ env | grep LOGNAME
LOGNAME=root

Сравнение сред

Если мы включаем количество строк, говорят, что эти 3 метода, возможно, существует некоторая дополнительная информация, которая будет иметься.

$ env > /tmp/

Нас оставляют с этими 3 файлами:

  • - rw-r - r - 1 корень базируются 1999 2 ноября 6:43 sudo_root.txt
  • - rw-r - r - 1 корень базируются 1970 2 ноября 6:44 sudash_root.txt
  • - rw-r - r - 1 корень базируются 4859 2 ноября 6:44 su_root.txt

Уже мы видим, что что-то произошло только с плоскостью su. ENV по 2x размер других.

Количество строк в каждом:

$ wc -l su*
  28 sudash_root.txt
  32 sudo_root.txt
  92 su_root.txt

Нет действительно никакой потребности посмотреть далее на su_root.txt файл. Этот файл содержит большую часть среды пользователя, которая работала su команда. Поэтому давайте посмотрим на другие 2 файла.

Они фактически идентичны за исключением нескольких косметических переменных, такой как $LANG быть немного отличающимся. Одно дымящееся оружие в списке $PATH.

sudo

 PATH=/usr/lib64/ccache:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/brlcad/bin:/root/bin

su -

PATH=/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/brlcad/bin:/root/bin

Как видете sudo -i дает нам некоторую дополнительную защиту путем снятия подозрительных путей, но это также сохраняет наш $DISPLAY и $TERM неповрежденный в случае, если мы отображали GUI к другому местоположению.

Взять aways?

  1. Таким образом, большие устраняют, то, что метод раньше становился корнем sudo -i преимущества перед другими, потому что Вы используете свой собственный пароль, чтобы сделать так, защищая пароль корня от необходимости быть выделенными.
  2. Там регистрируется, когда Вы стали root, по сравнению с загадочно кем-то становление root через su или su -.
  3. sudo -i дает Вам лучший пользовательский опыт по также suпотому что это защищает Ваш $DISPLAY и $TERM.
  4. sudo -i обеспечивает некоторую защиту к системе, когда пользователь стал root, путем ограничения среды, которую им дают.

Что относительно sudo su, Вы даже не обсуждали это?

Я намеренно постарался не приносить это в обсуждение даже при том, что OP спросил об этом, потому что выполнение так будет только запутанных проблема, IMO. Когда Вы работаете sudo su sudo команда маскирует эффекты su и большая часть среды, что Вы добрались бы от постоянного клиента su потерян. Sudo делает свое задание и обеспечивает ограниченную и защищенную среду независимо от того, является ли это sudo su или sudo -i.

Пример

Вот результат sudo su среда выводится:

ls -l /tmp/sudosu_root.txt
-rw-r--r-- 1 root root 1933 Nov  2 14:48 /tmp/sudosu_root.txt

И количество строк:

$ wc -l /tmp/sudosu_root.txt 
31 /tmp/sudosu_root.txt

Это единственные переменные, которые отличаются между a sudo su - и a sudo -i:

$ sdiff /tmp/sudosu_root.txt /tmp/sudo_root.txt  | grep ' |'
USERNAME=saml                             | USERNAME=root
PATH=/usr/lib64/ccache:/sbin:/bin:/usr/sbin:/usr/bin:/usr/brl | PATH=/usr/lib64/ccache:/usr/local/sbin:/sbin:/bin:/usr/sbin:/
MAIL=/var/spool/mail/saml                 | MAIL=/var/spool/mail/root
PWD=/home/saml/tst                        | PWD=/root
SUDO_COMMAND=/bin/su                      | SUDO_COMMAND=/bin/bash
XAUTHORITY=/root/.xauthYFtlL3             | XAUTHORITY=/var/run/gdm/auth-for-saml-iZePuv/datab

Таким образом, как Вы видите там, действительно не большая часть различия между ними. Немного отличающийся $PATH, $SUDO_COMMAND, и $MAIL и $USERNAME единственные различия.

Ссылки

3
10.07.2018, 10:21
2 ответа
[1121991] Связь каналов

  • Вы говорите о [1122429] Связь каналов [1122430]. Однако, это не сделает того, что вы описываете. Такая привязка объединяет 2 сетевые карты вместе, так что они объединяются в единое сетевое устройство, которому затем присваивается один IP-адрес.
  • Маршрутизация
  • Для того, чтобы сделать то, что вы хотите, вам нужно либо сделать это с помощью традиционных правил маршрутизации, настроив все так, чтобы весь трафик, предназначенный для WiFi, проходил через устройство на основе IP-адресов, которые вы хотите отдать предпочтение этому устройству. Все остальное будет маршрутизироваться через шлюз по умолчанию вашей системы (GW) в вашей таблице маршрутизации на сетевую карту Ethernet.
  • ПРИМЕЧАНИЕ:[1122432] Все вышеперечисленное может быть выполнено командами [1122433]route[1122434] и/или [1122435]ip route[1122436].

Пример того, что вы хотите сделать, обсуждается здесь в этом SF Q&A под заголовком: [1122437]Как маршрутизировать различный трафик через различные сетевые интерфейсы (Windows)[1122438]. Признайте, что эти команды показывают, как выполнить установку, используя команду Window [1122439]route[1122440], которая имеет другое переключение командной строки, чем версия Linux. Однако, этот подход является тем, что Вам нужно, поэтому они могут быть адаптированы к команде [1122441]route[1122442], эквивалентной Linux. Однако, команда [1122447] route[1122448] считается устаревшей и поэтому вместо нее следует использовать команду [1122449]ip[1122450] (часть пакетов [1122451]iproute[1122452] или [1122453]iproute2[1122454]).

выдержка [1123007]команда маршрута Linux

В дистрибутивах Linux, основанных на ядрах 2.2.x Linux, команды ifconfig и route работают совместно, чтобы подключить компьютер к сети и определить маршруты между компьютерными сетями. В дистрибутивах, основанных на более поздних ядрах, команды ifconfig и route заменили на iproute2.

  1. О продвинутых методах маршрутизации можно прочитать в этом учебном материале под названием: [1122459]Два маршрута по умолчанию[1122460].

  2. Ссылки

IPROUTE2 Utility Suite Howto

Annex D. Управление IP Route Management

Part 1 - 7 Linux Route Command Examples (How to Add Route in Linux)

Part 2 - 7 Linux Route Command Examples (How to Add Route in Linux)Part 3 - IP Routing: Флаги маршрута в Linux (U - вверх, G - шлюз, H - хост)

2
27.01.2020, 21:23
[1121291]Нет. Сшивка объединяет их в один псевдо-интерфейс и распределяет нагрузку между ними. То, что вы хотите - это своего рода противоположность связи. [12216] Похоже, что то, что вы хотите, больше похоже на то, что обсуждается в [1121797] этом потоке [1121798]. [1121294]
1
27.01.2020, 21:23

Теги

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