Bash: Berechtigung zum Schreiben in die Datei verweigert

Bash: Berechtigung zum Schreiben in die Datei verweigert

Ich folgte diesemAnleitungzu „So erstellen Sie Linux-Proc-Dateien in einem C-Programm mit LKM“.

Ich habe mein Modul erfolgreich erstellt und geladen. Jetzt möchte ich ein Echo in meine Proc-Datei senden, um sicherzustellen, dass die Methode aufgerufen wird, die aufgerufen werden soll.

Ich habe versucht:

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

Wie kann ich die Berechtigungen erhöhen, um auf diese Datei zuzugreifen? Ich bin der einzige Benutzer und Administrator dieses Systems.

Antwort1

Aber da steht, die Erlaubnis wurde verweigert!

Dies liegt wahrscheinlich daran, dass Sie beim Aufruf restriktive Berechtigungen festgelegt haben create_proc_entry(). (0644 entspricht „u=rw,go=r“, wodurch nur dem Eigentümer (standardmäßig root) Schreibberechtigung erteilt wird.)

Ich habe „sudo“ davor gesetzt – dieselbe Meldung.

Umleitungen wie >oder |werden von der laufenden Shell durchgeführt,Vores ruft auf sudo.

Sie müssen entweder verwenden sudo sh -c "echo blah > /proc/blah"oder eine Root-Shell mit ausführen sudo -s.

Ich bin der einzige Benutzer – dies ist meine eigene persönliche Maschine!

Dies spielt unter Linux keine Rolle. Dateiberechtigungen werden unabhängig davon erzwungen, wer den Computer verwendet.

Wenn Sie das nicht möchten, melden Sie sich entweder als root an oder verwenden Sie , pam_capum sich die cap_dac_overrideBerechtigung zu erteilen – aber beide MethodenWillefrüher oder später Probleme verursachen.

verwandte Informationen