В чем смысл команды sudo в плане безопасности?

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

1
задан 6 July 2017 в 01:31

8 ответов

Во-первых, вам нужно понять концепцию пользователей в Linux, особенно с учетом пользователя root. Чтобы этот ответ был ниже лимита символов (и по теме), я бы предложил вам прочитать эту страницу, а затем эту. На самом деле все, что вам нужно знать, следующее:

Linux - это многопользовательская операционная система с каждым пользователем, имеющим ограниченную мощность и объем, как определено их группой пользователей. В каждой системе Linux есть что-то, называемое пользователем root (UID 0, также известный как суперпользователь), который является полным и полностью авторитетным администратором. root знает все, root видит все, root контролирует все.

Концепция sudo взята из старой команды UNIX su (от пользователя коммутатора), что позволило любому пользователю войти в систему любому другому пользователю в системе. Любой пользователь с привилегиями администратора будет набирать su root (или только su) для перехода к корневому пользователю для любой задачи администратора. У этого, к сожалению, было несколько проблем. В системах с несколькими админами каждый пользователь имеет пароль root. Смысл, если администратор покинул компанию, пароль root должен быть изменен и перераспределен всем другим администраторам. Это может быть чрезвычайно трудоемким время от времени, и в противном случае просто больно.

Теперь введите sudo. sudo работает по другому принципу. Вместо того, чтобы требовать от пользователей входа в учетную запись root, sudo будет использоваться, чтобы пользователи могли эскалироваться в учетную запись root (или любую другую учетную запись, если на то пошло) на основе правил файла /etc/sudoers. Теперь отмена или добавление администратора проста - просто добавьте или удалите пользователя из группы или файла. Из-за этого корневая учетная запись может быть «отключена», тем самым блокируя доступ к любому, кроме фактических администраторов.

Для почти всех случаев это все sudo используется для. Он предоставляет root полномочия администраторам (членам группы admin или sudo) на основе правил, определенных в /etc/sudoers.

(Un) преднамеренно, это также имеет огромное преимущество в плане безопасности , Администраторы могут работать в непривилегированном режиме, как и любой другой пользователь. Затем они могут эскалировать или «разрешить» административные привилегии, когда они понадобятся, и немедленно отменить их. Обычно это используется только для одной команды (например, sudo apt install cowsay), но также может быть полномасштабной корневой оболочкой.

Эта изоляция, в свою очередь, также защищает систему в целом (помните, * NIX изначально была многопользовательской средой, используемой многими людьми) из вредоносного кода, выполняемого из учетной записи администратора, будь то вредоносное ПО или кто-то, входящий в активный терминал администратора. Аналогично, sudo позволяет в любое время регистрировать и проверять каждое действие администратора. Сравните это со старым методом su, где вы реалистично понятия не имели, кто управлял какой командой.

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

s [ ! d13]

На самом деле, sudo - это просто (очень полезный) захват из настоящих многопользовательских сред старых * установок NIX. Тем не менее, он по-прежнему сохраняет свою полезность, защищая систему от вредоносного ПО или захвата сеанса.

Если вы беспокоитесь о том, что кто-то сидит на вашем компьютере, пока вы в отъезде, и возитесь с вашей личностью, просто заблокируйте свой экран / сеанс. Тем не менее, физический доступ является убийцей.

1
ответ дан 18 July 2018 в 10:40

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

Однако, если вы действительно этого хотели, вы могли бы использовать sudo для защиты большего количества вещей; например, вы можете создать другую учетную запись пользователя, которая существует только для запуска вашего веб-браузера, что означало бы, что никто из ваших обычных учетных записей не сможет получить доступ к вашим файлам cookie или кешу, не пройдя через sudo. Вы можете создать еще одного пользователя для редактирования офисных документов, чтобы защитить их от изменений, сделанных вашей обычной учетной записью. И так далее. Это вообще не сделано, потому что это является большим неудобством для минимальной выгоды, но это возможно, если данные достаточно чувствительны.

Другое дело, что эти привилегии применяются к can программ по всем направлениям. Ограничение доступа к терминалу и файловому администратору не защитит от несанкционированных изменений, сделанных с помощью текстового процессора (скажем, я загружаю некоторые из недавно отредактированных документов и удаляю весь текст), но если у зарегистрированного пользователя нет разрешения на просматривать или редактировать файлы, тогда никакая программа не может редактировать их без sudo, независимо от того, является ли это терминалом, файловым менеджером или другим.

0
ответ дан 18 July 2018 в 10:40

пользовательское пространство не имеет доступа к основным системным файлам, это позволяет вредоносному коду таких вирусов и корневых наборов устанавливать сами.

Команда sudo дает человеку доступ к root root, поэтому он может изменить установку.

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

0
ответ дан 18 July 2018 в 10:40

Итак, как вы сами заявили, команда sudo делает свою работу отлично, она заботится о том, что она думает:

На основе определений она решает, кому разрешено делать какой-то вид вещи? на основе /etc/sudoeres или /etc/sudoeres.d, например: пользователь bob разрешен для запуска rm с использованием пользователя root на машинах ALL? Затем он проверит, чтобы убедиться, что пользователь на самом деле является тем, кем он себя утверждает. Просьба ввести пароль

Что здесь не так, так это то, что вы позволяете ненадежному пользователю использовать вашу систему, и это приводит к повреждению (не к системе, к вашей учетной записи).

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

Используйте sudo, не позволяйте кому-либо использовать вашу учетную запись, которую вы можете безопасно ...

0
ответ дан 18 July 2018 в 10:40

Во-первых, вам нужно понять концепцию пользователей в Linux, особенно с учетом пользователя root. Чтобы этот ответ был ниже лимита символов (и по теме), я бы предложил вам прочитать эту страницу, а затем эту. На самом деле все, что вам нужно знать, следующее:

Linux - это многопользовательская операционная система с каждым пользователем, имеющим ограниченную мощность и объем, как определено их группой пользователей. В каждой системе Linux есть что-то, называемое пользователем root (UID 0, также известный как суперпользователь), который является полным и полностью авторитетным администратором. root знает все, root видит все, root контролирует все.

Концепция sudo взята из старой команды UNIX su (от пользователя коммутатора), что позволило любому пользователю войти в систему любому другому пользователю в системе. Любой пользователь с привилегиями администратора будет набирать su root (или только su) для перехода к корневому пользователю для любой задачи администратора. У этого, к сожалению, было несколько проблем. В системах с несколькими админами каждый пользователь имеет пароль root. Смысл, если администратор покинул компанию, пароль root должен быть изменен и перераспределен всем другим администраторам. Это может быть чрезвычайно трудоемким время от времени, и в противном случае просто больно.

Теперь введите sudo. sudo работает по другому принципу. Вместо того, чтобы требовать от пользователей входа в учетную запись root, sudo будет использоваться, чтобы пользователи могли эскалироваться в учетную запись root (или любую другую учетную запись, если на то пошло) на основе правил файла /etc/sudoers. Теперь отмена или добавление администратора проста - просто добавьте или удалите пользователя из группы или файла. Из-за этого корневая учетная запись может быть «отключена», тем самым блокируя доступ к любому, кроме фактических администраторов.

Для почти всех случаев это все sudo используется для. Он предоставляет root полномочия администраторам (членам группы admin или sudo) на основе правил, определенных в /etc/sudoers.

(Un) преднамеренно, это также имеет огромное преимущество в плане безопасности , Администраторы могут работать в непривилегированном режиме, как и любой другой пользователь. Затем они могут эскалировать или «разрешить» административные привилегии, когда они понадобятся, и немедленно отменить их. Обычно это используется только для одной команды (например, sudo apt install cowsay), но также может быть полномасштабной корневой оболочкой.

Эта изоляция, в свою очередь, также защищает систему в целом (помните, * NIX изначально была многопользовательской средой, используемой многими людьми) из вредоносного кода, выполняемого из учетной записи администратора, будь то вредоносное ПО или кто-то, входящий в активный терминал администратора. Аналогично, sudo позволяет в любое время регистрировать и проверять каждое действие администратора. Сравните это со старым методом su, где вы реалистично понятия не имели, кто управлял какой командой.

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

s [ ! d13]

На самом деле, sudo - это просто (очень полезный) захват из настоящих многопользовательских сред старых * установок NIX. Тем не менее, он по-прежнему сохраняет свою полезность, защищая систему от вредоносного ПО или захвата сеанса.

Если вы беспокоитесь о том, что кто-то сидит на вашем компьютере, пока вы в отъезде, и возитесь с вашей личностью, просто заблокируйте свой экран / сеанс. Тем не менее, физический доступ является убийцей.

1
ответ дан 24 July 2018 в 19:37

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

Однако, если вы действительно этого хотели, вы могли бы использовать sudo для защиты большего количества вещей; например, вы можете создать другую учетную запись пользователя, которая существует только для запуска вашего веб-браузера, что означало бы, что никто из ваших обычных учетных записей не сможет получить доступ к вашим файлам cookie или кешу, не пройдя через sudo. Вы можете создать еще одного пользователя для редактирования офисных документов, чтобы защитить их от изменений, сделанных вашей обычной учетной записью. И так далее. Это вообще не сделано, потому что это является большим неудобством для минимальной выгоды, но это возможно, если данные достаточно чувствительны.

Другое дело, что эти привилегии применяются к can программ по всем направлениям. Ограничение доступа к терминалу и файловому администратору не защитит от несанкционированных изменений, сделанных с помощью текстового процессора (скажем, я загружаю некоторые из недавно отредактированных документов и удаляю весь текст), но если у зарегистрированного пользователя нет разрешения на просматривать или редактировать файлы, тогда никакая программа не может редактировать их без sudo, независимо от того, является ли это терминалом, файловым менеджером или другим.

0
ответ дан 24 July 2018 в 19:37

пользовательское пространство не имеет доступа к основным системным файлам, это позволяет вредоносному коду таких вирусов и корневых наборов устанавливать сами.

Команда sudo дает человеку доступ к root root, поэтому он может изменить установку.

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

0
ответ дан 24 July 2018 в 19:37

Итак, как вы сами заявили, команда sudo делает свою работу отлично, она заботится о том, что она думает:

На основе определений она решает, кому разрешено делать какой-то вид вещи? на основе /etc/sudoeres или /etc/sudoeres.d, например: пользователь bob разрешен для запуска rm с использованием пользователя root на машинах ALL? Затем он проверит, чтобы убедиться, что пользователь на самом деле является тем, кем он себя утверждает. Просьба ввести пароль

Что здесь не так, так это то, что вы позволяете ненадежному пользователю использовать вашу систему, и это приводит к повреждению (не к системе, к вашей учетной записи).

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

Используйте sudo, не позволяйте кому-либо использовать вашу учетную запись, которую вы можете безопасно ...

0
ответ дан 24 July 2018 в 19:37
  • 1
    Тогда, если нет нежелательных или ненадежных пользователей здесь, кроме меня, в чем смысл спрашивать пароль, который я знаю? – A. N. Other 6 July 2017 в 00:45
  • 2
    Это не единственный случай, вы можете запустить программу, которая должна изменить важный файл / устройство, это какое-то предупреждение, которое говорит вам: «вы делаете важный акт, обратите внимание на то, что вы делаете». Что, если вы оставите свой компьютер на некоторое время, кто-то может удалить все ваши файлы, но он не может установить руткит в вашей системе. – Ravexina 6 July 2017 в 00:53

Другие вопросы по тегам:

Похожие вопросы: