Коммуникация к устройству потеряна, когда сеть запускается на, загружаются?

Из сообщения ubuntuforums я сделал только что:

Рассмотрите следующий эксперимент:

applic@ion:~% sudo su
[sudo] password for applic:
root@ion:/home/applic# env > /tmp/sudo_su_env
root@ion:/home/applic# exit
exit
applic@ion:~% sudo -s
applic .bashrc read...
root@ion:~% env >/tmp/sudo_s

Вот различия, которые я нашел:

С sudo -s:

HOME=/home/applic
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
reads $USER's ~/.bashrc

С sudo su:

HOME=/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
reads /etc/environment
reads /root/.bashrc

Заметьте различие в $HOME. Быть корнем и наличие $HOME набор в дом обычного пользователя может вызвать проблемы. Например, если Вы запускаете графическое приложение, обычный пользователь ~/.Xauthority может быть перезаписан корнем. Это вызывает проблемы обычного пользователя позже, такие как неспособность запустить определенные графические приложения через крон.

Подводить итог:

                                     corrupted by user's 
        HOME=/root  uses root's PATH     env vars
sudo -i     Y       Y[2]                 N
sudo -s     N       Y[2]                 Y
sudo bash   N       Y[2]                 Y
sudo su     Y       N[1]                 Y
  1. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games вероятно, установленный /etc/environment
  2. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

Нижняя строка sudo -i надлежащая команда должна работать, когда Вы хотите корневую оболочку, которая не испорчена средой пользователя.

1
02.07.2017, 17:40
1 ответ

"Главным образом я должен знать, что различие между получением интерфейса eth0 впервые после начальной загрузки без сети и перезапуском сети, чтобы повторно получить интерфейс eth0 после один раньше ранее устанавливалось. Код работает на последнего".

Прежде чем Вы приблизитесь к нему тот путь, исключите интриги высокого уровня сетевой сервис ("NetworkManager"). Я всегда отключаю его и просто засовываю команды в процесс начальной загрузки в некоторой соответствующей точке (например, ifconfig eth0 up && dhclient eth0), затем вручную запустите другие простые скрипты для переключения от eth до Wi-Fi и т.д., NetworkManager является гигантским разветвителем автоматизации, которая несомненно очень полезна, если Вы не знаете то, что "интерфейс" или является ведущим вокруг с ноутбуком, пытающимся перемещаться через сети Wi-Fi, но если Вы предпочитаете просто включать и выключать вещи самостоятельно, это может сделать раздражающий и таинственный выбор. Я признаюсь никогда учившийся, как настроить его по предпосылке, что инструмент высокого уровня, который более трудно использовать для выполнения определенной задачи, чем низкоуровневые инструменты, которыми это "управляет", не соответствующий инструмент в контексте той задачи.

В случае, если это не ясно:

когда я отключаю сеть, или ненастраиваю интерфейс или делаю sudo/etc/init.d/networking перезапуск

/etc/init.d/networking подразумевает .deb систему (.rpm использование /etc/init.d/network). Отключите это (и/или соответствующий новомодный сервис на системы, которые используют выскочку), таким образом, он не работает при начальной загрузке и заменяет его с любыми простыми командами, необходимо получить доступ сети где-нибудь поздно в процессе начальной загрузки. Если это существует, я также комментирую все в /etc/network/interfaces кроме lo.

Я обычно не рассматривал бы этот хороший совет раздать другим пользователям, но Ваша проблема мне просто кричит, "betcha, которым случается так, что гигантский разветвитель" - который действительно необходимо исключить это, прежде чем Вы посмотрите позади него.

0
28.01.2020, 02:07
  • 1
    Спасибо за Ваш ответ. Я войду в этого ASAP. Вопрос: что, если я только пытаюсь стать включения - выключения сеть. Я хочу смочь позволить интерфейсу быть найденным автоматически в случае DHCP. Таким образом, было бы хорошо иметь NetworkManager, работающий в начале, пока это не испытывает таймаут, согласно dhclient. То, где проблема действительно совершает нападки, в случае маршрутизатора Cisco по сравнению с Netgear. Cisco занимает приблизительно 2 минуты для начальной загрузки, который намного длиннее, чем она берет машину для начальной загрузки. Netgear загружается за 30 секунд или меньше. К сожалению, мы должны использовать и Cisco и Netgear. –  Zonxwedop 02.04.2013, 16:09
  • 2
    Другая проблема: dhclient должен иметь тайм-аут в нем достаточно долго для ожидания DHCP для активации сначала, прежде чем он бросит IP, Так как dhclient уже называют в начале, что было бы "ifconfig eth0, && dhclient eth0" действительно выполняет? спасибо –  Zonxwedop 02.04.2013, 16:14
  • 3
    @Zonxwedop: О каком "начале" Вы говорите? Путем отключения NetworkManager и. al., я подразумевал, что Вы полностью располагаете все сами, не, что Вы оставляете некоторое сервисное выполнение, которое запускает dhclient "в начале". Интерфейс должен произойти перед выполнением dhclient, или dhclient ничего не выполнит. Это - две основных команды (ifconfig затем dhclient), который получит систему Linux на сеть. Если у Вас есть более сложные потребности, Вы хотите автоматизировать, это - отдельный вопрос, но с точки зрения диагностирования Вашей проблемы, запустите с того, что является основным. –  goldilocks 04.04.2013, 14:06
  • 4
    Насколько я знаю, dhclient выполнения независимо от сетевой интерфейс. Все, что я сделал, установлено арендный договор и тайм-аут туда, где, когда тайм-аут истекает, и нет никакого сетевого интерфейса, данного dhcp, затем dhclient арендует свой адрес. Это так, если мы загружаем машину в среде, где у нас нет сети, но мы хотим сеть в конечном счете, мы можем настроить тот удаленно, потому что мы знаем, какой арендованный адрес находится на машине. "Начало", о котором я говорю, - когда я загружаю машину. Я изучаю NetworkManager прямо сейчас –  Zonxwedop 08.04.2013, 15:54
  • 5
    Если dhclient работает вначале, это потому что сервис пространства пользователя (снова: вероятно, ubiqitous NetworkManager), запустил его явно во время начальной загрузки. Это не может только запуститься спонтанно ни по какой причине. Таким образом, если это работает, и Вы не сделали этого, что-то пытается управлять Вашим сетевым подключением. То, что что-то могло бы также вызывать Вашу проблему (я не могу сказать наверняка, но действительно необходимо исключить ее путем временного конфигурирования системы для не автоматизации обработки dhclient, и т.д.) –  goldilocks 08.04.2013, 16:03

Теги

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