Какие еще существуют команды Linux, ориентированные на `пространство имен`?

Потому что так мы делаем вещи в стране *nix. :) Это дает немного дополнительной безопасности, не отображая кучу звездочек. Таким образом, тот, кто видит ваш экран, не сможет узнать длину вашего пароля.

Но я должен признать, что немного пугает отсутствие обратной связи при вводе пароля, особенно если у вас плохая клавиатура. Поэтому большинство графических диалоговых окон ввода пароля в системах *nix дают вам какую-то обратную связь, например, с помощью звездочек или, чаще всего, ⬤. А некоторые даже отображают каждый символ по мере ввода, но затем немедленно заменяют его на * или ⬤, но это не очень хорошо, если кто-то может заглядывать вам через плечо. Или если у них есть устройство, которое может перехватывать и декодировать видеосигнал, передаваемый с вашего компьютера на монитор.

0
10.03.2019, 02:22
1 ответ

[Are there] other tools/commands geared to working with and debugging namespaces ?

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

  1. /proc/[pid]/ns/*-Вы уже знаете об этом, потому что смотрели на nsenter. Есть еще пара особенностей в namespaces (7):
    • Указанные выше файлы отображаются как символические ссылки. Выполнение readlink/ ls -lпокажет тип пространства имен и уникальный идентификатор.
    • Вы можете сохранить постоянную ссылку на пространство имен, подключив -монтирование вышеуказанных файлов. Если вы думаете, что это звучит немного странно, я с вами согласен, но в некоторых случаях это может быть полезно :-).
  2. lsns-Он сканирует /procдля вас и перечисляет все различные используемые пространства имен.
  3. /proc/[pid]/mountinfoописывает пространство имен монтирования. Это задокументировано в proc (5).

    Будьте осторожны при первом просмотре, потому что столбцов много. Например, есть два разных столбца «options» с потенциально разными значениями для rw/ ro. Разница в том, что столбец для «параметров монтирования» может различаться в зависимости от монтирования bind -одной и той же файловой системы.

    findmnt— стандартная команда для просмотра смонтированных файловых систем. У него есть опция --task TID-, поэтому вы можете использовать ее для разбора файла mountinfoлюбого процесса. (Значение PID также является действительным TID ).

  4. /proc/[pid]/uid_mapи /proc/[pid]/gid_map, для пользователей _пространств имен .

  5. Команда ip, используемая для управления сетевыми интерфейсами :
    • ip netns предоставляет некоторые команды специально для сетевых пространств имен. т.е. он просто использует файл netв /proc/[pid]/ns/, как описано выше.
    • ip linkможет отображать информацию о vethодноранговых узлах, включая локальный идентификатор сети, в которой находится одноранговый узел. ip netns list-idили lsns -t netбудут перечислены сетевые пространства имен, включая этот локальный идентификатор. Я не совсем уверен, как вы работаете с этими локальными идентификаторами, это кажется немного неясным. Но я думаю, что этот QA упоминает все, что вы можете с ними сделать.:Как найти сетевое пространство имен veth-пира ifindex?
    • ipтакже позволяет перемещать интерфейс с одной сети на другую. Хотя дело не столько в отладке.

«Я смотрю на вас, одиночные бинарные goконтейнеры»

Адаптировано из Как -отлаживать работающий контейнер Docker из отдельного контейнера:

Возникла проблема с использованием nsenter. Если вы введете пространство имен монтирования контейнера, вы сможете запускать только те команды, которые были включены в контейнер. Но суть контейнеров Docker в том, что в них нужно включать только само приложение!

Хитрость в том, что вы можете получить доступ к файлам внутри контейнера, используя /proc/[pid]/root/. (Задокументировано в proc(5)).

Это очень удобно, если вы вошли в пространство имен PID контейнера, потому что вы можете использовать /proc/1/root/. В этот момент вам не нужно искать правильный PID :-).

После входа в пространство имен PID также может быть весьма удобно, если вы знаете, что процесс, к которому вы хотите подключить отладчик, будет иметь PID 1 (или, возможно, PID 2 )внутри контейнера :-). В качестве альтернативы, если ваше приложение/контейнер состоит из нескольких процессов -, вы можете использовать свою любимую команду psдля просмотра различных процессов.

3
28.01.2020, 02:30

Теги

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