
echo $PATH
루트가 아닌 사용자의 경우 를 사용하면 다음과 유사하다는 내용을 읽었습니다 .
/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/username/bin:
echo $PATH
ROOT 사용자의 경우 를 사용하면 다음과 유사하다는 내용을 읽었습니다 .
/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
를 입력하면 다음과 같은 결과 echo $PATH
가 나타납니다.
/home/uname/bin:/home/uname/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
이는 루트 사용자에 대한 출력이 되어야 하는 것처럼 보입니다. 루트 액세스를 시작하지 않았을 때 (무단 원격) 루트 액세스를 제공하는 내 디렉터리에 "악성 실행 프로그램"이 있는 것과 같이 이것이 제가 걱정해야 할 사항입니까?
답변1
'악의적인' 공격은 아닐 것 같지만 PATH는 걱정해야 할 부분입니다. 해당 PATH의 디렉터리를 고려해 보겠습니다.
/home/uname/bin
/home/uname/.local/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
두 가지 의견이 있습니다.
/home/uname/bin
및home/uname/.local/bin
은 PATH에 나열된 첫 번째 디렉터리이기 때문에 해당 디렉터리의 실행 파일이 표준 시스템 실행 파일을 재정의할 수 있습니다. 누군가는 그러한 실행 파일이 표준 실행 파일보다 우수하다고 믿을 수도 있습니다. 그러나 해당 실행 파일과 표준 실행 파일 간의 비호환성은 예상치 못한 순간에 쉽게 스크립트 오류를 일으킬 수 있습니다.확실히 이러한 디렉터리를 PATH 시작 부분에 두는 것은 드문 일이 아니며 유용할 수 있습니다. 잠재적인 단점만 알고 있어야 합니다.
아시다시피
/usr/local/sbin
,/usr/sbin
, 및 같은 디렉토리는/sbin
일반적으로 루트에만 유용합니다. 에 이러한 항목을 포함하는 것이 보안 위반은 아니지만PATH
이상합니다.