Можно ли использовать «тупой» концентратор Ethernet для нарушения безопасности кабельного соединения Ethernet?

Доступ к ..на самом деле работает не так, как вы ожидаете, когда задействованы символические ссылки...

И когда вы пытаетесь сделать это в bash, bash пытается быть «полезным» и исправляет это для вас, так что проблема не становится очевидной.

Но, короче говоря, когда вы переходите к /home/me/project2/src/hdmap/../third_party, ядро ​​​​сначала разрешает символическую ссылку «hdmap», попадая в /home/me/repo/robot_dev/cognition/hdmap, затем ищет .., что означает родительский каталог , который каталог hdmap, поэтому /home/me/repo/robot_dev/cognition, а затем он попытается найти там третью _сторону.

Учитывая, что /home/me/repo/robot_dev/cognition/third_partyне существует (или, если он существует, это не то же самое, что /home/me/repo/sim/third_party, что вам и нужно ), вы получаете ошибку «файл не найден».

Bash хранит переменную $PWDс путем, сохраненным в виде строки, и поэтому он может помочь «разрешить» ссылки ..в самой оболочке, прежде чем передать ядру путь... Таким образом, он будет скрыть от вас эти подробности.

Вы можете отключить это поведение, используяset -P(илиset -o physical)в bash. (Подробнее см. справочную страницу bash.)


Чтобы помочь вам с основной проблемой... Возможно, подходящим решением будет использование cp -rlдля копирования деревьев. Параметр -lдля cpсоздает жесткие ссылки. В данном случае это не должно быть проблемой, тем более что я полагаю, что вы не собираетесь изменять файлы. Ему по-прежнему придется проходить структуру данных и создавать каждый объект отдельно, но ему не нужно будет создавать какое-либо содержимое...

Если вы работаете с современной файловой системой (, такой как Btrfs ), вы также можете попробовать cp -r --reflink, которая создает копию CoW (-на -запись )копию. По сути, это жесткая ссылка, но немного лучше, поскольку между двумя именами нет связи, они просто разделяют блоки на бэкэнде, прикосновение к одному из файлов фактически разветвляет их на два отдельных файла. (Но я полагаю, что жестких ссылок вам вполне достаточно.)

Возможно, есть некоторые приемы, которые вы могли бы проделать с git, чтобы просто отображать каталог, который вам нужен на каждом этапе... Таким образом, вы действительно можете клонировать нужные вам части... Но это может быть сложнее выполнить или поддерживать... Надеюсь cp -rlвам будет достаточно!

-1
06.03.2020, 10:16
1 ответ

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

Однако не рассматривайте функциональность концентратора Ethernet с коммутацией -как функцию безопасности. Им разрешена утечка :, они будут делать это, когда устройство не говорило, поэтому его местоположение неизвестно, или всякий раз, когда количество слотов в таблице заполнено, а коммутатор забывает об устройстве. Переключение только для производительности, а НЕ для безопасности.

2
28.04.2021, 23:21

Теги

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