デバイスを読むために管理者権限が必要なのはなぜですか?

デバイスを読むために管理者権限が必要なのはなぜですか?

私のサムドライブをイメージとして保存するバックアップスクリプトを作成しようとしています。自動的に作成します。私はいつもサムドライブがリストされていることを見て、/dev/sdbそれをgzipで圧縮されたtarballとして保存するスクリプトを作成しました。

複製しようとして、dd次のエラーが見つかりました。

dd: failed to open ‘/dev/sdb’: Permission denied

これがただ偶然かどうか疑問に思ってcatコマンドをパイプしようとしましたが、次のddエラーが発生しました。

cat: /dev/sdb: Permission denied
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000620078 s, 0.0 kB/s

もちろん、私はスーパーユーザーなので、sudoこれを行うことができます。ただし、これによりスクリプトの自動要素が削除されます。

デバイスを変更しない場合、なぜスーパーユーザー権限が必要なのですか?また、この問題を解決する方法はありますか?

ベストアンサー1

Unix/Linux システムはマルチユーザーです。元のストレージデバイスへの読み取りアクセス権を持つ人は、ファイル所有者とその権限に関係なく(もちろん暗号化されたファイルシステムのモジュールとして)そのデバイス上のすべてのファイルを読み取ることができます。したがって、伝統的に、rawデバイスはroot管理グループ(orなど)のメンバーにのみアクセスを許可し、信頼できる管理ユーザーまたはバックアップジョブユーザーをそのグループに配置できます。operatordisk

udevを実行しているGNU / Linuxディストリビューションで、フロッピーやテープ以外の50-udev-default.rulesすべてのブロックとSCSIデバイスをグループに入れ、グループに読み取り/書き込み権限を付与します。したがって、考えられる解決策の1つは、このグループで直接編集を使用するか、自分自身を追加することです。ログアウトしてもう一度ログインしてください。/devdiskusermod/etc/group

おすすめ記事