туалет-L сообщает о длине строки 8 для символа вкладки. ошибка или функция?

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

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

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

12
12.09.2011, 17:55
3 ответа

Я не нахожу отчет об ошибках связанным с этим и следующими строками в исходном файле wc.c

    case '\t':
        linepos += 8 - (linepos % 8);

кажется, сознательно принимаю решение вести себя таким образом, вероятно, для предоставления подсказки для ширины должно было отобразить файл на экране.

Быстрая альтернатива могла быть

echo -n $'\t' | tr '\t' ' ' | wc -L
11
27.01.2020, 19:56
  • 1
    Спасибо enzo, я теперь нашел это хотя man wc не упоминает об этой проблеме, она указана в info coreutils 'wc invocation' (какой 'человек' относится также)... Кроме того, после траления сферы Google немного больше, я нашел это как альтернативу echo -n $'\t' | expand -t1 | wc -L, который является в значительной степени тем же как Вашей альтернативой, но я добавил его в придачу.. И хотя следующая ссылка является перекомпилировать взломом туалета*, она может представлять интерес для некоторых: туалеты поддерживают для различных ширин –  Peter.O 13.09.2011, 01:36

Обычно вкладка расширена до следующего положения, (делимый на 8) +1 [1, 9, 17, 25, ...], таким образом, если Вы просите его, Вы получаете его.

Обратите внимание на то, что-n не важен для вопроса, но $ не.

echo foo$'\t' | wc -L

возвратится 8 также, потому что

echo foo$'\t'bar 
foo     bar

Можно опустить $ при использовании-e для эха:

echo -e '\t' | wc -L
8

Таким образом, если Вы хотите считать '\t' как единственный байт, просто опустите-e и $:

echo '\t' | wc -L
2
1
27.01.2020, 19:56
  • 1
    Да, расширение вкладок достаточно характерно для, печатал/отображал вывод, но я нашел это нечетным, что программа, которая считает байты и слова, считала бы 1 символ как что-либо кроме 1 символа... btw echo '\t' не производит символ вкладки (\x09). Это производит строку, длина которой равняется 2, т.е. a '\' и a 't'. Новая строка не является пустой болтовней длины строки... (У меня был a -n в моем примере, чтобы проверить, ли wc правильно обработал бы файл, который не имеет никакого запаздывающего символа новой строки...), –  Peter.O 13.09.2011, 01:12
  • 2
    вкладки wc --help говорит: -L, --max-line-length print the length of the longest line?. Это не говорит о байтах, но длинах строки. –  user unknown 13.09.2011, 02:05
  • 3
    Да, это действительно говорит, "печатают длину самой длинной строки"...', но это не говорит, что "Мы предполагаем, что Вы хотите расширенные вкладки (не обычный счетчик символов, как большинство других функций длины).. О, между прочим, мы развернем вкладки до 8 пробелов, независимо от того, на что установлены Ваши определенные позиции табуляции".... Это - прерывание.. Это правильно не документируется. –  Peter.O 01.11.2011, 23:35
  • 4
    Как Вы устанавливаете вкладку с? В Bash? Кроме того: Вкладки не расширены до 8 пробелов, но к позициям, видят echo -e foo'\t'bar | wc -L который приводит к 11, не к 14. –  user unknown 02.11.2011, 13:17
  • 5
    В вышеупомянутом foo\tbar пример, wc принял позиции табуляции при номинальном интервале 8... Следующий пример показывает как wc игнорирует в настоящее время активные настройки позиции табуляции. Это производит строку к терминалу, который составляет 8 терминальных столбцов, wide/long, все же wc отчеты это, чтобы быть 11. Этот пример устанавливает позиции табуляции на каждый 6-й столбец... tabs -6; echo 12345678; echo -e "foo\tbar"|tee >(wc -L) –  Peter.O 13.11.2011, 21:54

Поскольку сервер VNC был вызван с параметром -localhost , он принимает соединения только на интерфейсе localhost, что подтверждается записью 127.0.0.1: 5901 в выводе netstat (внешний открытый интерфейс будет читать 0.0.0.0: 5901 ). На панели управления Xvnc :

   -localhost
          Only  allow connections from the same machine. Useful if you use
          SSH and want to stop non-SSH connections from any  other  hosts.
          See the guide to using VNC with SSH on the web site.

В этой конфигурации необходимо туннелировать соединение, иначе оно будет отклонено. Для туннелирования через SSH можно выполнить следующее действие:

ssh -p 2200 -L5901:localhost:5901 user@remotehost -Nf

( -Nf является необязательным: он просто помещает туннель в фоновый режим), а затем запустить VNC-клиент и указать его в конечной точке туннеля: подробности будут зависеть от того, какой клиент вы используете, например

vncviewer localhost:1
-121--1464-

Вероятно, вы отредактировали этот default.con. Кажется, в конце этой строки перед новой строкой есть лишний персонаж. Попробуйте od -c default.conf . Вероятно, это приведет к следующему:

0000000   v   a   l   u   e   s   =       w   a   d   s       s   e   a
0000020   d       s   e   d   a       o   k   a   w       w   a   s   w
0000040 022  \n
0000042

Отредактируйте файл, чтобы удалить символ 022 (\r ), и повторите попытку.

-121--244015-

Описание wc -L было неоднозначным. Он возвращает самую широкую ширину дисплея. Для управления расширением вкладки сначала можно выполнить фильтрацию через развернуть .

0
27.01.2020, 19:56

Теги

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