{"id":508698,"date":"2025-08-13T05:35:41","date_gmt":"2025-08-13T05:35:41","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=508698"},"modified":"2025-08-13T05:35:41","modified_gmt":"2025-08-13T05:35:41","slug":"verifier-letat-du-stockage-usb-dans-linux-avec-un-script-shell","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/fr\/script-hub\/verifier-letat-du-stockage-usb-dans-linux-avec-un-script-shell\/","title":{"rendered":"Comment v\u00e9rifier l&rsquo;\u00e9tat du stockage USB dans Linux avec un script Shell"},"content":{"rendered":"<p>Les p\u00e9riph\u00e9riques de stockage amovibles tels que les cl\u00e9s USB sont des outils indispensables pour le transfert de donn\u00e9es, les sauvegardes et la r\u00e9cup\u00e9ration du syst\u00e8me. Cependant, ils repr\u00e9sentent \u00e9galement un risque s\u00e9rieux pour la s\u00e9curit\u00e9 s&rsquo;ils ne sont pas g\u00e9r\u00e9s, en particulier dans les environnements d&rsquo;entreprise ou de MSP. Savoir si l&rsquo;acc\u00e8s au stockage USB est activ\u00e9 sur vos syst\u00e8mes Linux n&rsquo;est pas seulement une question de commodit\u00e9 : c&rsquo;est une question d&rsquo;application de politique, de conformit\u00e9 \u00e0 la s\u00e9curit\u00e9 et de sensibilisation op\u00e9rationnelle. Cet article pr\u00e9sente un script shell qui automatise le processus pour v\u00e9rifier l&rsquo;\u00e9tat du stockage USB dans Linux avec un script shell et qui s&rsquo;int\u00e8gre \u00e9ventuellement \u00e0 NinjaOne pour rapporter les r\u00e9sultats.<\/p>\n<h2>Contexte<\/h2>\n<p>Sous Linux, le contr\u00f4le de l&rsquo;acc\u00e8s au stockage USB est principalement assur\u00e9 par des modules du noyau, en particulier les pilotes <strong>usb_storage<\/strong> et <strong>uas<\/strong> (USB Attached SCSI). Les administrateurs syst\u00e8me peuvent d\u00e9sactiver ces pilotes en les pla\u00e7ant sur une liste noire ou en les configurant pour qu&rsquo;ils ex\u00e9cutent des commandes inoffensives au lieu de se charger.<\/p>\n<p>Le script pr\u00e9sent\u00e9 ici est con\u00e7u pour inspecter le r\u00e9pertoire <strong>\/etc\/modprobe.d<\/strong>, o\u00f9 se trouvent g\u00e9n\u00e9ralement ces r\u00e8gles de chargement de modules. C&rsquo;est particuli\u00e8rement important dans les environnements g\u00e9r\u00e9s par NinjaOne, o\u00f9 une supervision centralis\u00e9e et des contr\u00f4les de conformit\u00e9 automatis\u00e9s sont essentiels. Les <a href=\"https:\/\/www.ninjaone.com\/fr\/quest-ce-quun-msp\/\">fournisseurs de services g\u00e9r\u00e9s (MSP)<\/a> et les \u00e9quipes informatiques internes b\u00e9n\u00e9ficient de ce type d&rsquo;outils pour s&rsquo;assurer que les terminaux sont conformes aux politiques de l&rsquo;entreprise.<\/p>\n<h2>Le script\u00a0:<\/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>Description d\u00e9taill\u00e9e<\/h2>\n<p>Ce script shell ex\u00e9cute plusieurs t\u00e2ches de mani\u00e8re structur\u00e9e et tol\u00e9rante aux pannes. Voici une description \u00e9tape par \u00e9tape\u00a0:<\/p>\n<ol>\n<li>\n<h3><strong>Analyse des<\/strong> arguments de la ligne de commande<\/h3>\n<ul style=\"list-style-type: disc;\">\n<li>Supporte l&rsquo;argument optionnel <strong>-CustomField<\/strong> pour sp\u00e9cifier un champ personnalis\u00e9 NinjaOne.<\/li>\n<li>Fournit une option <strong>&#8211;help<\/strong> pour des conseils d&rsquo;utilisation.<\/li>\n<\/ul>\n<\/li>\n<li>\n<h3>Contr\u00f4le des autorisations et des dossiers<\/h3>\n<ul style=\"list-style-type: disc;\">\n<li>Valide l&rsquo;existence et la lisibilit\u00e9 du r\u00e9pertoire <strong>\/etc\/modprobe.d.<\/strong><\/li>\n<li>Si l&rsquo;acc\u00e8s est refus\u00e9 ou si le dossier est manquant, il signale \u00ab\u00a0Impossible \u00e0 d\u00e9terminer\u00a0\u00bb et, s&rsquo;il est configur\u00e9, l&rsquo;\u00e9crit dans le champ personnalis\u00e9 NinjaOne.<\/li>\n<\/ul>\n<\/li>\n<li>\n<h3>\u00c9valuation de l&rsquo;\u00e9tat du pilote<\/h3>\n<ul style=\"list-style-type: disc;\">\n<li>Interroge chaque fichier du <strong>fichier \/etc\/modprobe.d.<\/strong><\/li>\n<li>Recherche\u00a0:\n<ol style=\"list-style-type: lower-alpha;\">\n<li><strong>blacklist usb_storage ou blacklist uas<\/strong> (bloque le chargement implicite).<\/li>\n<li><strong>install usb-storage \/bin\/true ou install uas \/bin\/true<\/strong> (bloque le chargement explicite).<\/li>\n<\/ol>\n<\/li>\n<li>Suivi de l&rsquo;\u00e9tat de chaque m\u00e9thode par pilote.<\/li>\n<\/ul>\n<\/li>\n<li>\n<h3>D\u00e9termination du statut<\/h3>\n<ul style=\"list-style-type: disc;\">\n<li>Classe le chargement des pilotes dans les cat\u00e9gories suivantes\u00a0: <strong>autoris\u00e9<\/strong>, <strong>bloqu\u00e9<\/strong> ou <strong>partiellement autoris\u00e9<\/strong>.<\/li>\n<li>Agr\u00e8ge le r\u00e9sultat en un statut final\u00a0: <strong>activ\u00e9<\/strong>, <strong>d\u00e9sactiv\u00e9<\/strong> ou <strong>partiellement autoris\u00e9<\/strong>.<\/li>\n<\/ul>\n<\/li>\n<li>\n<h3>Int\u00e9gration avec NinjaOne<\/h3>\n<ul style=\"list-style-type: disc;\">\n<li>Si <strong>-CustomField<\/strong> est sp\u00e9cifi\u00e9 et que l&rsquo;outil <strong>ninjarmm-cli<\/strong> est pr\u00e9sent, le script \u00e9crit l&rsquo;\u00e9tat du stockage USB dans le champ personnalis\u00e9 d\u00e9sign\u00e9.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2>Cas d&rsquo;utilisation potentiels<\/h2>\n<h3>\u00c9tude de cas\u00a0:<\/h3>\n<p>Un fournisseur de services de gestion des soins de sant\u00e9 g\u00e8re des centaines de kiosques bas\u00e9s sur Linux dans des cliniques. La politique de s\u00e9curit\u00e9 pr\u00e9voit que le stockage USB doit \u00eatre d\u00e9sactiv\u00e9 pour emp\u00eacher l&rsquo;extraction non autoris\u00e9e de donn\u00e9es. \u00c0 l&rsquo;aide de ce script, l&rsquo;enteprise MSP peut\u00a0:<\/p>\n<ul>\n<li>D\u00e9ployer le script sur tous les terminaux \u00e0 l&rsquo;aide de NinjaOne.<\/li>\n<li>Enregistrer automatiquement le statut USB dans un champ personnalis\u00e9.<\/li>\n<li>G\u00e9n\u00e9rer des rapports de conformit\u00e9.<\/li>\n<li>Alerter les techniciens si une machine n&rsquo;est pas conforme \u00e0 la politique.<\/li>\n<\/ul>\n<p>Cette surveillance proactive de la conformit\u00e9 permet d&rsquo;\u00e9conomiser des heures d&rsquo;audit manuel et garantit le respect des r\u00e9glementations (par exemple, <a href=\"https:\/\/www.ninjaone.com\/blog\/hipaa-compliance\/\">HIPAA<\/a>).<\/p>\n<h2>Comparaisons<\/h2>\n<p><strong>Autres m\u00e9thodes<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td style=\"text-align: center;\"><strong>Approche<\/strong><\/td>\n<td style=\"text-align: center;\"><strong>Avantages<\/strong><\/td>\n<td style=\"text-align: center;\"><strong>Inconv\u00e9nients<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Inspection manuelle<strong>(lsmod, grep)<\/strong><\/td>\n<td>Imm\u00e9diate, native CLI<\/td>\n<td>Prend du temps, n&rsquo;est pas \u00e9volutif<\/td>\n<\/tr>\n<tr>\n<td>Scripts d&rsquo;audit en Python<\/td>\n<td>Une analyse plus souple<\/td>\n<td>Des d\u00e9pendances plus lourdes<\/td>\n<\/tr>\n<tr>\n<td>D\u00e9tection et r\u00e9ponse des terminaux (EDR)<\/td>\n<td>Contr\u00f4le centralis\u00e9, en temps r\u00e9el<\/td>\n<td>Co\u00fbt \u00e9lev\u00e9, souvent ax\u00e9 sur Windows<\/td>\n<\/tr>\n<tr>\n<td>Ce script Shell<\/td>\n<td>L\u00e9ger, s&rsquo;int\u00e8gre \u00e0 NinjaOne<\/td>\n<td>Peut n\u00e9cessiter l&rsquo;utilisation de sudo et l&rsquo;intervention de techniciens connaissant bien Linux<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>La niche de ce script est sa simplicit\u00e9, sa portabilit\u00e9 et son int\u00e9gration native avec l&rsquo;\u00e9cosyst\u00e8me NinjaOne, ce qui le rend id\u00e9al pour les environnements o\u00f9 la simplicit\u00e9 et l&rsquo;automatisation l&#8217;emportent sur la personnalisation.<\/p>\n<h2>Questions fr\u00e9quentes sur la mani\u00e8re de v\u00e9rifier l&rsquo;\u00e9tat du stockage USB dans Linux avec un script shell<\/h2>\n<h3>Quelles sont les distributions Linux prises en charge\u00a0?<\/h3>\n<p>La plupart des distributions bas\u00e9es sur Debian et Red Hat avec <strong>\/etc\/modprobe.d<\/strong> sont compatibles.<\/p>\n<h3>Ce script bloque-t-il le stockage USB\u00a0?<\/h3>\n<p>Non, il en <strong>v\u00e9rifie<\/strong>\u00a0uniquement le statut. Le blocage doit \u00eatre g\u00e9r\u00e9 par la configuration du syst\u00e8me.<\/p>\n<h3>Qu&rsquo;est-ce que ninjarmm-cli\u00a0?<\/h3>\n<p>Il s&rsquo;agit de l&rsquo;interface en ligne de commande de NinjaOne pour lire\/\u00e9crire les donn\u00e9es des champs personnalis\u00e9s sur les terminaux.<\/p>\n<h3>Que signifie l&rsquo;expression \u00ab\u00a0partiellement autoris\u00e9\u00a0\u00bb\u00a0?<\/h3>\n<p>Elle indique que certaines m\u00e9thodes de chargement des pilotes sont autoris\u00e9es tandis que d&rsquo;autres sont bloqu\u00e9es.<\/p>\n<h3>Puis-je l&rsquo;utiliser sans NinjaOne\u00a0?<\/h3>\n<p>Oui, mais vous ne pourrez pas enregistrer les r\u00e9sultats dans un champ personnalis\u00e9 sans <strong>ninjarmm-cli<\/strong>.<\/p>\n<h2>Implications<\/h2>\n<p>Le fait de savoir si le stockage USB est autoris\u00e9 a une incidence sur votre position en mati\u00e8re de risques. L&rsquo;autorisation d&rsquo;un acc\u00e8s USB illimit\u00e9 augmente le risque de fuite de donn\u00e9es, d&rsquo;introduction de <a href=\"https:\/\/www.ninjaone.com\/fr\/it-hub\/endpoint-security\/que-sont-les-malwares\/\">logiciels malveillants<\/a> et de transferts accidentels de donn\u00e9es. Dans les secteurs r\u00e9glement\u00e9s (finance, sant\u00e9, administration), il est souvent obligatoire de montrer que l&rsquo;on contr\u00f4le l&rsquo;acc\u00e8s USB. Ce script permet une telle surveillance d&rsquo;une mani\u00e8re peu invasive et reproductible.<\/p>\n<h2>Recommandations<\/h2>\n<ul>\n<li><strong>Ex\u00e9cutez le script avec les autorisations \u00e9lev\u00e9es<\/strong>\u00a0pour garantir un acc\u00e8s complet \u00e0 <strong>\/etc\/modprobe.d.<\/strong><\/li>\n<li><strong>Standardisez le nom du champ personnalis\u00e9<\/strong>\u00a0sur tous les appareils pour des rapports unifi\u00e9s dans <a href=\"https:\/\/www.ninjaone.com\/fr\/\">NinjaOne<\/a>.<\/li>\n<li><strong>Associez ce script \u00e0 des outils de rem\u00e9diation<\/strong> qui imposent le blocage en cas de d\u00e9tection de non-conformit\u00e9.<\/li>\n<li><strong>Planifiez-la comme une t\u00e2che r\u00e9currente<\/strong>\u00a0dans NinjaOne pour la validation p\u00e9riodique de la conformit\u00e9.<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>L&rsquo;utilisation d&rsquo;un script shell pour v\u00e9rifier l&rsquo;\u00e9tat du stockage USB sous Linux offre une m\u00e9thode l\u00e9g\u00e8re, v\u00e9rifiable et automatisable pour la v\u00e9rification de la conformit\u00e9 des terminaux. Associ\u00e9 \u00e0 NinjaOne, ce script devient un outil puissant pour l&rsquo;application centralis\u00e9e des politiques et la visibilit\u00e9. Que vous soyez un MSP g\u00e9rant des flottes de clients ou une \u00e9quipe informatique interne s\u00e9curisant les actifs de l&rsquo;entreprise, cette solution offre le parfait \u00e9quilibre entre simplicit\u00e9 et puissance.<\/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":[4285],"class_list":["post-508698","script_hub","type-script_hub","status-publish","hentry","script_hub_category-linux"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub\/508698","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/comments?post=508698"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media?parent=508698"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/operating_system?post=508698"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/use_cases?post=508698"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}