Когда я устанавливаю такую программу, как GIMP или LibreOffice в Linux, меня никогда не спрашивают о разрешениях. Устанавливая программу в Ubuntu, даю ли я ей полное разрешение на чтение / запись в любом месте на моем диске и полный доступ к Интернету?
Теоретически, может ли GIMP считывать или удалять любые каталоги на моем диске, не требуя пароля типа sudo?
Мне только любопытно, технически ли это возможно, а не так, вероятно или нет. Конечно, я знаю, что это маловероятно.
permissions
security
software-installation
stackinator
источник
источник
Ответы:
Здесь есть две вещи:
Когда вы устанавливаете программу стандартными средствами (системный установщик, такой как apt / apt-get в Ubuntu), она обычно устанавливается в какой-то каталог, где она доступна всем пользователям (/ usr / bin ...). Для этого каталога требуются права доступа для записи, поэтому вам нужны особые права во время установки.
когда вы используете программу, она запускается с вашим идентификатором пользователя и может читать или писать только тогда, когда программы, выполненные с вашим идентификатором, могут читать или записывать. В случае с Gimp вы обнаружите, например, что вы не можете редактировать стандартные ресурсы, такие как кисти, потому что они находятся в общем ресурсе,
/usr/share/gimp/
и что вы должны сначала скопировать их. Это также показывает,Edit>Preferences>Folders
где большинство папок попарно: системная, доступная только для чтения, и пользовательская, в которую можно записывать.источник
rm -rf ~/
. Если вы устанавливаете из других источников, вы должны быть осторожны (или устанавливать из исходного кода после проверки кода).Да, если вы используете
sudo
или эквивалент, вы даете установщику полное разрешение на чтение / запись в любом месте на вашем диске. Это в основном одно и то же. Существует также флаг, который может установить установщик, называемый setuid, который дает программе полные права и после установки.Даже если мы игнорируем установщик и если программа не имеет setuid (очень редко программы используют setuid), когда вы запускаете программу, она имеет полный доступ ко всему, что может получить доступ к вашей учетной записи. Например, если вы вошли в свой онлайн-банк, он может гипотетически отправить все ваши средства в Нигерию.
Модель безопасности - это означает, как спроектирована система безопасности - в Linux очень старая. Он унаследован от Unix, который восходит к 1960-м годам. В то время не было Интернета, и большинство людей в отделе использовали один и тот же компьютер. Большинство ваших программ пришли из крупных компаний, которым доверяют. Таким образом, система безопасности была разработана для защиты пользователей друг от друга, а не для защиты пользователей от программ, которые они запускают.
В настоящее время это довольно устарело. Android основан на Linux, но он работает, создавая отдельную «учетную запись пользователя» для каждого приложения, а не для каждого пользователя. Я не знаю, что использует iOS. Усилия, подобные Flatpak, в настоящее время пытаются принести то же самое на рабочий стол Linux.
источник
То, что вы хотите, предоставляется приложениями Flatpack. Они очень похожи на приложения для iOS, Android или Windows Store.
Я не использовал их, поэтому я не знаю, реализовали ли они графический интерфейс, чтобы увидеть разрешения, требуемые для каждого приложения, когда оно установлено.
https://blogs.gnome.org/alexl/2017/01/20/the-flatpak-security-model-part-2-who-needs-sandboxing-anyway/
Я также не использовал альтернативу Ubuntu, Snappy, чтобы узнать, предоставляет ли она такую функцию, видимую в GUI.
источник
Это технически возможно и решения включают в себя
apparmor
,selinux
иfirejail
или даже полные контейнерах нравятсяLXC
или полная виртуальная машина (напримерVirtualBox
,kvm
илиvmware
). Для работы в сети естьopensnitch
клонlittlesnitch
программы из OSX.Причины, по которым не существует широко распространенной модели безопасности с разрешениями, предоставленными пользователем, заключаются в том, что традиционно вы внимательно следите за тем, что запускаете на своем компьютере. 90% того, что находится в магазинах приложений мобильных систем, будет считаться вредоносным ПО на ПК.
Существуют сканеры для рекламного ПО (т.е. adaware или Spybot D & D), которые классифицируют поведение, как подключение Facebook, аналитики Google и рекламных сетей, как вредоносные программы на ПК. Когда дело доходит до этих вещей, мобильная экосистема похожа на полную перезагрузку компьютеров. Каждый связывает рекламное ПО только потому, что это легко и добавляет аналитику, просто потому, что ему любопытно. Побочными эффектами являются снижение конфиденциальности и безопасности. Часть безопасности учитывается моделью песочницы, часть конфиденциальности все еще остается открытой проблемой.
Другой причиной отсутствия такой возможности на ПК является сложность песочницы, а это означает, что она может быть слишком медленной для старых компьютеров некоторое время назад и потребовать дополнительных разработок для чего-то, что тогда имело мало преимуществ.
Сегодня мы видим попытки использовать «песочницу» в новых форматах пакетов, таких как snap и flatpak, и браузеры также используют ее для своих расширений. Chromium использует модель разрешений с момента запуска, а Firefox использует ее для всех расширений (поскольку 57 - только те расширения, которые вы можете установить). Это вполне разумно, потому что люди устанавливают расширения браузера от неизвестных авторов точно так же, как приложения от людей, о которых они никогда не слышали, думая, что они не более опасны, чем веб-сайт, который они посещают, что является фатальным заблуждением, когда нет песочницы для их защиты.
источник
Android использует «рыночную» модель безопасности: разные приложения поставляются разными (полу доверенными) поставщиками и должны быть изолированы от защищенных ресурсов и друг от друга. Большинство приложений распространяются на коммерческой основе: они продаются (платное ПО), показывают платную рекламу или «монетизируют» своих пользователей, продавая свои данные третьим сторонам. Существует высокая мотивация заниматься незаконным доступом к данным, даже если они были пойманы.
Большинство приложений в Debian, Red Hat и аналогичных «классических» дистрибутивах Linux распространяются в исходной форме: после того, как приложения с открытым исходным кодом набирают достаточную популярность, они выбираются вручную для включения сопровождающими. Маловероятно, чтобы осуществлять незаконный доступ к данным, - потенциальные выгоды не оправдывают усилий.
Стоит отметить, что усовершенствованная модель безопасности Android является одной из причин, почему она приобрела такую большую популярность, легко преодолевая iOS на мобильных рынках. Современные настольные дистрибутивы Linux не просто «разные», они на самом деле сильно отстают от времени с точки зрения своих моделей безопасности и распространения.
Некоторые дистрибутивы Linux предлагают усовершенствования своей системы распространения программного обеспечения: централизованные сторонние репозитории программного обеспечения (AUR), специализированные форматы пакетов для распространения стороннего программного обеспечения (AppImage, Snappy, Flatpack), системы вторичного репозитория (Docker). К сожалению, эти улучшения со временем приобретают очень малую популярность: AppImage был изобретен в 2004 году, первая версия AUR была выпущена в 2005 году, но ни один из современных дистрибутивов Linux официально не утвердил свои функции после> 10 лет.
источник
Эти приложения устанавливаются в привилегированной части файловой системы, которую вы и большинство пользователей обычно не имеете доступа к изменениям.
В основных дистрибутивах, настроенных для настольного компьютера, один пользователь, изначально настроенный при установке, обычно имеет права администратора. Все, что они обычно просят, это их собственный пароль для входа в систему для установки программного обеспечения, и не всегда.
После установки программное обеспечение по умолчанию будет настроено для выполнения обычными пользователями и позволит считывать файлы данных. Это все, что нужно.
Не программа. Что происходит, так это то, что учетная запись пользователя принадлежит разным группам, а разные группы предоставляют доступ к разным ресурсам.
Модель безопасности в Linux заключается в том, что ваша учетная запись пользователя имеет определенные права, а группы, к которым принадлежит ваша учетная запись, имеют определенные права. Для прав на любую часть файловой системы требуются права суперпользователя, которые обычно не предоставляются пользователям. Даже когда вы используете sudo, вы не получаете все права.
Обычные учетные записи пользователей обычно имеют доступ к ресурсам, которые им, как ожидается, понадобятся, например, к Интернету.
Любой каталог или файл, к которым у вас, как пользователя, есть права доступа, может быть получен из запускаемого вами приложения, поскольку оно обычно наследует ваши права. Обычно зарегистрированный пользователь по умолчанию обычно не имеет права изменять большинство критических системных файлов или общих файлов.
Имейте в виду, что большинство пользователей обычно устанавливают приложения из репозиториев, которые хорошо защищены, и риск враждебного кода низок.
Я бы, вероятно, предложил дополнительное чтение, чтобы разобраться с разрешениями Linux.
Введение в разрешения Linux
Понимание прав доступа к файлам Linux
Модель безопасности Android развивается, чтобы соответствовать потребностям пользователей, которые не только вообще ничего не понимают в базовой модели безопасности ОС, но и почти ничего не понимают в компьютерах.
Модель Linux (которая мне откровенно нравится больше) предназначена для того, чтобы позволить пользователям (в частности, администраторам) осуществлять больший контроль над безопасностью в системе (в пределах разрешенных разрешений).
Я думаю, что с точки зрения пользователя это лучше всего описать как разницу между полностью автоматическим и полуавтоматическим или ручным управлением. Современные потребители хотят полноценного авто. В Linux есть полуавтоматический и ручной режим. Большинству пользователей Linux в наши дни не нужно знать о модели безопасности, но контроль есть, если вам это нужно или нужно.
источник
Когда вы устанавливаете некоторые программы, вы можете устанавливать их в своем собственном пользовательском пространстве (т. Е. Автономно в своем домашнем каталоге), а не в масштабе всей системы. Таким образом, вас не спрашивают о привилегиях суперпользователя, потому что они не нужны для установки программы для собственного использования одним пользователем. Установленная таким образом программа действительно не сможет получить доступ к файлам, которым не предоставлено разрешение «владельцы, не являющиеся членами группы, могут читать это» без повышения привилегий.
источник