неспособный устанавливают удаленное соединение IMAP, почему нет?

При поиске способа проверить из сценария можно сделать любой из них:

  • Выполненный tput cols и tput lines, поскольку manatwork предлагает
  • проверьте значения $LINES и $COLUMNS

Но если Вы хотите детали, здесь мы идем:

Для виртуальных терминалов (xterm, и др.) существует ioctl() системный вызов, который скажет Вам, каков размер окно. Если это может, less использование этот вызов. Кроме того, когда Вы изменяете размер окна, независимо от того, что работает в том окне, получает a SIGWINCH сигнал, который позволяет less знайте, что это должно проверить на новый размер окна. Например, я запустил a less выполнение (как идентификатор 16663 процесса), подключенный к нему с strace, и измененный окно. Это - то, что я видел:

$ strace -p 16663
Process 16663 attached - interrupt to quit
read(3, 0xbfb1f10f, 1)                  = ? ERESTARTSYS (To be restarted)
--- SIGWINCH (Window changed) @ 0 (0) ---
rt_sigaction(SIGWINCH, {0x805cf10, [WINCH], SA_RESTART}, {0x805cf10, [WINCH], SA_RESTART}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig -icanon -echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig -icanon -echo ...}) = 0
ioctl(1, TIOCGWINSZ, {ws_row=40, ws_col=80, ws_xpixel=0, ws_ypixel=0}) = 0
ioctl(2, TIOCGWINSZ, {ws_row=40, ws_col=80, ws_xpixel=0, ws_ypixel=0}) = 0

Это также что tput cols и tput lines сделайте негласно, если они могут. Для большего количества информации об этом методе посмотрите man tty-ioctl и поиск TIOCGWINSZ.

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

  • LINES и COLUMNS будет часто устанавливаться на терминальные размеры. На самом деле, если bash или zsh может найти терминальные размеры, это автоматически установит эти переменные само, чтобы помочь not-so-clever программам видеть терминальный размер. Однако большинство других оболочек, включая dash и tcsh, не устанавливайте эти переменные.
  • TERM обычно устанавливается на терминальный тип, в этом случае terminfo база данных может содержать ожидаемый размер терминала. Если tput rows не может использовать IOCTL (например, если Вы будете соединены по последовательному порту), то он отступит к значениям, зарегистрированным здесь. Для терминала, размер которого может измениться, это - только предположение и, вероятно, будет неправильно.

Для большего количества информации посмотрите man tput чтобы команда управляла терминалом, и man terminfo для списка вещей можно сказать терминалу делать.

3
15.03.2019, 23:30
1 ответ

Хорошо, я понял это. Спасибо за вашу помощь Xen2050, у меня нет достаточной репутации, чтобы дать вам преимущество (пока).

Вот сценарий bash, который работает для меня:

#Set this variable to your mount passphrase. Ideally you'd get this from $1 input so that the actual value isn't stored in bash script. That would defeat the purpose.
mountphrase='YOURMOUNTPASSPHRASE' 

#Add tokens into user session keyring
printf "%s" "${mountphrase}" | ecryptfs-add-passphrase > tmp.txt

#Now get the signature from the output of the above command
sig=`tail -1 tmp.txt | awk '{print $6}' | sed 's/\[//g' | sed 's/\]//g'`
rm -f tmp.txt #Remove temp file

#Now perform the mount
sudo mount -t ecryptfs -o key=passphrase:passphrase_passwd=${mountphrase},no_sig_cache=yes,verbose=no,ecryptfs_sig=${sig},ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=no,ecryptfs_enable_filename_crypto=no /home/user/.Private /home/user/Private

Обратите внимание, что для этого мне пришлось отключить шифрование имени файла. При попытке шифрования имени файла во время монтирования произошла ошибка библиотеки. Чтобы не иметь шифрования имени файла, при создании личного/каталога необходимо использовать следующее:

ecryptfs-setup-private -n

Это работает для меня.

В ответ на некоторые люди, которые говорят, «почему это так?», ну, я не всегда хочу монтировать свои личные данные на каждом входе. Я хочу иметь быстрый способ монтирования данных, который не требует от меня использования моего фактического пароля пользователя для входа в систему. Представьте, что я хочу поделиться данными с кем-то еще? Я должен дать им свой пароль. Использование парольной фразы монтирования позволяет мне иметь пароль монтирования, который может быть менее безопасным, чем мой логин. Это также полезно, если вы хотите автомонтировать свои данные и хранить фразу где-то (возможно, на USB-палке как ключ для разблокировки ваших данных). Я никогда не хочу хранить свой пароль для входа в систему где-либо в виде обычного текста. Но если вы знаете содержание ваших данных, и вы знаете, что сами данные менее конфиденциальны, чем ваш собственный счет, это прекрасное решение.

-121--119432-

Запуск sadc с параметром XDISK и сбор данных об использовании файловой системы.

-121--61015-

После некоторых возвратно-поступательных комментариев и чата проблема ОП теперь решена. Сервер IMAP должен был быть указан как imap.mydomain.com вместо mydomain.com , хотя по каким-то причинам это работало только при установке с помощью дополнительных настроек учетной записи, а не с помощью диалогового окна создания учетной записи.

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

  • Функция Thunderbird по автоматическому обнаружению настроек учетной записи является фантастической и большим улучшением в темные дни настройки учетной записи электронной почты, когда Интернет-провайдеры должны были предоставлять длинные инструкции, включая все, начиная с типа сервера (POP или IMAP) и заканчивая номерами портов и протоколом аутентификации. В идеальном мире пользователям нужно будет только указать свой адрес электронной почты, пароль, и, возможно, я полагаю, имя сервера (это все, что им нужно для доступа к gmail через Интернет, в конце концов...).

    Однако, когда функция автоматического обнаружения не работает, вы почти ничего не получаете в виде полезных сообщений об ошибках. «Thunderbird не смог найти настройки для вашей учетной записи электронной почты» в основном ничего не значит.

    НАКОНЕЧНИК: Когда функция автоматического обнаружения Thunderbird не работает, не тратьте на нее время и возвращайтесь к указанию всего вручную, пока она не заработает. Затем, как только он будет работать,вы можете сосредоточиться на том, чтобы выяснить, почему автообнаружение не удалось, и, возможно, исправить его так, что это будет работать для следующего пользователя.

  • Всегда используйте порт 143 для IMAP, если это возможно. Существует также порт 993 для IMAP через SSL, но все разумно современные клиенты и серверы поддерживают STARTTLS для обновления незашифрованных соединений до зашифрованных, поэтому больше нет необходимости беспокоиться о различных портах для IMAP. Соединения на порту 143 будут автоматически шифроваться, если это возможно.

  • (Не связано с IMAP, но в любом случае) Всегда используйте порт 587 для SMTP, если это возможно. SMTP всегда выполнялся на порту 25, но интернет-провайдеры часто блокируют порт 25 из-за нежелательной почты. Порт 587 был назначен специально для коммуникации между MUA и почтовыми серверами, как ожидается, будет поддерживать SMTP AUTH и STARTTLS по мере необходимости, и уже существует в течение многих лет. Редко возникает необходимость в конфигурировании MUA для использования любого другого порта.

  • Dovecot обрабатывает незашифрованные соединения и зашифрованные соединения по-разному, и это также может относиться к локальным соединениям (к localhost , 127,0,0,1 или :: 1 ) по сравнению с удаленными соединениями. Наиболее распространенные типы проверки подлинности небезопасны по незашифрованным удаленным соединениям, поэтому Dovecot их не предлагает.

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

  • Проверьте использование telnet (для незашифрованных соединений) или openssl s_client (для зашифрованных соединений)

    Используйте то же имя узла, которое вы пытаетесь получить от MUA. Если требуется, чтобы imap.mydomain.com или mail.mydomain.com или только mydomain.com работали в качестве почтового сервера в MUA, выполните тестирование с использованием того же имени хоста из командной строки. И если вы получите ошибку разрешения имени хоста, вы знаете, что проблема заключается в DNS.

     openssl s_client -starttls imap -port 143 -CApath/etc/ssl/certs -host < имя _ узла >
    
  • Если у SSL-сертификата, настроенного на сервере Dovecot, возникла проблема, Thunderbird предупредит об этом, но все равно разрешит подключение. Если вы полностью не можете подключиться, сертификат, вероятно, не является проблемой.

    Конечно, как только вы будете готовы к производству, вы захотите использовать сертификат, подписанный признанным центром сертификации, и иметь имя в сертификате, соответствующее имени сервера IMAP, настроенного в MUA.

  • Полезные команды IMAP для тестирования. Введите их в сеансы IMAP, открытые с помощью telnet (незашифрованные) или openssl s_client (зашифрованные)

     tag1 LOGOUT
    tag2 ВХОД < имя _ пользователя > < пароль >
    tag3 ВОЗМОЖНОСТИ
    tag4 LIST «» «*»
    
3
27.01.2020, 21:23

Теги

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