私はこれに従いました チュートリアルガイド 「LKMを使用してCプログラムでLinuxProcファイルを作成する方法」。
モジュールを正常に作成してロードしました。次に、procファイルにエコーして、呼び出されるはずのメソッドが呼び出されることを確認します。
私が試してみました:
$ echo "hello" > /proc/procEntry123 # But it says permission is denied!
$ Sudo echo "hello" > /proc/procEntry123 # Same error message.
このファイルにエコーする権限を昇格するにはどうすればよいですか?私はこのシステムの唯一のユーザーおよび管理者です。
しかし、それは許可が拒否されたと言っています!
create_proc_entry()
を呼び出すときに制限付きのアクセス許可を設定しているため、おそらくそう言っています。 (0644は "u = rw、go = r"に変換され、所有者に書き込み権限のみを付与します。デフォルトはrootになります。)
その前に「Sudo」を付けました。同じメッセージです。
>
や|
などのリダイレクトは、実行中のシェルによって実行されます。beforeSudo
を呼び出します。
Sudo sh -c "echo blah > /proc/blah"
を使用するか、Sudo -s
でルートシェルを実行する必要があります。
私は唯一のユーザーです-これは私自身の個人用マシンです!
Linuxではこれは問題ではありません。コンピューターの使用者に関係なく、ファイルのアクセス許可が適用されます。
それを望まない場合は、rootとしてログインするか、pam_cap
を使用してcap_dac_override
機能を自分に与えますが、どちらの方法でもwill遅かれ早かれ問題が発生します。