Как определить, какая версия OpenSSL установлена?

Блокировки Posix (F_SETLK и т.д.) связаны с процессом, поэтому после dup2() у вас остается только одна блокировка на файл. Вы можете перечислить свои блокировки с помощью lslocks. Если вы закроете один из двух fds, вы сбросите блокировку. Если вы измените блокировку одного из fds, другой тоже изменится. После fork() у ребенка нет блокировок. Подробности см. на странице fcntl man. Эта спецификация Posix говорит, что dup2() будет разделять любые блокировки.

Вы можете делать простые тесты в Python, используя lockf() для простоты использования, так как он реализован через fcntl(), например:

#!/usr/bin/python
import os, fcntl
pid = os.getpid()
fd = open("/tmp/try","rw")
fcntl.lockf(fd,fcntl.LOCK_SH,10)
fd2 = os.dup(fd.fileno())
os.system("lslocks -p %d" % pid) # one lock
fd.close()
os.system("lslocks -p %d" % pid) # no output

3
08.03.2017, 14:12
2 ответа

Пакет openssl содержит внешний двоичный файл, а не библиотеку. Вы отслеживаете Jessie для этого пакета (с его обновлениями безопасности).

Сама библиотека - libssl1.0.0, и вы отслеживаете бэкпорты Jessie для этого пакета (наряду с Nginx; для последнего вы отстаете всего на несколько версий). Это то, что использует Nginx, и это версия библиотеки, определяемая openssl front-end. Вы можете узнать версию библиотеки в вашей системе с помощью

apt-cache policy libssl1.0.0

(а также о наличии более новых версий, если таковые имеются).

5
27.01.2020, 21:21

Я подозреваю, что nginx -V показывает, какая версия openssl использовалась для сборки ядра, и что он также показывает вам версию в системе, которую он использует.

-2
27.01.2020, 21:21

Теги

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