Android나 iOS처럼 권한이 없는 이유는 무엇인가요?

Android나 iOS처럼 권한이 없는 이유는 무엇인가요?

Linux에 GIMP나 LibreOffice와 같은 프로그램을 설치할 때 권한을 요청하는 메시지가 전혀 표시되지 않습니다. Ubuntu에 프로그램을 설치함으로써 프로그램에 내 드라이브의 어느 곳에서나 읽고 쓸 수 있는 전체 권한과 인터넷에 대한 전체 액세스 권한을 명시적으로 부여합니까?

이론적으로 김프는 sudo 유형의 비밀번호를 요구하지 않고도 내 드라이브의 디렉토리를 읽거나 삭제할 수 있습니까?

이것이 가능한지 여부가 아니라 기술적으로 가능한지 궁금합니다. 물론, 나는 이것이 가능성이 없다는 것을 알고 있습니다.

답변1

여기에는 두 가지 사항이 있습니다.

  • 표준 수단(Ubuntu의 apt/apt-get과 같은 시스템 설치 프로그램)을 통해 프로그램을 설치하면 일반적으로 모든 사용자가 사용할 수 있는 일부 디렉터리(/usr/bin...)에 설치됩니다. 이 디렉터리에는 쓰기 권한이 필요하므로 설치 중에 특별한 권한이 필요합니다.

  • 프로그램을 사용하면 해당 프로그램은 귀하의 사용자 ID로 실행되며 귀하의 ID로 실행되는 프로그램이 읽거나 쓸 수 있는 위치에서만 읽거나 쓸 수 있습니다. Gimp에 관한 한, 표준 리소스(예: 브러시)는 공유에 있고 /usr/share/gimp/먼저 복사해야 하기 때문에 편집할 수 없다는 것을 알게 될 것입니다. 이는 또한 Edit>Preferences>Folders대부분의 폴더가 쌍으로 나타나며 시스템 폴더는 읽기 전용이고 사용자 폴더는 쓰기 가능하다는 것을 보여줍니다.

답변2

Ubuntu에 프로그램을 설치함으로써 프로그램에 내 드라이브의 어느 곳에서나 읽고 쓸 수 있는 전체 권한과 인터넷에 대한 전체 액세스 권한을 명시적으로 부여합니까?

예, 또는 이에 상응하는 제품을 사용하는 경우 sudo제공됩니다.설치 프로그램드라이브의 모든 위치에 대한 전체 읽기/쓰기 액세스 권한이 있습니다. 기본적으로는 똑같습니다. 설치 프로그램은 setuid라는 플래그를 설정할 수도 있으며, 이는 설치 후에도 프로그램에 전체 권한을 부여합니다.

설치 프로그램을 무시하고 프로그램이 setuid가 아니더라도(프로그램에서 setuid를 사용하는 경우는 매우 드뭅니다) 프로그램을 실행하면 계정이 액세스할 수 있는 모든 항목에 대한 전체 액세스 권한을 갖습니다. 예를 들어, 온라인 뱅킹에 로그인하면 모든 자금이 나이지리아로 전송될 수 있습니다.

Android나 iOS처럼 권한이 없는 이유는 무엇인가요?

Linux의 보안 모델(즉, 보안 시스템이 설계되는 방식)은 매우 오래되었습니다. Unix에서 상속되었으며 1960년대까지 거슬러 올라가는 역사를 가지고 있습니다. 당시에는 인터넷이 없었고, 부서 내 대부분의 사람들이 같은 컴퓨터를 사용했습니다. 대부분의 프로그램은 신뢰할 수 있는 대규모 회사에서 제공됩니다. 따라서 보안 시스템은 사용자가 실행하는 프로그램이 아닌 사용자를 서로로부터 보호하도록 설계되었습니다.

오늘은 꽤 구식입니다. Android는 Linux를 기반으로 하지만 각 사용자 대신 각 애플리케이션에 대해 별도의 "사용자 계정"을 생성하여 작동합니다. iOS에서는 무엇을 사용해야 할지 모르겠습니다. Flatpak과 같은 회사는 현재 Linux 데스크탑에 동일한 기능을 제공하려고 노력하고 있습니다.

답변3

Flatpack 앱은 당신이 원하는 것을 제공합니다. 이는 iOS, Android 또는 Windows App Store 앱과 매우 유사합니다.

아직 사용해본 적이 없어서 각 앱을 설치할 때 어떤 권한이 필요한지 확인할 수 있는 GUI를 구현했는지는 모르겠습니다.

https://blogs.gnome.org/alexl/2017/01/20/the-platpak-security-model-part-2-who-needs-sandboxing-anyway/

모든 Flatpak 애플리케이션에는 메타데이터라는 매니페스트가 포함되어 있습니다. 이 파일은 해당 ID(app-id) 및 사용하는 런타임과 같은 애플리케이션의 세부정보를 설명합니다. 또한 애플리케이션에 필요한 권한도 나열되어 있습니다.

기본적으로 설치 후 애플리케이션은 요청하는 모든 권한을 받게 됩니다. 그러나 flatpak 재정의를 사용하여 각 flatpak 실행 호출에 대한 권한을 재정의하거나 애플리케이션별로 전역적으로 권한을 재정의할 수 있습니다(자세한 내용은 flatpak-run 및 flatpak-override 매뉴얼 페이지 참조). 애플리케이션 권한 처리는 현재 인터페이스에 다소 숨겨져 있지만 장기적인 계획은 설치 중에 권한을 표시하고 이를 더 쉽게 재정의할 수 있도록 하는 것입니다.

또한 Ubuntu 대안인 Snappy를 사용하지 않았으며 이것이 GUI에 표시되는 기능을 제공하는지 여부도 모릅니다.

답변4

Android는 "마켓플레이스" 보안 모델을 사용합니다. 다양한 애플리케이션은 서로 다른(반신뢰할 수 있는) 공급업체에서 제공되며 보호되는 리소스 및 서로 격리되어야 합니다. 대부분의 앱은 이익을 위해 배포됩니다. 앱은 판매되거나(유료 소프트웨어), 유료 광고를 표시하거나, 제3자에게 데이터를 판매하여 사용자에게 "수익을 창출"합니다. 적발되더라도 불법적인 데이터 접근에 참여할 유인이 높습니다.

Debian, Red Hat 및 이와 유사한 "클래식" Linux 배포판의 대부분의 응용 프로그램은 소스 코드로 배포됩니다. 오픈 소스 응용 프로그램이 충분한 관심을 얻은 후에 배포 관리자는 이를 포함하도록 수동으로 선택합니다. 불법적인 데이터 액세스를 수행할 동기가 거의 없습니다. 잠재적인 이익이 노력을 정당화하지 못합니다.

Android의 고급 보안 모델은 Android가 모바일 시장에서 많은 관심을 받고 iOS를 쉽게 압도할 수 있었던 이유 중 하나라는 점은 주목할 가치가 있습니다. 최신 데스크톱 Linux 배포판은 "다를" 뿐만 아니라 실제로 보안 및 배포 모델 측면에서 시대에 훨씬 뒤떨어져 있습니다.

일부 Linux 배포판에서는 중앙 집중식 타사 소프트웨어 저장소(AUR), 타사 소프트웨어 배포를 위한 특수 패키지 형식(AppImage, Snappy, Flatpack), 보조 저장소 시스템(Docker) 등 소프트웨어 배포 시스템을 개선하고 있습니다. 불행하게도 이러한 개선 사항은 시간이 지남에 따라 거의 관심을 끌지 못했습니다. AppImage는 2004년에 발명되었고 AUR의 첫 번째 버전은 2005년에 출시되었지만 10년이 넘도록 최신 Linux 배포판에서는 이 기능을 공식적으로 채택하지 않았습니다.

관련 정보