Почему пользователи без прав администратора не могут устанавливать программное обеспечение?

11

Вероятно, это то, чего я не понимаю, так как я привык к Windows и только начинаю с Ubuntu. Я знаю, что программное обеспечение в Linux входит в пакеты, но я не понимаю, почему пользователи, не являющиеся администраторами, не могут устанавливать программное обеспечение.

Я имею в виду, что каждое приложение запускается определенным пользователем, и этот пользователь сможет запускать это приложение только со своими привилегиями, поэтому, если у него нет прав администратора, приложение также не сможет получить доступ к неавторизованным каталогам и т. Д.

Я хочу, чтобы большую часть времени работала на моем компьютере с пользователем без прав администратора, поскольку он кажется мне более безопасным, в большинстве случаев мне не нужны права администратора. и хотя я знаю, что вирусы в Linux встречаются редко, я все же считаю, что лучше всего работать на компьютере в состоянии, когда вы сами не можете вносить какие-либо изменения в важные файлы, поэтому вирусы также не могут повредить любые важные файлы, но мне нужно установить программное обеспечение для программирования, веб-дизайна и т. д. и в первую очередь я не хочу постоянно переключать пользователей. Но также мне кажется безопаснее, что все, что делается на ПК, будет сделано через пользователя без прав администратора.

Я буду рад узнать, какое у меня здесь недоразумение, потому что здесь что-то не так.

пятьдесят восемь
источник

Ответы:

16

Почему вы спрашиваете пароль

Большая часть программного обеспечения предназначена для работы с конфиденциальными файлами, т.е. с точки зрения безопасности ваших личных данных или целостности системы. Вот почему установка программного обеспечения представляет потенциальный риск и должна быть подтверждена пользователем, который знает, что он делает. Даже для программного обеспечения с открытым исходным кодом вы не можете быть уверены, что с вашим новым новым аудиоплеером не поступит ни одного плохого кода, пока кто-нибудь не проверит. И даже тогда что-то могло быть пропущено, или по пути можно было манипулировать пакетами. Кто знает, что скрыто в глубине программы? Один пользователь должен.

Ubuntu предоставляет удобный способ установки программного обеспечения. Разработчики программного обеспечения могут полагаться на этот комфорт и исходить из того, что synaptic / software center / apt позволяет им получать доступ к этим конфиденциальным файлам. Canonical проверяет хранилище программного обеспечения на наличие ошибок и вредоносного кода. Но главная ответственность лежит на вас.

Если соответствующему программному обеспечению не требуется доступ к конфиденциальным файлам, его можно (в принципе) установить в домашнюю папку, но не в Ubuntu. Например, вам придется самостоятельно скомпилировать исходный код или запустить собственный скрипт установки. Помимо больших усилий, у него есть недостаток, заключающийся в том, что другие пользователи не имеют доступа к вашей только что установленной программе (поскольку они не имеют права на доступ к вашей домашней папке). Им нужно будет установить его во второй раз. Таким образом, этот способ установки не имеет смысла в больших масштабах и в небольших масштабах, как правило, проще ввести пароль, чем устанавливать программное обеспечение вручную.

Вот почему Synaptic запрашивает пароль и почему это хорошо.


Sudoers

Если вам действительно нужно, чтобы другие пользователи устанавливали программное обеспечение без пароля , вы можете добавить их в список sudoers. Это, однако, приведет к большой угрозе безопасности . Если вас это не касается, учтите, что существуют сети ботов с огромными ресурсами для проникновения на ваш компьютер через Интернет. Они делают это просто для того, чтобы добавить ваш компьютер в сеть и использовать его возможности подключения и вычислительной мощности без вашего ведома для выполнения всевозможных незаконных действий. Они даже не после ваших личных данных, которые вы вам по этому вопросу. Они просто хотят угнать ваш компьютер. Все еще не обеспокоены? В самом деле? Затем посмотрите на следующий ответ, который представляет собой небольшое руководство по работе со списком sudoers:

Как заставить Ubuntu запоминать пароль навсегда после первого раза

Прочитайте это внимательно. Вы можете заблокировать себя из системы.

Паника закончилась

Так что теперь у вас есть страх позади, и вы относитесь к делу серьезно, я могу вам сказать, что это действительно не так уж и плохо. Если вы доверяете людям, работающим на вашем компьютере, и у вас не установлены программы, которые позволяют удаленный доступ к вашей системе (например, ssh- или ftp-сервер), то отключить пароли на самом деле не так уж опасно. Просто не делайте этого без учета наихудшего случая и подумайте о ваших личных данных.


Не обращайте внимания на процесс ( не делайте этого легко - см. Текст и ссылку выше ):

# in shell type these commands
sudo su       # in case you do something stupid, you'll have a root shell open
select-editor # (optional) will allow you to select text editor
visudo        # secure way to open sudoers list

Редактор откроет ДОБАВИТЬ строку, подобную этой:

confus confusion=(root) NOPASSWD:/usr/sbin/synaptic,/usr/bin/software-center

Синтаксис Объяснение: username machine=(usernameToRunCommandAs) command1,command2,.... Таким образом, приведенная выше строка позволяет confus запускать synaptic и softwarecenter от имени root без запроса пароля. Вам все равно нужно будет запустить его с sudo synapticили gksudo synapticдобавить псевдоним `alias synaptic = 'sudo synaptic' в свой профиль оболочки.

кон-е использование
источник
спасибо путать, вы действительно заставили меня понять. приятно видеть такое хорошее сообщество для Linux :)
пятьдесят восьмого
2
Пожалуйста. Поскольку linux как проект с открытым исходным кодом полагается на то, что люди вкладывают в него свою работу без компенсации, в сообществе вы найдете много полезных людей.
con-f-use
4

Они не могут. Вот сделка.

  1. Первый пользователь, созданный в Ubuntu, считается особым пользователем: это пользователь с правами администратора. Это означает, что когда этот пользователь захочет выполнять задачи администратора, ему будет предложено ввести пароль администратора. Эти задачи выдаются путем помещения sudoперед командой.

  2. Все остальные пользователи (если вы не измените его сами) являются обычными пользователями и не могут устанавливать программное обеспечение в масштабе всей системы, если только администратор (1-й пользователь) не разрешит им сделать это. Обычный пользователь может только положить вещи в свой дом, и если он хочет, они могут испортить свой домашний каталог.

Таким образом, за систему отвечает 1 человек.

Вы можете сделать более одного пользователя администратором (чтобы иметь возможность устанавливать программное обеспечение), добавив этих пользователей в файл sudoers.

Кроме того, они могут устанавливать программное обеспечение у себя дома, но это зависит от программного обеспечения: иногда установщик хочет добавить его в систему, а это запрещено. Эти установки обычно исходят из исходного кода, поэтому это не самый простой метод;)

Rinzwind
источник
2

В Ubuntu администратор имеет права суперпользователя (часто называемые просто «root», например, «вам нужно быть root»).

Доступ к файлам можно разделить на три типа:

  • читать (числовое значение 4)
  • запись (числовое значение 2)
  • выполнить (числовое значение 1)

Эти атрибуты могут быть установлены для каждого файла или каталога. Кроме того, эти ограничения могут быть установлены на:

  • владелец файла
  • группа файла (пользователи могут быть членами этой группы)
  • все остальные пользователи, которые не являются ни владельцем, ни в группе

Эти принципы формируют основы прав доступа к файлам в Linux. В окнах все может быть выполнено. Дайте это .cmdили .exeрасширение, например. В Ubuntu вам нужно явно добавить бит выполнения, иначе возникнет ошибка разрешения.

Когда пользователь выполняет программу, программа получает доступ к файлам, как этот пользователь, и эти права доступа к файлам включаются. По умолчанию места, в которых установлены программы, являются привилегированными, только владелец может писать. Этот владелец - root. Все остальные пользователи могут только читать и выполнять программу, а не писать в нее. Вот почему вам нужны права root для установки программ.

В Ubuntu есть специальная программа sudo(SuperUser DO ...) для запуска программ с привилегиями root. Это может быть использовано для установки программного обеспечения. При запуске sudoпрограмма запрашивает у вас пароль пользователя. Обратите внимание, что только члены adminгруппы могут запускать программы от имени пользователя root sudo.

В Windows вы заходите на сайт и скачиваете установщик. Ubuntu работает с программным хранилищем, в котором вы можете искать программы и устанавливать их. Эти программы проверяются перед добавлением в официальные репозитории, поэтому вы можете быть уверены, что в программах не существует вредных намерений.

Lekensteyn
источник
Хорошо, я понимаю, так что пользователи не могут установить программное обеспечение в свой домашний каталог каким-либо образом, и это не затронет чувствительные области? Я имею в виду, что если они действительно хотят, они могут загрузить файлы, необходимые для программы, и в любом случае поместить их в свой домашний каталог, не так ли?
пятьдесят восьмого
Они могут установить программное обеспечение в домашний каталог. Им просто нужно скомпилировать его и поместить туда файлы. Конечно, программное обеспечение, установленное таким образом, не сможет получить доступ к защищенным файлам в другом месте. Хотя большая часть программного обеспечения построена таким образом, что ему необходим доступ к таким файлам.
con-f-use
Я обновил ответ «Ubuntu way» для установки программного обеспечения. Можно установить программное обеспечение в вашем домашнем каталоге, но это действительно зависит от того, что вы скачали. Иногда это архив с расширением .tar.gzили .tar.bz2. Они часто могут быть извлечены непосредственно из домашнего каталога, но иногда вам нужно скомпилировать программу перед использованием. Если файл имеет расширение .binили .sh, это часто исполняемый установщик, который различается по своему использованию. Помните, что Ubuntu не использует расширения файлов для определения типа, а использует его содержимое.
Лекенштейн
2

Пользователи без прав администратора не могут устанавливать программное обеспечение, так как при установке пакеты запускаются как root, так как они устанавливаются в привилегированные части системы, запускают сценарии сопровождающего и т. Д.

В настоящее время нет способа сообщить системе: «Установите firefox из этого .deb, но в домашний каталог пользователя, чтобы он был изолирован от остальной системы»; вот почему в настоящее время это в основном все или ничего. (Именно поэтому запуск стороннего .debs плох, пакет и включенные в него скрипты имеют root-доступ к вашей системе)

Хорхе Кастро
источник
1

Вы затронули БОЛЬШУЮ разницу между windows и ubuntu. В Windows при входе в систему в качестве администратора программы будут устанавливаться без запроса пароля. Это также позволяет вредоносным программам запускать свои программы. В Ubuntu (Linux), даже если вы вошли в систему как администратор, система всегда будет запрашивать ваш пароль при смене системы. Таким образом, вредоносные программы не могут легко проникнуть в вашу систему. Подводя итог, запустите Ubuntu в качестве администратора. Если вы открываете другую учетную запись пользователя для своих детей, тогда дайте им только обычные права пользователя, чтобы они не могли испортить систему.

даго
источник
Под "admin" вы имеете в виду пользователя с правами sudo? Настоящий админ был бы root.
Программное обеспечение Windows не запрашивает пароль не потому, что вы вошли в систему как администратор. но поскольку Windows просто не работает таким образом, то есть, если вам нужно было скачать файл deb, который по незнанию содержит опасный скрипт, и вы положили свой пароль для установки файла, это может повредить систему так же, как вредоносное ПО Windows.
Ури Эррера
И даже учетная запись Windows «Администратор» на самом деле не является владельцем системного файла, это СИСТЕМА, которая в этом случае будет выглядеть так: «Администратор» - это учетная запись, которую вы сделали при установке, и ROOT - это истинный системный файл. владелец
Ури Эррера
0

Вы можете установить программное обеспечение как обычный пользователь без прав администратора. Программное обеспечение, установленное обычным пользователем, будет «принадлежать» этому пользователю, что означает, что, по сути, это расширение пользователя - оно не имеет больше разрешений, чем пользователь-владелец, хотя оно может иметь меньше разрешений на вариант пользователя.

Обычная практика заключается в том, что пользователь создает каталог bin в своем домашнем каталоге. Если / home / [user] / bin существует, он добавляется в начало пути этого пользователя. Вы можете поместить исполняемые файлы в / home / [user] / bin или в любую другую папку, к которой у вас есть права на запись и выполнение, и запустить программу оттуда.

Что обычный пользователь не может сделать, так это установить пакет для всей системы. Обычный пользователь не может, например, поместить исполняемые файлы в / usr / bin или предоставить им разрешения, которые превышают собственные разрешения пользователя. Это, очевидно, по базовым соображениям безопасности - вам нужны разрешения администратора, например, для переформатирования жесткого диска, и вы не хотите, чтобы кто-то несанкционированный делал это.

Насколько я знаю, вы не можете использовать программное обеспечение для управления пакетами для установки программного пакета, если у вас нет прав администратора, поскольку управление пакетами осуществляется в масштабе всей системы.

Однако без прав администратора вы можете создавать сценарии оболочки, писать и компилировать исходный код, загружать и компилировать «tarballs», которые являются пакетами исходного кода для сложных приложений, или загружать исполняемые файлы, при условии, что они могут использоваться только с разрешения обычного пользователя. Некоторые инди-игры, такие как World of Goo или X-Plane 9, могут быть установлены и использованы таким образом.

bgvaughan
источник
Перечитывая вопрос, я не думаю, что мой ответ имеет непосредственное отношение. Более уместным ответом было бы то, что, предполагая, что обычная учетная запись пользователя имеет права администратора, он должен запросить пароль, прежде чем делать что-либо, требующее прав суперпользователя, и это должно быть достаточно безопасно, но он может просто создать вторую учетную запись пользователя, которая делает не иметь прав администратора, если он предпочитает.
bgvaughan
Ваш вопрос был полезен на самом деле, спасибо :)
пятьдесят восьмого