{"id":506816,"date":"2025-08-08T05:04:12","date_gmt":"2025-08-08T05:04:12","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=506816"},"modified":"2025-08-08T05:04:51","modified_gmt":"2025-08-08T05:04:51","slug":"controllare-lo-stato-dello-storage-usb-in-linux-usando-lo-scripting-shell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/it\/script-hub\/controllare-lo-stato-dello-storage-usb-in-linux-usando-lo-scripting-shell\/","title":{"rendered":"Come controllare lo stato dello storage USB in Linux utilizzando lo scripting shell"},"content":{"rendered":"<p>I dispositivi di archiviazione rimovibili come le unit\u00e0 USB sono strumenti indispensabili per il trasferimento dei dati, i backup e il ripristino del sistema. Tuttavia, se non gestiti, rappresentano anche un grave rischio per la sicurezza, soprattutto in ambienti enterprise o MSP. Sapere se l&#8217;accesso allo storage USB \u00e8 abilitato sui tuoi sistemi Linux non \u00e8 solo una questione di convenienza; \u00e8 una questione di applicazione delle criteri, di conformit\u00e0 alla sicurezza e di consapevolezza operativa. In questo articolo analizzeremo uno script in shell che automatizza il processo di verifica dello stato dello storage USB in Linux e che si integra facoltativamente con NinjaOne per inserire i risultati in un report.<\/p>\n<h2>Contesto<\/h2>\n<p>In Linux, il controllo dell&#8217;accesso allo storage USB \u00e8 gestito principalmente dai moduli del kernel, in particolare dai driver <strong>usb_storage<\/strong> e <strong>uas<\/strong> (USB Attached SCSI). Gli amministratori di sistema possono disabilitare questi driver inserendoli nella lista nera o configurandoli in modo che eseguano comandi innocui invece di essere caricati.<\/p>\n<p>Lo script qui esaminato per controllare lo stato dello storage USB in Linux \u00e8 progettato per ispezionare la directory <strong>\/etc\/modprobe.d<\/strong>, dove di solito risiedono queste regole di caricamento dei moduli. \u00c8 particolarmente importante negli ambienti gestiti tramite NinjaOne, dove la supervisione centralizzata e i controlli di conformit\u00e0 automatizzati sono essenziali. I <a href=\"https:\/\/www.ninjaone.com\/it\/cos-e-un-msp\/\">provider di servizi gestiti (MSP)<\/a> e i team IT interni traggono vantaggio da questo tipo di strumenti per garantire che gli endpoint siano conformi ai criteri aziendali.<\/p>\n<h2>Lo script per controllare lo stato dello storage USB in Linux:<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\">#!\/usr\/bin\/env bash\r\n\r\n# Description: Checks if the linux machine currently allows access to USB storage devices and optionally saves the results to a custom field.\r\n# By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https:\/\/www.ninjaone.com\/terms-of-use.\r\n# Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. \r\n# Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. \r\n# Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. \r\n# Warranty Disclaimer: The script is provided \u201cas is\u201d and \u201cas available\u201d, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. \r\n# Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. \r\n# Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. \r\n# EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).\r\n#\r\n#   The script checks the modprobe.d folder for any files that may block the USB storage driver or the USB Attached SCSI driver.\r\n#   There are two methods of loading USB storage drivers that allow mounting of USB storage devices:\r\n#       1. Implicit loading: The USB storage driver is loaded automatically when a USB storage device is connected.\r\n#       2. Explicit loading: The USB storage driver is loaded manually by a user, program, or script.\r\n#\r\n# Release Notes: Initial Release\r\n#\r\n# Preset Parameter: -CustomField \"usbStorageStatus\"\r\n#   The custom field to save the USB storage status to.\r\n#\r\n# Preset Parameter: --help\r\n#   Displays the help menu.\r\n#\r\n\r\n# Functions\r\n# Print an error message and exit with a specific status code\r\ndie() {\r\n    local _ret=\"${2:-1}\"\r\n    test \"${_PRINT_HELP:-no}\" = yes &amp;&amp; print_help &gt;&amp;2\r\n    echo \"$1\" &gt;&amp;2\r\n    exit \"${_ret}\"\r\n}\r\n\r\nprint_help() {\r\n    printf '\\n\\n%s\\n\\n' 'Usage: [-CustomField \"custom_field_name\"]'\r\n    printf '  %s\\n' '-CustomField'\r\n    printf '    The custom field to save the USB storage status to.\\n'\r\n}\r\n\r\n# Parse the command-line arguments\r\nparse_commandline() {\r\n    while test $# -gt 0; do\r\n        _key=\"$1\"\r\n        case \"$_key\" in\r\n        -CustomField | --CustomField | -customfield | --customfield | -cf | --cf)\r\n            _arg_customfield=\"CustomField\"\r\n            ;;\r\n        --help | -help | -h | --h)\r\n            _PRINT_HELP=yes die \"\" 0\r\n            ;;\r\n        *)\r\n            _PRINT_HELP=yes die \"[Error] Got an unexpected argument '$1'\" 1\r\n            ;;\r\n        esac\r\n        shift\r\n    done\r\n}\r\n\r\nfunction SetCustomField() {\r\n    if [[ -z \"$1\" ]] || [[ -z \"$2\" ]]; then\r\n        echo \"[Error] Missing required arguments.\"\r\n        return 1\r\n    fi\r\n    local customfieldName=$1\r\n    local customfieldValue=$2\r\n    if [ -f \"${NINJA_DATA_PATH}\/ninjarmm-cli\" ]; then\r\n        if [ -x \"${NINJA_DATA_PATH}\/ninjarmm-cli\" ]; then\r\n            if \"$NINJA_DATA_PATH\"\/ninjarmm-cli get \"$customfieldName\" &gt;\/dev\/null; then\r\n                # check if the value is greater than 10000 characters\r\n                if [ ${#customfieldValue} -gt 10000 ]; then\r\n                    echo \"[Warn] Custom field value is greater than 10000 characters\" &gt;&amp;2\r\n                    return 1\r\n                fi\r\n                if ! echo \"${customfieldValue::10000}\" | \"$NINJA_DATA_PATH\"\/ninjarmm-cli set --stdin \"$customfieldName\"; then\r\n                    echo \"[Warn] Failed to set custom field\" &gt;&amp;2\r\n                    return 1\r\n                else\r\n                    echo \"[Info] Custom field value set successfully\"\r\n                fi\r\n            else\r\n                echo \"[Warn] Custom Field ($customfieldName) does not exist or agent does not have permission to access it\" &gt;&amp;2\r\n                return 1\r\n            fi\r\n        else\r\n            echo \"[Warn] ninjarmm-cli is not executable\" &gt;&amp;2\r\n            return 1\r\n        fi\r\n    else\r\n        echo \"[Warn] ninjarmm-cli does not exist\" &gt;&amp;2\r\n        return 1\r\n    fi\r\n}\r\n\r\nparse_commandline \"$@\"\r\n\r\n# If script form variables are used, replace the command line parameters with their value.\r\nif [[ -n \"${customField}\" ]]; then\r\n    _arg_customfield=\"${customField}\"\r\nfi\r\n\r\n# Variables\r\n# Modprobe.d folder\r\nmodprobFolder=\"\/etc\/modprobe.d\"\r\n\r\n# Check if we have read access to the modprobe.d folder\r\nif ! [ -r \"${modprobFolder}\" ]; then\r\n    if [[ -n \"${_arg_customfield}\" ]]; then\r\n        SetCustomField \"${_arg_customfield}\" \"Unable to Determine\"\r\n    fi\r\n    die \"[Error] User ${USER} has no read access to modprobe.d folder\" 1\r\nfi\r\n\r\n# Check if modprobe.d folder does not exist\r\nif ! [ -d \"${modprobFolder}\" ]; then\r\n    if [[ -n \"${_arg_customfield}\" ]]; then\r\n        SetCustomField \"${_arg_customfield}\" \"Unable to Determine\"\r\n    fi\r\n    die \"[Error] Modprobe folder does not exist\" 1\r\nfi\r\n\r\n# Set default values\r\nUsbStorage=\"Enabled\"\r\nusb_storage_status=\"Enabled\"\r\nuas_status=\"Enabled\"\r\nusb_storage_driver_status=\"Enabled\"\r\nuas_driver_status=\"Enabled\"\r\n\r\n# Check if usb_storage or uas is blocked in other files\r\nfor file in \"${modprobFolder}\"\/*; do\r\n\r\n    if ! [ -r \"${file}\" ]; then\r\n        echo \"[Warn] User ${USER} has no read access to ${file}\"\r\n    fi\r\n\r\n    # Check if implicit loading is blocked\r\n    if grep -q \"blacklist usb_storage\" \"${file}\"; then\r\n        echo \"[Info] USB storage driver is blocked in ${file}\"\r\n        usb_storage_status=\"Disabled\"\r\n    fi\r\n    # Check if implicit loading is blocked\r\n    if grep -q \"blacklist uas\" \"${file}\"; then\r\n        echo \"[Info] USB Attached SCSI driver is blocked in ${file}\"\r\n        uas_status=\"Disabled\"\r\n    fi\r\n\r\n    # Check if explicit loading is blocked\r\n    if grep -q \"install usb-storage \/bin\/true\" \"${file}\"; then\r\n        echo \"[Info] USB storage driver is blocked in ${file}\"\r\n        usb_storage_driver_status=\"Disabled\"\r\n    fi\r\n    # Check if explicit loading is blocked\r\n    if grep -q \"install uas \/bin\/true\" \"${file}\"; then\r\n        echo \"[Info] USB Attached SCSI driver is blocked in ${file}\"\r\n        uas_driver_status=\"Disabled\"\r\n    fi\r\ndone\r\n\r\n# Output the status of implicit loading\r\nif [ \"${usb_storage_status}\" == \"Disabled\" ] &amp;&amp; [ \"${uas_status}\" == \"Disabled\" ]; then\r\n    echo \"[Info] USB storage driver implicit loading: Blocked\"\r\nelif [ \"${usb_storage_status}\" == \"Enabled\" ] &amp;&amp; [ \"${uas_status}\" == \"Enabled\" ]; then\r\n    echo \"[Info] USB storage driver implicit loading: Allowed\"\r\nelse\r\n    echo \"[Info] USB storage driver implicit loading: Partially Allowed\"\r\nfi\r\n\r\n# Output the status of explicit loading\r\nif [ \"${usb_storage_driver_status}\" == \"Disabled\" ] &amp;&amp; [ \"${uas_driver_status}\" == \"Disabled\" ]; then\r\n    echo \"[Info] USB storage driver manual loading: Blocked\"\r\nelif [ \"${usb_storage_driver_status}\" == \"Enabled\" ] &amp;&amp; [ \"${uas_driver_status}\" == \"Enabled\" ]; then\r\n    echo \"[Info] USB storage driver manual loading: Allowed\"\r\nelse\r\n    echo \"[Info] USB storage driver manual loading: Partially Allowed\"\r\nfi\r\n\r\n# Determine the overall status of USB storage\r\nif [ \"${usb_storage_status}\" == \"Disabled\" ] &amp;&amp; [ \"${uas_status}\" == \"Disabled\" ] &amp;&amp; [ \"${usb_storage_driver_status}\" == \"Disabled\" ] &amp;&amp; [ \"${uas_driver_status}\" == \"Disabled\" ]; then\r\n    UsbStorage=\"Disabled\"\r\nelif [ \"${usb_storage_status}\" == \"Enabled\" ] &amp;&amp; [ \"${uas_status}\" == \"Enabled\" ] &amp;&amp; [ \"${usb_storage_driver_status}\" == \"Enabled\" ] &amp;&amp; [ \"${uas_driver_status}\" == \"Enabled\" ]; then\r\n    UsbStorage=\"Enabled\"\r\nelif [ \"${usb_storage_status}\" == \"Enabled\" ] || [ \"${uas_status}\" == \"Enabled\" ] || [ \"${usb_storage_driver_status}\" == \"Enabled\" ] || [ \"${uas_driver_status}\" == \"Enabled\" ]; then\r\n    UsbStorage=\"Partially Allowed\"\r\nelse\r\n    UsbStorage=\"Unable to Determine\"\r\nfi\r\n\r\necho \"[Info] USB storage is ${UsbStorage}\"\r\n\r\nif [[ -n \"${_arg_customfield}\" ]]; then\r\n    SetCustomField \"${_arg_customfield}\" \"${UsbStorage}\"\r\nfi<\/pre>\n<p>&nbsp;<\/p>\n\n<h2>Analisi dettagliata dello script per controllare lo stato dello storage USB in Linux<\/h2>\n<p>Questo script shell per controllare lo stato dello storage USB in Linux esegue diverse operazioni in modo strutturato e con tolleranza ai malfunzionamenti. Ecco una spiegazione passo per passo:<\/p>\n<ol>\n<li>\n<h3><strong>Parsing<\/strong> degli argomenti della riga di comando<\/h3>\n<ul style=\"list-style-type: disc;\">\n<li>Supporta l&#8217;argomento opzionale <strong>-CustomField<\/strong> per specificare un campo personalizzato di NinjaOne.<\/li>\n<li>Fornisce l&#8217;opzione <strong>&#8211;help<\/strong> per una guida all&#8217;uso.<\/li>\n<\/ul>\n<\/li>\n<li>\n<h3>Controlli delle autorizzazioni e delle cartelle<\/h3>\n<ul style=\"list-style-type: disc;\">\n<li>Convalida l&#8217;esistenza e la leggibilit\u00e0 della directory <strong>\/etc\/modprobe.d.<\/strong><\/li>\n<li>Se l&#8217;accesso \u00e8 negato o la cartella \u00e8 mancante, viene mostrato l&#8217;errore &#8220;Impossibile determinare&#8221; e, se configurato, viene scritto nel campo personalizzato NinjaOne.<\/li>\n<\/ul>\n<\/li>\n<li>\n<h3>Valutazione dello stato del driver<\/h3>\n<ul style=\"list-style-type: disc;\">\n<li>Controlla ogni file in <strong>\/etc\/modprobe.d.<\/strong><\/li>\n<li>Cerca:\n<ol style=\"list-style-type: lower-alpha;\">\n<li><strong>blacklist usb_storage o blacklist uas<\/strong> (blocca il caricamento implicito).<\/li>\n<li><strong>install usb-storage \/bin\/true oppure install uas \/bin\/true<\/strong> (blocca il caricamento esplicito).<\/li>\n<\/ol>\n<\/li>\n<li>Traccia lo stato di ciascun metodo per ciascun driver.<\/li>\n<\/ul>\n<\/li>\n<li>\n<h3>Determinazione dello stato<\/h3>\n<ul style=\"list-style-type: disc;\">\n<li>Categorizza il caricamento del driver come <strong>Consentito<\/strong>, <strong>Bloccato<\/strong> o <strong>Parzialmente Consentito<\/strong>.<\/li>\n<li>Aggrega il risultato in uno stato finale di <strong>Abilitato<\/strong>, <strong>Disabilitato<\/strong> o <strong>Parzialmente permesso<\/strong>.<\/li>\n<\/ul>\n<\/li>\n<li>\n<h3>Integrazione con NinjaOne<\/h3>\n<ul style=\"list-style-type: disc;\">\n<li>Se viene specificato <strong>-CustomField<\/strong> e lo strumento <strong>ninjarmm-cli<\/strong> \u00e8 presente, lo script scrive lo stato della memoria USB nel campo personalizzato designato.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2>Casi d&#8217;uso potenziali<\/h2>\n<h3>Caso di studio:<\/h3>\n<p>Un MSP del settore sanitario gestisce centinaia di chioschi basati su Linux nelle cliniche. I criteri di sicurezza impongono di disattivare l&#8217;archiviazione USB per evitare l&#8217;estrazione di dati non autorizzati. Utilizzando questo script per controllare lo stato dello storage USB in Linux, l&#8217;MSP pu\u00f2:<\/p>\n<ul>\n<li>Distribuire lo script per controllare lo stato dello storage USB in Linux su tutti gli endpoint utilizzando NinjaOne.<\/li>\n<li>Registrare automaticamente lo stato dell&#8217;USB in un campo personalizzato.<\/li>\n<li>Generare rapporti di conformit\u00e0.<\/li>\n<li>Avvisare i tecnici se una macchina non rispetta i criteri stabiliti.<\/li>\n<\/ul>\n<p>Questo monitoraggio proattivo della conformit\u00e0 consente di risparmiare ore di verifiche manuali e garantisce la conformit\u00e0 alle normative (per esempio <a href=\"https:\/\/www.ninjaone.com\/it\/blog\/conformita-hipaa\/\">HIPAA<\/a>).<\/p>\n<h2>Confronti<\/h2>\n<p><strong>Altri metodi<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td style=\"text-align: center;\"><strong>Approccio<\/strong><\/td>\n<td style=\"text-align: center;\"><strong>Pro<\/strong><\/td>\n<td style=\"text-align: center;\"><strong>Contro<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Ispezione manuale (<strong>lsmod, grep<\/strong>)<\/td>\n<td>Immediato, nativo CLI<\/td>\n<td>Richiede tempo e non \u00e8 scalabile<\/td>\n<\/tr>\n<tr>\n<td>Script di audit in Python<\/td>\n<td>Parsing pi\u00f9 flessibile<\/td>\n<td>Dipendenze pi\u00f9 pesanti<\/td>\n<\/tr>\n<tr>\n<td>Rilevamento e risposta degli endpoint (EDR)<\/td>\n<td>Controllo centralizzato, in tempo reale<\/td>\n<td>Costo elevato, spesso incentrato su Windows<\/td>\n<\/tr>\n<tr>\n<td>Questo script shell<\/td>\n<td>Leggero, si integra con NinjaOne<\/td>\n<td>Possono essere necessari tecnici esperti di sudo e di Linux<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>L&#8217;efficacia di questo script per controllare lo stato dello storage USB in Linux \u00e8 data dalla semplicit\u00e0, dalla portabilit\u00e0 e dall&#8217;integrazione nativa con l&#8217;ecosistema NinjaOne, che lo rende ideale per gli ambienti in cui la semplicit\u00e0 e l&#8217;automazione prevalgono sulle necessit\u00e0 di personalizzazione.<\/p>\n<h2>Domande frequenti<\/h2>\n<h3>Quali distribuzioni Linux sono supportate dallo script per controllare lo stato dello storage USB in Linux?<\/h3>\n<p>La maggior parte delle distribuzioni basate su Debian e Red Hat con <strong>\/etc\/modprobe.d<\/strong> sono compatibili.<\/p>\n<h3>Questo script per controllare lo stato dello storage USB in Linux blocca l&#8217;archiviazione USB?<\/h3>\n<p>No, ne controlla\u00a0solo lo stato. Il blocco deve essere gestito tramite la configurazione del sistema.<\/p>\n<h3>Che cos&#8217;\u00e8 ninjarmm-cli?<\/h3>\n<p>\u00c8 l&#8217;interfaccia a riga di comando di NinjaOne per leggere\/scrivere i dati dei campi personalizzati sugli endpoint.<\/p>\n<h3>Che cosa significa &#8220;Parzialmente consentito&#8221;?<\/h3>\n<p>Indica che alcuni metodi di caricamento dei driver sono consentiti, mentre altri sono bloccati.<\/p>\n<h3>Posso utilizzarlo senza NinjaOne?<\/h3>\n<p>S\u00ec, ma non sar\u00e0 possibile salvare i risultati in un campo personalizzato senza <strong>ninjarmm-cli<\/strong>.<\/p>\n<h2>Implicazioni<\/h2>\n<p>Capire se l&#8217;archiviazione USB \u00e8 consentita ha un impatto sulla tua posizione di rischio. Consentire l&#8217;accesso illimitato all&#8217;USB aumenta il potenziale di perdita di dati, introduzione di <a href=\"https:\/\/www.ninjaone.com\/it\/it-hub\/sicurezza-degli-endpoint\/cos-e-un-malware\/\">malware<\/a> e trasferimenti accidentali di dati. Nei settori regolamentati come finanza, sanit\u00e0, pubblica amministrazione, dimostrare di avere il controllo dell&#8217;accesso USB \u00e8 spesso obbligatorio. Questo script per controllare lo stato dello storage USB in Linux consente di effettuare tale supervisione in modo minimamente invasivo e ripetibile.<\/p>\n<h2>Raccomandazioni<\/h2>\n<ul>\n<li><strong>Esegui lo script con permessi elevati<\/strong>\u00a0per garantire l&#8217;accesso completo a <strong>\/etc\/modprobe.d<\/strong>.<\/li>\n<li><strong>Standardizza il nome del campo personalizzato<\/strong>\u00a0su tutti i dispositivi per una reportistica unificata in <a href=\"https:\/\/www.ninjaone.com\/it\/\">NinjaOne<\/a>.<\/li>\n<li><strong>Abbina questo script agli strumenti di correzione<\/strong>\u00a0che impongono il blocco se viene rilevata una non conformit\u00e0.<\/li>\n<li><strong>Pianifica la sua distribuzione come attivit\u00e0 ricorrente<\/strong>\u00a0all&#8217;interno di NinjaOne per la convalida periodica della conformit\u00e0.<\/li>\n<\/ul>\n<h2>Considerazioni finali<\/h2>\n<p>L&#8217;uso dello scripting shell per verificare lo stato dello storage USB in Linux offre un metodo leggero, verificabile e automatizzabile per la verifica della conformit\u00e0 degli endpoint. Se usato insieme a NinjaOne, questo script diventa un potente strumento per l&#8217;applicazione centralizzata dei criteri e la visibilit\u00e0. Che si tratti di un MSP che gestisce le flotte dei clienti o di un team IT interno che protegge le risorse aziendali, questa soluzione offre il giusto equilibrio tra semplicit\u00e0 e potenza.<\/p>\n","protected":false},"author":35,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"no","_lmt_disable":""},"operating_system":[4211],"use_cases":[4273],"class_list":["post-506816","script_hub","type-script_hub","status-publish","hentry","script_hub_category-linux"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/script_hub\/506816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/comments?post=506816"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/media?parent=506816"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/operating_system?post=506816"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/use_cases?post=506816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}