최근에 Arch Linux는 모든 응용프로그램을 /root 디렉토리에만 설치하는 반면, 다른 배포판에서는 사용자에게 /home 디렉토리에 설치할 수 있는 옵션을 제공한다는 것을 알게 되었습니다.
왜 그럴까요?
후속 조치로, 이는 악성 코드가 루트 디렉터리에 설치되어 전체 운영 체제에 액세스할 수 있는 경우 사용자 보안이 손상된다는 의미입니까? /home에 애플리케이션을 설치하는 것이 더 좋지 않을까요? 사람들이 이 문제에 대해 걱정해야 할까요?
답변1
귀하의 정보를 어디서 얻었는지 잘 모르겠습니다.
실제로 아치아니요이 /root
디렉터리에 모든 응용 프로그램을 설치합니다. 바이너리는 에 위치하며 , 다른 콘텐츠는 , 등에 /usr/local/bin
위치하는 경향이 있습니다 . 이것은 완전히 정상입니다. 단, 여러 사용자가 사용할 애플리케이션을 해당 폴더에 설치하는 경우에는 그러하지 않습니다 ./usr/share
/usr/lib
/usr/local
/home
답변2
패키지에 포함된 파일의 시스템 대상은 사용할 패키지 관리자의 책임입니다.
내가 평소에 아는 모든 패키지 관리자기본존경표준 위치일부 패키지에는 차이가 있을 수 있습니다(/usr보다 /usr/local을 선호하고 /bin과 /usr/bin /lib와 /usr/lib를 구별하거나... 구분하지 않음).
이것기본 기본 디렉터리이 계층구조(/)할 수 있는패키지 관리자에 따라 어떻게든 변경하세요. 팩맨(archlinux의 기본 패키지 관리자)는 다음 명령을 사용하여 시작할 수 있습니다-r 옵션대체 설치 루트 디렉터리를 지정합니다.
따라서 모든 패키지가 /root에 설치되어 있는데 이를 원하지 않는 경우 기본 시작 값을 재정의하지 않도록 하십시오 pacman -r /root
. 이러한 패키지를 /home에 명시적으로 설치 pacman -r /home
하고 표준 위치에 만족한다면 기본 위치를 사용하고 r 옵션을 사용하지 마십시오.
보안상의 이유로@카스댓글에 이렇게 썼습니다:
그런데 프로그램의 위치는 실제로 시스템 보안에 영향을 미치지 않습니다(비록 일반 사용자가 /root에 액세스할 수 없기 때문에 일반 사용자가 /root에 설치된 소프트웨어를 실행하지 못하게 할 수는 있지만). 중요한 것은 누가 이를 관리하고 어떤 권한을 갖고 있는지입니다. 프로그램이 일반 사용자로 실행되면 해당 사용자의 권한만 갖습니다(setuid 프로그램이 아닌 경우).
이에 더해 /root를 기본 디렉터리로 사용하려면 pacman 자체를 루트로 실행해야 하며, 따라서 루트로 프로그램을 실행하는 데 따른 모든 보안 영향에 노출되어야 합니다.