Bash: ファイルの書き込み権限が拒否されました

Bash: ファイルの書き込み権限が拒否されました

私はこれに従いましたチュートリアルガイド「LKM を使用して C プログラムで Linux Proc ファイルを作成する方法」

モジュールを正常に作成し、ロードしました。次に、proc ファイルに echo して、呼び出されるべきメソッドが呼び出されていることを確認します。

私が試してみました:

$ echo "hello" > /proc/procEntry123       # But it says permission is denied!
$ sudo echo "hello" > /proc/procEntry123  # Same error message.

このファイルにエコーするために権限を昇格するにはどうすればいいですか? 私はこのシステムの唯一のユーザーであり管理者です。

答え1

しかし、許可が拒否されたと表示されます。

を呼び出すときに制限的な権限を設定したために、このように表示される可能性がありますcreate_proc_entry()。(0644 は「u=rw,go=r」に変換され、所有者にのみ書き込み権限が与えられます。所有者はデフォルトで root になります。)

その前に「sudo」を付けましたが、同じメッセージです。

>またはなどのリダイレクトは|実行中のシェルによって実行されます。前にを呼び出しますsudo

sudo sh -c "echo blah > /proc/blah"を使用するか、 でルート シェルを実行する必要がありますsudo -s

ユーザーは私だけです。これは私専用のマシンです。

Linux ではこれは問題になりません。ファイルの権限は、誰がコンピューターを使用するかに関係なく適用されます。

それが嫌なら、rootとしてログインするか、または権限をpam_cap自分に与えるために使用してくださいcap_dac_override。ただし、どちらの方法でも意思遅かれ早かれトラブルを引き起こす。

関連情報