Почему это называется sudo?

30

Почему мы используем sudoдля выполнения команды терминала в качестве административного? Почему нет adminили что-то еще? Есть ли причина для этого sudo?

Мохаммад
источник
19
Читайте , sudo lsкак «суперпользователя, сделайте ls» (и нет, это не глупо, мнемоника важно для запоминания команд) (и нет, вероятно , это означает , что " s ведьма у сер и сделать , учитывая , что suсредства переключения пользователя Но я считаю , бывший самым славным. -))
Rmano
1
суперпользователь намного лучше, чем админ :) спасибо за ответ.
Мухаммед
2
Это то, что ты делаешь вуду. :)
Шадур
14
Забавный факт: по-итальянски sudoзначит (я) пот . Мне нравится интерпретировать sudo Xкак потливость из-за страха дать неправильную команду и стереть все мои данные . Это помогает помнить, что вы должны добавлять sudoперед командами только тогда, когда 1) это необходимо 2) вы знаете, что делаете 3) вы тщательно написали и прочитали командную строку, чтобы избежать опечаток (особенно плохих пробелов, которые трудно поймать и может привести к действительно ужасным неожиданным результатам).
Бакуриу
2
su Изначально @Rmano означало «суперпользователь», «замещающий пользователь» появился позже .
Жиль "ТАК - перестань быть злым"

Ответы:

32

Из Википедии :

sudo - это программа для Unix-подобных компьютерных операционных систем, которая позволяет пользователям запускать программы с привилегиями безопасности другого пользователя (обычно суперпользователя или root). Его имя представляет собой объединение «su» (замещающий пользователь) и «do» или «принять действие».

В отличие от команды su, пользователи обычно предоставляют свой собственный пароль для sudo, а не пароль root. После аутентификации, и если файл конфигурации / usr / local / etc / sudoers (иногда находится в / etc / sudoers) разрешает доступ пользователя, то система вызовет запрошенную команду. Файл конфигурации sudoers обеспечивает огромное количество настроек, включая, но не ограничиваясь: включение корневых команд только из вызывающего терминала; не требуется пароль для определенных команд; требуется пароль для пользователя или группы; требует повторного ввода пароля каждый раз или вообще не требует пароля для конкретной командной строки. Он также может быть настроен на передачу аргументов или нескольких команд и даже поддерживает команды с регулярными выражениями.

Это временная одноразовая команда с привилегиями суперпользователя (администратора) без прямого входа в систему root.

Virusboy
источник
11
Часть вики верна. Комментарий о "Mac is Su" не верен. У Mac есть и то sudoи другое , и так suже, как у BSD и Linux.
daviewales
@Virusboy Привет, извините, чтобы попробовать в этой теме. Но я должен знать, легко ли использовать Ubuntu 14.04 с Toshiba M840 i3-3110M. Спасибо.
Бонн
Это легко на любом компьютере
Virusboy
21

xkcd: сэндвич

До sudo большинство администраторов входили в систему как пользователь root, поскольку это простой способ настройки системы, поскольку у вас есть все права. Тем не менее, небольшая ошибка или неправильная интернет-ссылка и вся ваша система могут быть затронуты или даже скомпрометированы.

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

Под Ubuntu они выбирают для повышения безопасности вашей системы. Таким образом, они решили пойти по пути 'sudo'. Пользователь root отключен; в этом нет необходимости, и в особенности нет риска, что пользователь войдет в систему через интерфейс X с пользователем root. Кроме того, они разрешили запускать каждую команду с помощью sudo для авторизованных пользователей. Круто то, что опытные пользователи могут получить доступ к учетной записи root.

Недостатки sudo:

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

Что sudoзначит? Его имя является объединением "su" (замещающий пользователь) и "do".

Почему sudoнет admin? Я думаю, что sudoозначает adminдля определенного времени и только тогда, когда вам это нужно.

Люди, которые приходят из среды Windows, должны понимать, почему это не так admin :)

Рекомендации: Изображение сайта
: xkcd

Nux
источник
так почему это не называется родо?
JamesRyan
3
Ваш параграф «до суда» неверен. Разницы между ними нет, suи sudoв этом отношении единственное различие между ними заключается в том, какие учетные данные используются. Использование, sudoа не suне является более безопасным (на самом деле, это несколько менее безопасно); Основное преимущество sudo (и причина, по которой Ubuntu выбрал его) - простота для пользователя (запоминается только один пароль).
Жиль "ТАК - перестань быть злым"
11

От Linux.com, продукта Linux Foundation:

Sudo означает либо « Заместитель пользователя делает », либо « Суперпользователь делает » (в зависимости от того, как вы хотите посмотреть на это). То, что делает sudo, невероятно важно и важно для многих дистрибутивов Linux. По сути, sudo позволяет пользователю запускать программу как другой пользователь (чаще всего пользователь root).

[Акцент мой.] Источник

Cerran
источник
3

суперпользователь

Есть команда su, чтобы стать суперпользователем, так что вы можете сказать,

$ su
# apt-get install somehorror
# exit
$

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

$ sudo apt-get install somehorror
Джон Лоуренс Аспден
источник
2
su(«Заместитель пользователя») позволяет вам стать любым пользователем: вы можете указать имя пользователя в качестве аргумента.
Дэвид Ричерби
1
На самом деле, они не совсем одинаковы, но в большинстве случаев похожи. Но sudo в основном позволяет вам запускать программы с привилегиями суперпользователя, но сохраняет вашу обычную среду такой же. su на самом деле делает вас супер-пользователем, с супер-пользовательской средой.
Марти Фрид
3

Что касается того, почему это не «admin» - или, более косвенно, почему su не «switchUser» или что-то в этом роде, - традиционные команды Unix имеют тенденцию быть минимальными сокращениями по историческим причинам, связанным с происхождением Unix.

По самой простой причине нам нужно вернуться к той же самой причине, что она называется Unix. Большая часть Unix была вдохновлена ​​одной из ранних многопользовательских многозадачных операционных систем, Multics MIT. (Unix получает свое название как «единственное число от Multics» или «кастрированный Multics», в зависимости от того, кого вы спрашиваете, и их настроения на данный момент.)

Среди других нововведений Multics он представил концепцию отделения фактического местоположения файла от информации каталога, позволяя одному файлу иметь несколько имен. («Ссылки», в терминах Unix.) Multics воспользовался (чрезмерно) полным преимуществом этого; большинство команд Multics имеют ALongNameThatIsImpossibleToType и ASNTOECR (короткое имя, которое могут запомнить только эксперты). Опыт показал, что длинные имена действительно не добавляли большого удобства для пользователя, поскольку в действительности все пользователи в то время были или быстро стали «экспертами» и почти никто никогда не использовал длинные имена. Когда Unix принял некоторые разработки Multics, одним из их упрощений стало удаление неиспользуемых длинных имен и сохранение только удобных для экспертов коротких имен.

Это также хорошо согласуется с философией Unix, заключающейся в сокращении операционной системы и ее основных команд до базовых, что позволяет ей эффективно работать в небольших системах. В те дни программисты все еще сохраняли все возможные байты и циклы. Процессоры были значительно медленнее, скорости терминалов были также чрезвычайно медленнее, а память была чрезвычайно дороже (и медленнее, и имела крошечные кэши, если таковые имеются). Сокращение системных команд до минимальной длины, возможно, не сэкономило много (если таковые имеются) реальных ресурсов, но это "казалось правильным" для мышления времени.

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

keshlam
источник
3

Независимо от того, является ли « суперпользователь » тем, что suизначально было получено, оно является неточным, поскольку имя пользователя, которое вы ему даете, не обязательно должно быть суперпользователем. То же самое для выполнения команд другим пользователем sudo -u.

« Сменный пользователь » более точен, но звучит неуклюже. Это заставляет меня думать о замене учителя.

Поэтому я предпочитаю думать, suчто это просто «переключить пользователя» и, sudoследовательно, «переключить пользователя и сделать»

Otus
источник
1
всегда лучше, это делают супер-пользователи, но подменяют звук пользователя более правильным
BeyondProgrammer
1

С сайта Судо :

"Что такое судо?

Sudo (su "do") позволяет системному администратору делегировать полномочия, чтобы дать определенным пользователям (или группам пользователей) возможность выполнять некоторые (или все) команды от имени пользователя root или другого пользователя, предоставляя контрольный журнал для команд и их аргументов. «.

«Sudo был впервые задуман и реализован Бобом Коггесхаллом и Клиффом Спенсером в 1980 году на факультете компьютерных наук в SUNY / Buffalo. Он работал на VAX-11/750 с 4.1BSD. Обновленная версия, предоставленная Филу Бетчелу, Клиффу Спенсеру. Гретхен Филлипс, Джон Ловерсо и Дон Гворек были опубликованы в группе новостей net.sources Usenet в декабре 1985 года. "

Тем не менее, хотя я не верю, что есть какие-либо доказательства, я всегда твердо верил, что это название было своего рода шуткой программиста. У вас есть команда "su" (супер-пользователь) "do", но вы на самом деле не супер-пользователь - превратите "doo" в "doh", и "sudo" выглядит / звучит очень похоже на "псевдо" (fake) фальшивка).

Anaksunaman
источник
-2

Большинство людей ответили, что это мэшап «Супер пользователь делает». Мне это нравится, но, может быть, правильнее будет сказать, что это коллаж «пользователь, выполняющий замену», потому что вы можете выбрать, какого пользователя «делать», как с флагом -u.

Я также воспринимаю это как игру слова psuedonym, потому что вы можете притвориться кем-то другим, либо пользователем root, либо любым другим пользователем, использующим флаг -u.

три чашки
источник
3
Ну, вопрос был, почему это названо так, как оно есть, а не для бэкронимов и / или мнемоник, так что ... [цитата нужна]
Дероберт
Также цель по умолчанию пользователь по не должен быть root(хотя это имеет смысл для того , чтобы быть или , по крайней мере , один с идентификаторами 0 и это вообще), см runas_defaultв sudoers.
Стефан Шазелас
@derobert +1 за использование «обратных» и за то, что сайт не содержит неправильных ответов.
три чашки
@ щ спасибо, я этого не знал.
три чашки