Als ich den Befehl eingab
su > echo "sachin"
Es wurde nach einem Passwort gefragt. Als ich mein Passwort gab, passierten einige seltsame Dinge, wie Sie sehen können:
Eine weitere Sache: Es gibt einen anderen Benutzer, Hadoop , auf meinem Laptop, aber wenn ich es tue
su > echo "Hadoop"
es sagt
kein passwd Eintrag für Hadoop
Was bedeutet das?
command-line
bash
sudo
Sachin Setiya
quelle
quelle
echo
wird nicht ausgeführt. Es steht nach dem Umleitungsbefehl ">", wird also als Dateiname gelesen. Der Rest der Auseinandersetzung wirdsu
wie gewohnt weitergereicht!su $(echo "sachin")
. Das würde tun, was du sagst.Antworten:
Ah! Schönes Puzzle!
Sagen Sie einfach "
exit
" und alle Ihre Dateien werden dort sein (und die Ausgabe, die Sie in einer Datei mit dem Namen " " verpassenecho
).Erläuterung:
ist das gleiche wie
Sie starten also eine (Unter-) Shell mit
su
(Benutzer wechseln) zu Ihrem Benutzer, wobei alle Ausgaben in eine Datei namens umgeleitet werdenecho
!Aussehen:
quelle
su user > echo
immer und> echo su user
mit einiger Häufigkeit, abersu > echo user
fast nie, da es selten einen praktischen Grund gibt, einen Befehl so verwirrend zu schreiben. (Dass eine solche Syntax akzeptiert wird, ist gelegentlich nützlich, wenn Befehle automatisch aus einem Programm oder Skript generiert werden.)su > stdout.txt user