nologin, false и true — это не оболочки, а просто способы предотвратить вход в систему. Остаются те, которые заканчиваются на sh
. Таким образом, поиск в /bin
, /usr/bin
и т. д. поможет найти большинство установленных.
Затем возникает проблема «что такое оболочка?» является ли python, purl, tcl и т. д. оболочкой? Ну, наверное, нет, но где линия разделения? Поскольку true
, false
и nologin
не являются интерпретаторами (, не принимают пользовательский ввод, не являются языками и т. д. ), то они определенно на нет --внешняя сторона линии.
Однако оболочка входа в систему не обязательно должна быть оболочкой, она даже не должна быть интерактивной.
Вы можете поискать в Интернете, используя вашу любимую поисковую систему, оболочки Unix.
dpkg-sig --list <deb-file.deb>
перечислит все элементы в файле, которые выглядят как подпись, без проверки файла. Это перечислит роль любой подписи в файле; напр.
$ dpkg-sig -l vuescan_9.7.50-1_amd64.deb
Processing vuescan_9.7.50-1_amd64.deb...
builder
$ dpkg-sig -l zstd_1.4.8+dfsg-2.1_i386.deb
Processing zstd_1.4.8+dfsg-2.1_i386.deb...
$
Первый файл имеет подпись с ролью «строитель»; второй файл не подписан.
Обратите внимание, что отдельные .deb
файлы обычно не подписаны (, в отличие от RPM ). Подлинность пакетов Debian зависит от подлинности репозитория; см. Как гарантируется подлинность пакетов Debian?
Хотя для пакетов .deb
верно, что весь репозиторий должен быть подписан, т. е. файл Release.gpg
, отдельные пакеты также могут быть подписаны
for i in *.deb; do
ar -p "$i" _gpgbuilder 2>/dev/null | grep "^Signer";
done