Cosa significa su> echo "<nomeutente>"?


17

Quando stavo inserendo il comando

su > echo  "sachin"

stava chiedendo una password. Quando ho dato la mia password, sono successe alcune cose strane come puoi vedere:

Inserisci qui la descrizione dell'immagine

Un'altra cosa: c'è un altro utente, Hadoop , sul mio laptop, ma quando lo faccio

su > echo "Hadoop"

dice

nessuna voce passwd per Hadoop

Cosa significa questo?


su è la richiesta di permessi per super user, l'eco è stampare qualcosa, l'eco <testo> è stampare testo, il> è ciò che segue, come, su> echo "sachin" è lo stesso di su sachin, perché echo " sachin "restituisce sachin
OverCoder il

3
@ Yousef: No. echonon eseguito. è dopo il comando di reindirizzamento ">", quindi viene letto come nome file. Il resto dell'argomento viene passato sucome al solito!
Rmano,

1
@ Yousef's Potresti pensare su $(echo "sachin"). Farebbe quello che stai dicendo.
Eliah Kagan,

hmmmm, mi dispiace per le informazioni sbagliate, non ne ero davvero sicuro ma l'ho provato ed è quello che ho capito per la prima volta, grazie per avermi informato con le informazioni giuste
OverCoder

Risposte:


30

Ah! Bel puzzle!

Basta dire " exit" e tutti i tuoi file saranno lì (e l'output che ti manca in un file chiamato echo).

Spiegazione:

 su > echo user 

equivale a

 su user > echo

Quindi stai avviando una (sotto) shell con su(cambia utente) per il tuo utente, con tutto l'output reindirizzato a un file chiamatoecho !

Guarda:

[romano:~] % cd tmp/dvd-usa-hd 
[romano:~/tmp/dvd-usa-hd] % ls
dvd-usa-hd_01_01.avi
[romano:~/tmp/dvd-usa-hd] % su > echo romano
Password: 
[romano:~/tmp/dvd-usa-hd] % ls
[romano:~/tmp/dvd-usa-hd] % exit
[romano:~/tmp/dvd-usa-hd] % ls
dvd-usa-hd_01_01.avi  echo
[romano:~/tmp/dvd-usa-hd] % cat echo
dvd-usa-hd_01_01.avi
echo
[romano:~/tmp/dvd-usa-hd] % 

13
Buona risposta. L'aspetto chiave confuso e interessante di questo puzzle è che, sebbene di solito li forniamo alla fine (o talvolta all'inizio) di un semplice comando, i reindirizzamenti possono effettivamente andare ovunque - anche tra gli argomenti. Vediamo comandi come su user > echosempre, e > echo su usercon una certa frequenza, ma su > echo userquasi mai, poiché raramente c'è qualche motivo pratico per scrivere un comando in modo così confuso. (Che tale sintassi venga accettata è talvolta utile quando si generano automaticamente comandi da un programma o uno script.)
Eliah Kagan,

2
@EliahKagan sì --- e la confusione qui è migliorata dal nome del file. su > stdout.txt usernon sarebbe così complicato ...
Rmano,

@EliahKagan Learned!
laike9m,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.