Linux에 GIMP 또는 LibreOffice와 같은 프로그램을 설치할 때 권한에 대해 묻지 않습니다. Ubuntu에 프로그램을 설치하면 드라이브의 어느 곳에서나 읽고 인터넷에 액세스 할 수있는 권한을 명시 적으로 부여합니까?
이론적으로 김프는 sudo 타입 암호를 요구하지 않고 내 드라이브의 디렉토리를 읽거나 삭제할 수 있습니까?
기술적으로 가능한지 궁금한지 아닌지 궁금합니다. 물론, 가능성이 낮다는 것을 알고 있습니다.
Linux에 GIMP 또는 LibreOffice와 같은 프로그램을 설치할 때 권한에 대해 묻지 않습니다. Ubuntu에 프로그램을 설치하면 드라이브의 어느 곳에서나 읽고 인터넷에 액세스 할 수있는 권한을 명시 적으로 부여합니까?
이론적으로 김프는 sudo 타입 암호를 요구하지 않고 내 드라이브의 디렉토리를 읽거나 삭제할 수 있습니까?
기술적으로 가능한지 궁금한지 아닌지 궁금합니다. 물론, 가능성이 낮다는 것을 알고 있습니다.
답변:
여기에는 두 가지가 있습니다.
표준 수단 (Ubuntu의 apt / apt-get과 같은 시스템 설치 프로그램)으로 프로그램을 설치할 때 일반적으로 모든 사용자가 사용할 수있는 일부 디렉토리 (/ usr / bin ...)에 설치됩니다. 이 디렉토리에는 특권을 작성해야하므로 설치 중에 특수 특권이 필요합니다.
프로그램을 사용할 때 사용자 ID로 실행되며 ID로 실행 된 프로그램이 읽거나 쓸 수있는 위치에서만 읽거나 쓸 수 있습니다. Gimp의 경우 예를 들어 브러쉬와 같은 표준 리소스가 공유 /usr/share/gimp/
되어 있고 먼저 복사해야 하기 때문에 브러쉬와 같은 표준 리소스를 편집 할 수 없습니다 . 또한 Edit>Preferences>Folders
대부분의 폴더가 쌍을 이루는 위치, 읽기 전용 시스템 및 쓸 수있는 시스템이 표시됩니다.
rm -rf ~/
. 다른 소스에서 설치하는 경우주의해야합니다 (또는 코드 검사 후 소스에서 설치).
우분투에 프로그램을 설치하면 드라이브의 어느 곳에서나 읽고 인터넷에 액세스 할 수있는 권한을 프로그램에 명시 적으로 부여합니까?
예 sudo
. 이와 동등한 것을 사용하는 경우 드라이브의 어느 곳에서나 읽고 쓸 수있는 권한을 설치 관리자 에게 부여합니다 . 이것은 대부분 같은 것입니다. 또한 설치 프로그램이 setuid라고하는 플래그를 설정하여 설치 후에도 프로그램이 전체 권한을 갖도록합니다.
설치 프로그램을 무시하고 프로그램이 setuid가 아닌 경우 (프로그램에서 setuid를 사용하는 경우는 매우 드)니다), 프로그램을 실행할 때 계정에서 액세스 할 수있는 모든 항목에 대한 전체 액세스 권한이 있습니다. 예를 들어, 온라인 뱅킹에 로그인 한 경우 모든 자금을 나이지리아로 보낼 수 있습니다.
Android 또는 iOS와 같은 권한이없는 이유는 무엇입니까?
보안 모델은 보안 시스템이 설계되는 방식을 의미하며 Linux에서 매우 오래되었습니다. 그것은 유닉스에서 상속되었으며 1960 년대로 거슬러 올라갑니다. 당시에는 인터넷이 없었으며 부서의 사람들은 대부분 같은 컴퓨터를 사용했습니다. 대부분의 프로그램은 신뢰할 수있는 대기업에서 나왔습니다. 따라서 보안 시스템은 사용자가 실행하는 프로그램으로부터 사용자를 보호하지 않고 서로를 보호하도록 설계되었습니다.
요즘에는 상당히 구식입니다. Android는 Linux를 기반으로하지만 모든 사용자 대신 모든 앱에 대해 별도의 "사용자 계정"을 만들어 작동합니다. iOS가 무엇을 사용하는지 모르겠습니다. Flatpak과 같은 노력은 현재 Linux 데스크톱에 동일한 종류의 것을 가져오고 있습니다.
Flatpack 앱에서 원하는 것을 제공하고 있습니다. 이는 iOS, Android 또는 Windows Store 앱과 거의 같습니다.
나는 그것들을 사용하지 않았으므로 GUI를 아직 구현했는지 알지 못하여 각 앱이 설치 될 때 필요한 권한을 확인합니다.
모든 flatpak 애플리케이션에는 메타 데이터라고하는 매니페스트가 포함되어 있습니다. 이 파일은 ID (app-id) 및 사용하는 런타임과 같은 애플리케이션의 세부 사항을 설명합니다. 또한 응용 프로그램에 필요한 권한이 나열됩니다.
기본적으로 응용 프로그램이 설치되면 요청한 모든 권한을 얻습니다. 그러나 flatpak 재정의를 사용하여 flatpak run 또는 응용 프로그램별로 전역으로 호출 할 때마다 권한을 재정의 할 수 있습니다 (자세한 내용은 flatpak-run 및 flatpak-override 맨 페이지 참조). 응용 프로그램 사용 권한 처리는 현재 인터페이스에 다소 숨겨져 있지만 장기 계획은 설치 중에 사용 권한을 표시하고 더 쉽게 재정의 할 수 있도록하는 것입니다.
또한 Ubuntu의 대안 인 Snappy를 사용하여 GUI에서 볼 수있는 그러한 기능을 제공하는지 알지 못했습니다.
이것은 기술적으로 가능하며 솔루션은 apparmor
, selinux
및 firejail
심지어 전체 컨테이너처럼 LXC
또는 전체 가상 머신 (예를 들어 VirtualBox
, kvm
또는 vmware
). 네트워킹에는 OSX opensnitch
의 littlesnitch
프로그램 복제본이 있습니다.
사용자가 부여한 권한을 가진 광범위한 보안 모델이없는 이유는 일반적으로 PC에서 실행하는 작업에주의를 기울이기 때문입니다. 모바일 시스템의 앱 스토어에있는 것의 90 %는 PC에서 맬웨어로 간주됩니다.
페이스 북, 구글 애널리틱스 및 광고 네트워크를 PC의 악성 코드로 연결하는 것과 같은 행동을 분류하는 애드웨어 용 스캐너 (예 : adaware 또는 Spybot D & D)가 있습니다. 모바일 에코 시스템은 이와 관련하여 컴퓨팅을 완전히 재부팅하는 것과 같습니다. 누구나 쉽게 애드웨어를 번들로 제공하고 궁금한 점 때문에 분석을 추가합니다. 부작용은 개인 정보 보호 및 보안 감소입니다. 보안 부분은 샌드 박스 모델로 설명되며 개인 정보 부분은 여전히 공개 된 문제입니다.
PC에 오랫동안 이것을 가지고 있지 않은 또 다른 이유는 샌드 박스의 복잡성 때문입니다. 이는 어느 정도 전에 구형 PC의 경우 속도가 너무 느려서 이점이 거의없는 것에 대해 더 많은 엔지니어링이 필요하다는 것을 의미합니다.
오늘날 우리는 snap 및 flatpak과 같은 새로운 패키지 형식으로 샌드 박싱을 사용하려는 시도를 보았으며 브라우저는이를 확장에 사용합니다. Chromium은 시작 이후 권한 모델을 사용하고 Firefox는 모든 웹 확장에 하나를 사용합니다 (57 개만 설치할 수있는 확장 프로그램이므로). 사람들은 자신이 들어 본 적이없는 사람들의 앱처럼 알 수없는 저자의 브라우저 확장 프로그램을 설치하기 때문에 방문하는 웹 사이트보다 더 위험하지 않다고 생각하기 때문에 합리적입니다. 이는 보호 할 샌드 박스가 없을 때 치명적인 오해입니다.
Android는 "시장"보안 모델을 사용합니다. 서로 다른 응용 프로그램은 서로 다른 (반 신뢰하는) 공급 업체에서 제공되며 서로 보호 된 리소스와 분리되어야합니다. 대부분의 앱은 수익을 기준으로 배포됩니다. 앱은 제 3 자에게 데이터를 판매하여 판매 (페이웨어), 유료 광고 표시 또는 사용자에게 "수익 화"합니다. 불법적 인 데이터 액세스에 걸리더라도 동기가 부여됩니다.
데비안, Red Hat 및 유사한 "클래식"Linux 배포판의 대부분의 응용 프로그램은 소스 형식으로 배포됩니다. 오픈 소스 응용 프로그램이 충분한 견인력을 얻은 후 배포 관리자가 포함하도록 수동으로 선택됩니다. 불법적 인 데이터 액세스를 수행하려는 동기는 거의 없습니다. 잠재적 이익이 노력을 정당화하지는 않습니다.
Android의 고급 보안 모델이 모바일 시장에서 iOS를 쉽게 극복하면서 많은 관심을 끌었던 이유 중 하나입니다. 최신 데스크탑 Linux 배포판은 단순히 "다른"것이 아니라 보안 및 배포 모델 측면에서 실제로 뒤쳐져 있습니다.
Linux 배포판 중 일부는 중앙 집중식 타사 소프트웨어 리포지토리 (AUR), 타사 소프트웨어 배포 용 특수 패키지 형식 (AppImage, Snappy, Flatpack), 보조 리포지토리 시스템 (Docker)과 같은 소프트웨어 배포 시스템이 개선되었습니다. 불행히도 이러한 개선은 시간이 지남에 따라 거의 견인력을 얻지 못합니다. AppImage는 2004 년에 발명되었으며 2005 년에 AUR의 첫 번째 버전이 출시되었지만 10 년이 지난 후에도 최신 Linux 배포판은 공식적으로 기능을 채택하지 않았습니다.
Linux에 GIMP 또는 LibreOffice와 같은 프로그램을 설치할 때 권한에 대해 묻지 않습니다.
이러한 응용 프로그램은 사용자와 대부분의 사용자가 일반적으로 변경할 수있는 권한이없는 파일 시스템의 권한있는 부분에 설치됩니다.
데스크톱 용으로 설정된 주류 배포판에서 설치시 처음 설정 한 단일 사용자는 일반적으로 관리자 권한을 갖습니다. 그들이 일반적으로 요구되는 것은 소프트웨어를 설치하기위한 자체 로그인 비밀번호이며 항상 그런 것은 아닙니다.
소프트웨어가 설치되면 기본적으로 일반 사용자가 실행할 수 있도록 설정되며 데이터 파일을 읽을 수 있습니다. 그것이 필요한 전부입니다.
Ubuntu에 프로그램을 설치하면 드라이브의 어느 곳에서나 읽고 인터넷에 액세스 할 수있는 권한을 명시 적으로 부여합니까?
프로그램이 아닙니다. 사용자 계정이 다른 그룹에 속하고 다른 그룹에 다른 리소스에 대한 액세스 권한이 부여됩니다.
Linux의 보안 모델은 사용자 계정에 특정 권한이 있고 계정이 속한 그룹에 특정 권한이 있다는 것입니다. 오른쪽으로 모든 파일 시스템의 일부 일반적으로 사용자에게 부여되지 않은 루트 권한이 필요합니다. sudo 를 사용하더라도 모든 권리를 얻지는 못합니다.
일반 사용자 계정은 일반적으로 인터넷과 같이 필요한 리소스에 액세스 할 수 있습니다.
이론적으로 김프는 sudo 타입 암호를 요구하지 않고 내 드라이브의 디렉토리를 읽거나 삭제할 수 있습니까?
사용자로서 액세스 권한이있는 디렉토리 또는 파일은 일반적으로 권한을 상속하므로 실행하는 응용 프로그램에서 액세스 할 수 있습니다. 일반적으로 로그인 한 사용자는 기본적으로 대부분의 중요한 시스템 파일 또는 공유 파일을 변경할 권리가 없습니다.
기술적으로 가능한지 궁금한지 아닌지 궁금합니다. 물론, 가능성이 낮다는 것을 알고 있습니다.
대부분의 사용자는 일반적으로 잘 관리되고 적대적 코드의 위험이 적은 리포지토리에서 응용 프로그램을 설치합니다.
Linux 권한에 익숙해지기 위해 추가 독서를 제안 할 것입니다.
안드로이드 보안 모델뿐만 아니라 일반적으로 OS의 기본 보안 모델에 대해 아무것도 이해하지만, 거의 이해하지 않는 사용자의 요구에 맞게 진화하고 어떤 컴퓨터에 대한합니다.
Linux 모델 (솔직히 더 좋아함)은 사용자 (및 특히 관리자)가 시스템의 보안에 대해 더 많은 제어권을 행사할 수 있도록 (허용 된 권한의 경우 제한 내에서) 설계되었습니다.
사용자 입장에서는 전자동 및 반자동 또는 수동 제어의 차이점으로 가장 잘 설명됩니다. 현대 소비자는 완전 자동을 원합니다. 리눅스에는 반자동 및 수동이 있습니다. 대부분의 Linux 사용자는 요즘 보안 모델에 대해 알 필요가 없지만 필요하거나 원하는 경우 제어가 가능합니다.
일부 프로그램을 설치하면 시스템 전체가 아닌 자체 사용자 공간 (예 : 홈 디렉토리에 자체 포함) 내에 프로그램을 설치할 수 있습니다. 따라서 한 명의 사용자가 사용할 수있는 프로그램을 설치할 필요가 없기 때문에 수퍼 유저 권한이 필요하지 않습니다. thusly 히 설치 프로그램은 실제로 것 없는 이 아닌 권한 상승 결석 허가 "비 소유자가 아닌 그룹 구성원이 읽을 수"부여 된 파일에 액세스 할 수 있습니다.