Apa yang dimaksud dengan su> echo "<username>"?


17

Ketika saya memasukkan perintah

su > echo  "sachin"

itu meminta kata sandi. Ketika saya memberikan kata sandi, beberapa hal aneh terjadi seperti yang Anda lihat:

Masukkan deskripsi gambar di sini

Satu hal lagi: ada pengguna lain, Hadoop , di laptop saya, tetapi ketika saya melakukannya

su > echo "Hadoop"

ia mengatakan

tidak ada entri passwd untuk Hadoop

Apa artinya ini?


su adalah meminta izin pengguna super, gema adalah untuk mencetak sesuatu, gema <teks> adalah untuk mencetak teks,> adalah yang mengikuti, seperti, su> gema "sachin" sama dengan su sachin, karena gema " sachin "mengembalikan sachin
— OverCoder

3
@ Yousef's: Tidak. echoTidak dieksekusi. itu setelah perintah pengalihan ">", sehingga dibaca sebagai nama file. Sisa argumen dilewatkan suseperti biasa!
— Rmano

1
@ Yousef's Anda mungkin berpikir su $(echo "sachin"). Itu akan melakukan apa yang Anda katakan.
— Eliah Kagan

hmmmm, maaf untuk info yang salah, saya tidak begitu yakin tentang hal itu tetapi saya mencobanya dan itulah yang pertama kali saya
— ketahui

Jawaban:


30

Ah! Teka-teki yang bagus!

Katakan saja " exit", dan semua file Anda akan ada di sana (dan output yang Anda lewatkan dalam sebuah file bernama echo).

Penjelasan:

 su > echo user 

sama dengan

 su user > echo

Jadi Anda memulai (sub) shell dengan su(beralih pengguna) ke pengguna Anda, dengan semua output diarahkan ke file bernamaecho !

Lihat:

[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
Jawaban yang bagus. Aspek kunci yang membingungkan dan menarik dari teka-teki ini adalah bahwa, meskipun kami biasanya menyediakannya pada akhir (atau kadang-kadang awal) dari perintah sederhana, pengalihan sebenarnya dapat pergi ke mana saja - bahkan di antara argumen. Kami melihat perintah seperti su user > echosepanjang waktu, dan > echo su userdengan beberapa frekuensi, tetapi su > echo userhampir tidak pernah, karena jarang ada alasan praktis untuk menulis perintah dengan cara yang membingungkan. (Bahwa sintaksis semacam itu diterima kadang-kadang berguna ketika secara otomatis menghasilkan perintah dari suatu program atau skrip.)
— Eliah Kagan

2
@ ElliKagan ya --- dan kebingungan di sini ditingkatkan dengan nama file. su > stdout.txt usertidak akan terlalu rumit ...
— Rmano

@EliahKagan Belajar!
— laike9m
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.