su> echo“<username>”은 무슨 뜻입니까?


17

내가 명령을 입력했을 때

su > echo  "sachin"

암호를 요구하고있었습니다. 비밀번호를 입력하면 다음과 같이 이상한 일이 발생했습니다.

여기에 이미지 설명을 입력하십시오

한가지 더 : 랩톱에 다른 사용자 인 Hadoop이 있지만, 할 때

su > echo "Hadoop"

그것은 말한다

하둡에 대한 암호 항목이 없습니다

이것은 무엇을 의미 하는가?


su는 수퍼 유저 권한을 요청하고, echo는 무언가를 인쇄하고, echo <text>는 텍스트를 인쇄하고,>는 다음과 같습니다.> su> echo "sachin"은 su sachin과 동일합니다. echo " sachin은 "반환 sachin
OverCoder

3
@ Yousef 's : 아니요 echo. 실행되지 않습니다. 리디렉션 명령 ">"뒤에 있으므로 파일 이름으로 읽습니다. 나머지 논쟁은 su평소와 같이 전달됩니다 !
Rmano

1
@ Yousef 's 당신이 생각하고 있을지도 모른다 su $(echo "sachin"). 그것은 당신이 말하는 것을 할 것입니다.
Eliah Kagan

흠, 잘못된 정보를 원하시면 미안, 난 그것에 대해 정말 확실하지 않았다하지만 난 그것을 시도하고 내가 처음 알아 낸 것을의, 덕분에 올바른 정보를 원하시면 저를 알리는
OverCoder

답변:


30

아! 멋진 퍼즐!

" exit" 라고 말하면 모든 파일이 있습니다 (및 파일에서 누락 된 출력 echo).

설명:

 su > echo user 

와 같다

 su user > echo

따라서 su사용자 에게 (사용자 전환 )으로 (서브) 쉘을 시작하고 모든 출력은echo ! 라는 파일로 리디렉션됩니다 .

보기:

[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
좋은 대답입니다. 이 퍼즐의 혼란스럽고 흥미로운 부분은 보통 간단한 명령의 끝 (또는 때로는 시작 부분)에이를 제공하지만, 방향 전환은 실제로 인수 사이에서 어디든 갈 수 있다는 것입니다. 명령을 혼란스러운 방식으로 작성해야하는 실질적인 이유가 거의 없기 때문에 우리는 su user > echo항상 어떤 방식 으로든 > echo su user, 어떤 빈도 su > echo user로도 명령을 봅니다. (이러한 구문은 프로그램이나 스크립트에서 자동으로 명령을 생성 할 때 유용합니다.)
Eliah Kagan

2
@EliahKagan yes --- 여기 혼란은 파일 이름에 의해 향상됩니다. su > stdout.txt user그렇게 까다
롭지

@EliahKagan 배웠다!
laike9m
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.