저는 많은 분들에게는 간단할 수 있지만 일상적인 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
이전 디렉토리를 찾을 수 없지만 .
쉘이 홈 디렉토리에 도달하면 결국 명령을 홈 디렉토리에서 찾을 수 있습니다.ks
joker