Почему это называется sudo?
Почему мы используем sudo
выполнить терминальную команду как административную? Почему не admin
или что-то другое? Есть ли причина для sudo
?
8 ответов
Из Википедии:
sudo - это программа для Unix-подобных компьютерных операционных систем, которая позволяет пользователям запускать программы с привилегиями безопасности другого пользователя (обычно суперпользователя или root). Его имя представляет собой объединение "su" (замещающий пользователь) и "do" или "принять действие".
В отличие от команды su, пользователи обычно предоставляют свой собственный пароль для sudo, а не пароль root. После аутентификации, и если файл конфигурации / usr / local / etc / sudoers (иногда находится в / etc / sudoers) разрешает доступ пользователя, то система вызовет запрошенную команду. Файл конфигурации sudoers обеспечивает огромное количество настроек, включая, но не ограничиваясь: включение корневых команд только из вызывающего терминала; не требуется пароль для определенных команд; требуется пароль для пользователя или группы; требует повторного ввода пароля каждый раз или вообще не требует пароля для конкретной командной строки. Он также может быть настроен на передачу аргументов или нескольких команд и даже поддерживает команды с регулярными выражениями.
Это временная одноразовая команда с привилегиями суперпользователя (администратора) без прямого входа в систему root.
До sudo большинство администраторов входили в систему как пользователь root, поскольку это простой способ настройки системы, поскольку у вас есть все права. Тем не менее, небольшая ошибка или неправильная интернет-ссылка и вся ваша система могут быть затронуты или даже скомпрометированы.
Из-за этой проблемы появилось sudo. Цель состояла в том, чтобы использовать административные привилегии только в течение короткого периода времени и только при необходимости. Кроме того, это позволит избежать входа пользователя в другую учетную запись. Это, очевидно, повысит безопасность системы.
Под Ubuntu они выбирают для повышения безопасности вашей системы. Таким образом, они решили пойти по пути 'sudo'. Пользователь root отключен; в этом нет необходимости, и в особенности нет риска, что пользователь войдет в систему через интерфейс X с пользователем root. Кроме того, они разрешили запускать каждую команду с помощью sudo для авторизованных пользователей. Круто то, что опытные пользователи могут получить доступ к учетной записи root.
Недостатки sudo
:
- Какие команды вам разрешить через sudo
- Вам нужно написать
sudo
перед каждой командой, требующей административных прав - Время от времени вам нужно повторно вводить пароль.
Что значит sudo
имею в виду? Его имя является объединением "su" (замещающий пользователь) и "do".
Зачем sudo
не admin
? Я думаю sudo
средства admin
на определенное время и только тогда, когда вам это нужно.
Люди, которые приходят из среды Windows, должны понимать, почему это не так admin
:)
От Linux.com, продукта Linux Foundation:
Sudo означает либо "Заместитель пользователя делает", либо "Суперпользователь делает" (в зависимости от того, как вы хотите посмотреть на это). То, что делает sudo, невероятно важно и важно для многих дистрибутивов Linux. По сути, sudo позволяет пользователю запускать программу как другой пользователь (чаще всего пользователь root).
[Акцент мой.] Источник
суперпользователь
Есть команда su, чтобы стать суперпользователем, так что вы можете сказать,
$ su
# apt-get install somehorror
# exit
$
sudo позволяет вам сделать это одним махом, и вам не нужно забывать отказываться от своих магических способностей.
$ sudo apt-get install somehorror
Является ли "суперпользователь" то, что su
Изначально он был получен из неточно, поскольку имя пользователя, которое вы ему даете, не обязательно должно быть суперпользователем. То же самое для выполнения команд другим пользователем, использующим sudo -u
,
"Сменный пользователь" более точен, но звучит неуклюже. Это заставляет меня думать о замене учителя.
Поэтому я предпочитаю думать о su
а просто "сменить пользователя" и sudo
таким образом, как "переключить пользователя и сделать".
Что касается того, почему это не "admin" - или, более косвенно, почему su не "switchUser" или что-то в этом роде, - традиционные команды Unix имеют тенденцию быть минимальными сокращениями по историческим причинам, связанным с происхождением Unix.
По самой простой причине нам нужно вернуться к той же самой причине, что она называется Unix. Большая часть Unix была вдохновлена одной из ранних многопользовательских многозадачных операционных систем, Multics MIT. (Unix получает свое название как "единственное число от Multics" или "кастрированный Multics", в зависимости от того, кого вы спрашиваете, и их настроения на данный момент.)
Среди других нововведений Multics он представил концепцию отделения фактического местоположения файла от информации каталога, позволяя одному файлу иметь несколько имен. ("Ссылки", в терминах Unix.) Multics воспользовался (чрезмерно) полным преимуществом этого; большинство команд Multics имеют ALongNameThatIsImpossibleToType и ASNTOECR (короткое имя, которое могут запомнить только эксперты). Опыт показал, что длинные имена действительно не добавляли большого удобства для пользователя, поскольку в действительности все пользователи в то время были или быстро стали "экспертами" и почти никто никогда не использовал длинные имена. Когда Unix принял некоторые разработки Multics, одним из их упрощений стало удаление неиспользуемых длинных имен и сохранение только удобных для экспертов коротких имен.
Это также хорошо согласуется с философией Unix, заключающейся в сокращении операционной системы и ее основных команд до базовых, что позволяет ей эффективно работать в небольших системах. В те дни программисты все еще сохраняли все возможные байты и циклы. Процессоры были значительно медленнее, скорости терминалов были также чрезвычайно медленнее, а память была чрезвычайно дороже (и медленнее, и имела крошечные кэши, если таковые имеются). Сокращение системных команд до минимальной длины, возможно, не сэкономило много (если таковые имеются) реальных ресурсов, но это "казалось правильным" для мышления времени.
Если вы действительно настаиваете на удобных для пользователя именах команд, ответ Unix будет: "Вы знаете, как написать сценарий оболочки; реализуйте его самостоятельно. Если вы не знаете, как написать сценарий оболочки, вам нужно научиться делать это". так что. Если вам не нравится учиться и / или писать код, вы не будете довольны Unix и должны использовать что-то другое ".
С сайта Судо:
"Что такое судо?
Sudo (su "do") позволяет системному администратору делегировать полномочия, чтобы дать определенным пользователям (или группам пользователей) возможность выполнять некоторые (или все) команды от имени пользователя root или другого пользователя, предоставляя контрольный журнал для команд и их аргументов.".
"Sudo был впервые задуман и реализован Бобом Коггесхаллом и Клиффом Спенсером в 1980 году на факультете компьютерных наук в SUNY/Buffalo. Он работал на VAX-11/750 с 4.1BSD. Обновленная версия, предоставленная Филу Бетчелу, Клиффу Спенсеру. Гретхен Филлипс, Джон Ловерсо и Дон Гворек были опубликованы в группе новостей net.sources Usenet в декабре 1985 года."
Тем не менее, хотя я не верю, что есть какие-либо доказательства, я всегда твердо верил, что это название было чем-то вроде шутливой программистской шутки. У вас есть команда "su" (супер-пользователь) "do", но вы на самом деле не супер-пользователь - превратите "doo" в "doh", и "sudo" выглядит / звучит очень похоже на "псевдо" (fake) фальшивый)
Большинство людей ответили, что это мэшап "Супер пользователь делает". Мне это нравится, но, может быть, правильнее будет сказать, что это коллаж "пользователь, выполняющий замену", потому что вы можете выбрать, какого пользователя "делать", как с флагом -u.
Я также воспринимаю это как игру слова psuedonym, потому что вы можете притвориться кем-то другим, либо пользователем root, либо любым другим пользователем, использующим флаг -u.