Существует 3 метода, о которых я знаю:
$ pwdx <PID>
$ lsof -p <PID> | grep cwd
$ readlink -e /proc/<PID>/cwd
Скажите, что у нас есть этот процесс.
$ pgrep nautilus
12136
Затем, если мы используем pwdx
:
$ pwdx 12136
12136: /home/saml
Или можно использовать lsof
:
$ lsof -p 12136 | grep cwd
nautilus 12136 saml cwd DIR 253,2 32768 10354689 /home/saml
Или можно ввести по абсолютному адресу непосредственно в /proc
:
$ readlink -e /proc/12136/cwd/
/home/saml
В моем случае все ответы «не делайте этого, это противоречит стандартам» были очень бесполезны, так как мне нужно было сделать это как часть задачи обратного проектирования. В моем случае тот факт, что это противоречило стандартам, не имел никакого значения.
Вот (грубые )шаги:
/crypto/asn1/a_mbstr.c
в своем любимом редакторе Найдите что-то похожее на следующее:
if ((maxsize > 0) && (nchar > maxsize)) {
ASN1error(ASN1_R_STRING_TOO_LONG);
ERR_asprintf_error_data("maxsize=%ld", maxsize);
return -1;
}
и закомментируйте его. Для версии 2.6.0 это были строки 155 -159. Удаляя эти строки, вы удаляете проверку максимальной длины CN.
Следуйте инструкциям в файле README
для сборки двоичного файла. Мне не нужно было устанавливать какие-либо библиотеки при сборке на macOS, кроме YMMV. Я использовал cmake
, который удалил новый двоичный файл openssl в /build/apps/openssl
Сгенерировать CSR с помощью флагов командной строки (прочитать :НЕ ИНТЕРАКТИВНЫЙ ИНСТРУМЕНТ --он имеет специальную проверку, которая не исправлена этой модификацией! ).
Например:
/build/apps/openssl/openssl req -new -newkey rsa:2048 -nodes -out a.csr -keyout a.key -subj "/CN=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
Используя стоковые openssl
бинарники (или модифицированные, если хотите ), подпишите CSR:
openssl x509 -req -in a.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out a.crt -days 500 -sha256
После этого у вас должен быть готовый к использованию замечательный несовместимый с -сертификат. Я заметил довольно много проблем с использованием сертификатов с CN длиннее 64 символов (Wireshark усекает CN на дисплее дисектора и т. д. ), но на самом деле это работает для того, что мне нужно.
You can't.
Указанный максимальный предел равен 64:
-- спецификации верхних границ ДОЛЖНЫ рассматриваться как обязательные
-- из Приложения B стандарта ITU-T X.411. Ссылка Определение параметра МТС
-- Верхние границы
-- Верхние границы
ub-name INTEGER ::= 32768
ub-common-name INTEGER ::= 64
ub-locality-name INTEGER ::= 128
ub-state-name INTEGER ::= 128
ub-organization-name INTEGER ::= 64