使用を検討してください/dev/disk/by-{path,id}/

使用を検討してください/dev/disk/by-{path,id}/

私はしばしば/ dev / sdXとして登録されているUSBドライブフォーマットを扱います。これには通常、rootとして実行される実行コマンドmkfsfdisk他のコマンドが含まれます。mountところで、もし誤って文字を間違って入力してハードドライブをフォーマットするのかと心配になります。

理想的には、手動コマンドでデバイスを「読み取り/書き込み」モードに切り替えない限り、/dev/sdX*すべてのデバイスが失敗するようにデバイスを「読み取り専用」モードに設定したいと思います。fdisk mkfs wipefs

私はchmod ugo-w /dev/sdXそれがうまくいくと思いました。しかし、驚くべきことに、chmod 0000 /dev/sdc1次のmkfs /dev/sdc1作品は完全に大丈夫でした。

すべてのユーザー(ルートを含む)がハードドライブとそのパーティションテーブルを変更し、ハードドライブをパーティション分割し、マウントされたファイルシステムを介さずにパーティションに書き込むのを防ぐ方法は?必要に応じて、この方法を使用してドライブへの書き込みをどのように有効にできますか?

デバイスをユーザーが所有できることを知っています。ただし、これを行うには、chrootまたは同じmountコマンドを実行するにはユーザーとルートを切り替える必要があります。umountこれはセキュリティ上の抜け穴です。すべてのUSBストレージデバイスをユーザーが所有したくありません。より良いソリューションを探しています。理想的には、ルートを維持しますが、間違ったディスクをフォーマットしないことをお勧めします。

ベストアンサー1

使用を検討してください/dev/disk/by-{path,id}/

/dev/disk/by-path/ブロックデバイスへのシンボリックリンクがあります。ここで、シンボリックリンクの名前は、デバイス(サブシステム、バス、コントローラ、ポートなど)への「ハードウェアパス」を表します。マイシステムの編集リストには、NVMEデバイス、SATAデバイス、およびUSBドライブ(および各ドライブの最初のパーティション)が表示されます。

/dev/disk/by-path
├── pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:0 -> ../../sdc
├── pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:0-part1 -> ../../sdc1
├── pci-0000:00:17.0-ata-2 -> ../../sda
├── pci-0000:00:17.0-ata-2-part1 -> ../../sda1
├── pci-0000:02:00.0-nvme-1 -> ../../nvme0n1
└── pci-0000:02:00.0-nvme-1-part1 -> ../../nvme0n1p1

/dev/disk/by-id同様に機能しますが、サブシステム、デバイスメーカー/モデル、シリアル番号があります。サムスンのストレージがたくさんあるようです。

/dev/disk/by-id
├── ata-Samsung_SSD_860_EVO_500GB_XXXXXXXXXXXXXXX -> ../../sda
├── ata-Samsung_SSD_860_EVO_500GB_XXXXXXXXXXXXXXX-part1 -> ../../sda1
├── nvme-Samsung_SSD_980_PRO_1TB_XXXXXXXXXXXXXXX -> ../../nvme0n1
├── nvme-Samsung_SSD_980_PRO_1TB_XXXXXXXXXXXXXXX-part1 -> ../../nvme0n1p1
├── usb-Samsung_Flash_Drive_FIT_XXXXXXXXXXXXXXXX-0:0 -> ../../sdc
└── usb-Samsung_Flash_Drive_FIT_XXXXXXXXXXXXXXXX-0:0-part1 -> ../../sdc1

接続されたUSBドライブを(Sata / nvme)システムドライブと混同しないことが目標であると仮定すると、これらの名前が役に立つ可能性があります。次のコマンドの名前を使用すると、期待どおりに機能します。

fdisk /dev/disk/by-id/usb-Samsung_Flash_Drive_FIT_XXXXXXXXXXXXXXXX-0:0
mke2fs /dev/disk/by-id/usb-Samsung_Flash_Drive_FIT_XXXXXXXXXXXXXXXX-0:0-part1

これがあなたの注意を引いて停止するのに十分であることを願っています。

mke2fs /dev/disk/by-id/nvme-Samsung_SSD_980_PRO_1TB_XXXXXXXXXXXXXXX-part1

おすすめ記事