私のスクリプトには/ dev / sdXへの書き込み権限が必要です。 rootとして実行したくない場合はどうすればよいですか?

私のスクリプトには/ dev / sdXへの書き込み権限が必要です。 rootとして実行したくない場合はどうすればよいですか?

f3私は、次のように多数のUSBドライブのフォーマットとテスト(使用)を処理するBashスクリプトを開発しています。

mkntfs -QF /dev/sdX

私はrootでスクリプトを実行しました。

sudo MyScript.sh

しかし、今日は、ツールをモジュラーに再設計している間、誤ってスクリプトを実行するたびにオペレーティングシステムがクラッシュすることがありました。さまざまなアプリケーションがシャットダウンまたは中断され、基本的なコマンドライン操作を実行できなくなりました。幸い、再起動ですべてが解決されましたが、もう一度考えました。本物このスクリプトをrootとして実行することはできませんか?

問題は、一般ユーザーを制限する操作(たとえば、/ dev /のデバイス文字ファイルへの書き込みアクセス)を実行する必要があることです。

スクリプトに正確な権限を与え、不幸な誤字が原因でハードドライブが消去または破損する可能性を防ぐにはどうすればよいですか/dev/null

答え1

udevUSBドライブを一致させ、選択したグループに書き込むためのルールを追加してから、そのグループでスクリプトを実行できます。

次の一致は、リムーバブルUSBドライブを識別する必要があります。

KERNEL=="sd*[!0-9]", ATTR{removable}=="1", SUBSYSTEMS=="usb"

関連情報