Linux - 루트 경로에 '.' 또는 '::' 가져오기

Linux - 루트 경로에 '.' 또는 '::' 가져오기

저는 Miscellaneous Config 작업을 하고 있으며 root 작업을 하고 있습니다 PATH. 보안에 위협이 되기 때문에 경로에서 제거 .해야 한다고 들었습니다 . ::다음 예제 명령 출력이 있습니다 PATH.

/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java7_64/jre/bin:/usr/java7_64/bin:/opt/IBM/xlC/13.1.3/bin

::이 출력 이 포함되거나 .위 경로에서 어떻게 보일지 확실하지 않기 때문에 그 구조에 대한 아이디어를 얻을 수 있습니다.

이에 대한 도움을 주시면 대단히 감사하겠습니다.

답변1

이는 PATH콜론으로 구분된 경로 목록일 뿐입니다. 항목이 .비어 있으면 현재 디렉터리를 나타냅니다. 또한 선행 및 후행 빈 항목도 계산됩니다(선행 또는 후행 콜론으로 생성됨).

따라서 PATHis 인 경우 두 개의 항목 이 /bin:/usr/bin포함되므로 현재 디렉터리를 참조하지 않습니다./bin/usr/bin

반면에 /bin::/usr/bin:.:/usr/local/bin:6개의 항목이 포함되어 있습니다 /bin:비어 있는, /usr/bin, ., /usr/local/bin그리고비어 있는. 항목 .과 빈 항목은 원하지 않는 현재 경로를 참조합니다.

PATH문자열을 콜론으로 분할하고 결과 문자열을 검사하면 구문 분석이 가장 쉽습니다. 이를 수행하는 방법은 전적으로 프로그래밍 언어에 따라 다릅니다.

관련 정보