Ich weiß, dass wir das folgende Format verwenden können, um die Bildschirmausgabe in eine Datei umzuleiten:
$ your_program > /tmp/output.txt
Wenn ich jedoch den folgenden Befehl verwendet habe, heißt es "-bash: /home/user/errors.txt: Berechtigung verweigert".
sudo tail /var/log/apache2/error.log > ~/errors.txt
Darf ich wissen, wie diese Ausgabe funktioniert? Die Datei ~ / Errors.txt existiert nicht. Muss ich diese txt-Datei zuerst erstellen, bevor ich den Umleitungsbefehl verwende?
permissions
sudo
io-redirection
output
Xianlin
quelle
quelle
echo hi > ~/errors.txt
? Ist/home/user
Ihr korrektes Home-Verzeichnis (oder hat Bash irgendwie verwirrt, wo sich Ihr Home-Verzeichnis befindet)?user
der Benutzer, der den Befehl ausführt?sudo
.sudo
erlaubt keine Umleitung. Zu viele Möglichkeiten, damit die Leute damit ungezogene Dinge tun können, die nicht in dersudoers.conf
Datei enthalten sind. Alternativ können Siesudo bash -c "tail /var/log/apache2/error.log > ~/errors.txt"
das Ende von Errors.log in die Datei in Ihrem Home-Verzeichnis verschieben.Antworten:
Hinter dem Rohr funktioniert der Sudo nicht. Ich weiß nicht, warum Sie nicht zu Ihnen nach Hause schreiben können - vielleicht gehört die Datei zu root?
Vielleicht brauchen Sie einen anderen Benutzer hinter dem Rohr. Natürlich benötigen Sie keine bereits vorhandene Datei.
quelle
Wenn Sie schreiben
sudo somecommand > ~/errors.txt
, ist die Shell, die aufruftsudo
(und wie Sie ausgeführt wird), diejenige, die die Umleitung und das Öffnen ausführt~/errors.txt
. Siehe Umleiten von stdout in eine Datei, für die Sie keine Schreibberechtigung haben . Normalerweise besteht das Problem in diesem Fall darin, dass root in die Datei schreiben soll. In der verknüpften Frage finden Sie Möglichkeiten dazu.Hier ist es seltsam, dass Sie nicht in eine Datei in Ihrem Home-Verzeichnis schreiben können. Möglicherweise haben Sie zuvor eine Ausgabe als root in gespeichert
/home/user/errors.txt
, und diese Datei ist jetzt vorhanden und gehört zu root. Entfernen Sie die Datei (Sie können dies tun, solange Sie über Schreibberechtigung verfügen/home/user
, und können sie dann als Benutzer erstellen.Wenn die Datei wirklich nicht vorhanden ist, haben Sie keine Schreibberechtigung in Ihrem Home-Verzeichnis. Obwohl dies technisch möglich und gelegentlich für einige eingeschränkte Benutzer nützlich ist, ist es sehr ungewöhnlich.
quelle