私はこれに従いましたチュートリアルガイド「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
。ただし、どちらの方法でも意思遅かれ早かれトラブルを引き起こす。