Habe Root-Zugriff, Berechtigung nach Verwendung des Cat-Befehls trotzdem verweigert

Habe Root-Zugriff, Berechtigung nach Verwendung des Cat-Befehls trotzdem verweigert

Ich habe versucht, ein SSL-Zertifikat (GoDaddy) zu installieren, indem ich deren Anweisungen für nginx auf Centos befolgt habe. Die Zip-Datei, die ich von GoDaddy heruntergeladen habe, enthält 3 Dateien – ein primäres Zertifikat, ein Zwischenzertifikat und eine PEM-Datei.
Ich habe Root-Zugriff auf meinen Ubuntu VPS.

Aber wenn ich benutze

sudo cat f84e19a2f44c6386.crt gd_bundle-g2-g1.crt >> coolexample.crt

Ich bekomme

bash: coolexample.crt: Permission denied.  

Antwort1

Wenn sudo cat aausgeführt wird, DateiADer Inhalt von wurde gelesen und mit sudoPrivilegien auf der Standardausgabe ausgegeben. Die Umleitung des Textes wurde von der Shell durchgeführt und an die Datei angehängt.B(da >>verwendet wurde). In diesem speziellen Fall scheint es, dass die Datei nicht von einem Nicht-Superuser geändert werden durfte.

Obwohl es sinnvoll erscheint, die Shell als Root mit oder auszuführen sudo su, um diese Einschränkung zu umgehen,sudo -isudo -sAberes wird nicht empfohlen. Es kann vorkommen, dass die Shell mit Privilegien ausgeführt wurde sudound unwissentlich, ohne die Root-Shell zu verlassen, ein anderer Befehl verwendet wird. Und wenn dieser Befehl falsch eingegeben wird, kann dies dem System ernsthaften Schaden zufügen.

In solchen Fällen catkann die Ausgabe von weitergeleitet werden undteekann verwendet werden. Es ist ein Dienstprogramm, das die Eingabe von der Standardeingabe liest und in eine Datei und Standardausgabe ausgibt. Da Sie die Datei anhängen möchten, -akann die Option verwendet werden. Daher sieht der Befehl folgendermaßen aus:

sudo cat f84e19a2f44c6386.crt gd_bundle-g2-g1.crt | sudo tee -a coolexample.crt

Ich nahm an, dassf84e19a2f44c6386.crtUndgd_bundle-g2-g1.crthatte keine Berechtigung, von normalen Benutzern gelesen zu werden.

Antwort2

Versuchen Sie, sich als Superuser anzumelden mit

sudo -s

und versuchen Sie Ihren Befehl dann zunächst erneut, ohne sudo.

Der Grund, warum es nicht funktioniert, liegt darin, dass die Umleitung von der Shell und nicht von cat durchgeführt wird. Weitere Informationen finden Sie in dieser Antwort:https://askubuntu.com/a/230482

verwandte Informationen