./ 없이 명령 실행

./ 없이 명령 실행

저는 많은 분들에게는 간단할 수 있지만 일상적인 Windows 사용자인 저에게는 꽤 혼란스러울 수 있는 내용을 이해하려고 노력하고 있습니다.

나는 팔로우하고 있다도커 설치Mac OS X의 경우.

단계 중 하나는 다음과 같습니다.

$ chmod +x boot2docker

다음 단계는 다음과 같이 boot2docker를 사용하는 것입니다.

$ boot2docker init

그러나 이것은 나에게 효과가 없습니다. 작동하는 것은 다음과 같습니다.

 $ ./boot2docker init

따라서 이 튜토리얼에서는 암시적으로 실행해야 한다고 가정합니다. ./아니면 bash에서 이를 입력하지 않고 무언가를 실행할 수 있는 방법이 있습니까?

답변1

차이점은 Windows에는 .항상 단일 사용자 시스템이었던 DOS에서 상속받은 경로가 암시적으로 있다는 것입니다.

Mac OS X은 다중 사용자 시스템인 Unix를 기반으로 구축되었습니다. 보안상의 이유로 .경로에 암시적으로 존재하지 않습니다.

.경로에 없을 때 현재 디렉터리에서 명령을 실행하려면 명령 앞에 ./현재 디렉터리에서 명령을 실행하겠다는 것을 쉘에 명시적으로 알려야 합니다. 이 기호는 경로에 ./있는지 여부에 관계없이 적용됩니다. 제거하면 .경로에 있는 경우 에만 ./작동합니다 . .따라서 문서에는 일반적으로 이 ./섹션이 포함됩니다.

.경로에 포함되면 보안에 어떤 영향을 미치나요?

홈 디렉토리 cd ~joker에 입력했다고 가정합니다 . joker다음으로 입력하여 ls어떤 파일이 있는지 확인합니다. .경로의 시작 부분에 있는 경우 사용자 계정으로 무엇이든 할 수 있는 joker홈 디렉터리에 호출되는 스크립트가 있을 수 있습니다 .ls

.그것이 경로의 마지막 항목 이라면 그다지 나쁘지 않을 것입니다. 이전 시나리오에서는 ls홈 디렉터리에 있는 명령이 아닌 실제 명령을 실행했습니다 . joker하지만 잘못된 ls명령을 입력했을 수도 있습니다. 손가락이 미끄러져 타이핑 중일 수 있습니다 ks. 그러면 ks이전 디렉토리를 찾을 수 없지만 .쉘이 홈 디렉토리에 도달하면 결국 명령을 홈 디렉토리에서 찾을 수 있습니다.ksjoker

관련 정보