Исходный код команды arch для macOS Catalina версии 10.15.3 (19D76)

firewall-cmd --zone public --list-all | awk '/services/ { for (i=2;i<=NF;i++) { print $i;system("grep -o port=.* /usr/lib/firewalld/services/"$i".xml") } }'

Решение с использованием firewalld -cmd и awk будет таким, как указано выше. Запустите команду firewall -cmd --zone public --list -all, чтобы получить список служб, а затем вытащите строку services с помощью awk. Перебирая каждую службу в этой строке (разделенное пробелом слово ), мы выполняем команду grep, ища любые порты в/usr/lib/firewalld/services/<service name>.xml

Обратите внимание, что существует риск, связанный с внедрением команд при выполнении системной функции awk.

2
17.02.2020, 22:16
1 ответ

Компоненты MacOS с открытым исходным кодом можно найти в https://opensource.apple.com/, а пакет, в который включен arch, называется system_cmds.

К сожалению, ссылки на Catalina (10.15.x )кажутся недоступными на момент написания этого (это не редкость, потому что Apple обычно публикует исходники с некоторой задержкой ).

Вероятнее всего, вам нужна версияsystem_cmds-854.11.2(ссылка находится по адресу https://opensource.apple.com/release/macos-1015.html, но на данный момент она не работает ).

Однако, если вас устраивает версия для Мохаве (10.14.x ), то вы можете получить исходники здесь:https://opensource.apple.com/source/system_cmds/system_cmds-805.250.2/arch.tproj/

Надеюсь, это поможет!

Примечание. :Если вам действительно нужна версия Catalina, вам придется подождать, пока Apple не опубликует ее на указанном выше веб-сайте.

3
28.04.2021, 23:23

Теги

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