Администратор в Ubuntu, или что такое sudo
В любой Linux системе обязательно есть один привилегированный пользователь - root. Этот пользователь имеет права на выполнение любых действий, удаление любых файлов и изменение любых параметров. Как-то ограничить свободу действий root практически невозможно. С другой стороны, все остальные пользователи системы обычно не имеют большинства необходимых прав, например, прав на установку программ, поскольку это является административной операцией, права на которую есть только у root. Ещё одной распространённой операцией, доступной только суперпользователю, является копирование и изменение файлов в системных папках, куда обычный пользователь доступа не имеет. Раньше данная проблема решалась достаточно просто: при обладании паролем root можно было зайти в систему под его аккаунтом либо временно получить его права, используя команду su . Потом выполнить все необходимые операции и вернуться обратно под обычного пользователя. В принципе, такая схема работает неплохо, однако у неё есть много существенных недостатков, в частности, невозможно никак (точнее очень сложно) ограничивать административные привилегии только определённым кругом задач. Поэтому в современных дистрибутивах Linux заместо root аккаунта для администрирования используется утилита sudo . В Ubuntu по умолчанию root аккаунт вообще отключён, т.е. вы никаким способом не сможете попасть под root, не включив его. root именно что отключён, т.е. он присутствует в системе, под него всего лишь нельзя зайти. Если вы хотите вернуть возможность использовать root, смотрите ниже пункт о включении root аккаунта. sudo - это утилита, предоставляющая привилегии root для выполнения административных операций в соответствии со своими настройками. Она позволяет легко контролировать доступ к важным приложениям в системе. По умолчанию, при установке Ubuntu первому пользователю (тому, который создаётся во время установки) предоставляются полные права на использование sudo. Т.е. фактически первый пользователь обладает той же свободой действий, что и root. Однако такое поведение sudo легко изменить, об этом см. ниже в пункте про настройку sudo. sudo используется всегда, когда вы запускаете что-то из меню Администрирования системы. Например, при запуске Synaptic вас попросят ввести свой пароль. Synaptic - это программа управления установленным ПО, поэтому для её запуска нужны права администратора, которые вы и получаете через sudo вводя свой пароль. Однако не все программы, требующие административных привилегий, автоматически запускаются через sudo. Обычно запускать программы с правами администратора приходится вручную. Для запуска графических программ с правами администратора можно воспользоваться диалогом запуска программ, вызываемым по умолчанию сочетанием клавиш Alt+F2. Допустим, нам необходимо запустить файловый менеджер Nautilus с правами администратора, что бы через графический интерфейс как-то изменить содержимое системных папок. Для этого необходимо ввести в диалоге запуска приложений команду gksudo nautilus Вместо gksudo можно подставить gksu , кроме того, пользователи KDE должны вместо gksudo писать kdesu . У вас попросят ввести свой пароль, и, если вы обладаете нужными правами, Nautilus запуститься от имени администратора. Запуск любого графического ПО можно производить с правами администратора, просто написав в диалоге запуска gksudo <имя_команды> Будьте предельно внимательны при работе в приложениях, запущенных с правами администратора. Вы безо всяких предупреждений со стороны системы сможете выполнить любую операцию, в частности, удалить системные файлы, сделав при этом систему неработоспособной. Для запуска в терминале команды с правами администратора просто наберите перед ней sudo : sudo <команда> У вас попросят ввести ваш пароль. Будьте внимательны, пароль при вводе никак не отображается, это нормально и сделано в целях безопастности, просто вводите до конца и нажимайте Enter. После ввода пароля указанная команда исполнится от имени root. Система какое-то время помнит введённый пароль (сохраняет открытой sudo-сессию). Поэтому при последующих выполнениях sudo ввод пароля может не потребоваться. Для гарантированного прекращения сессии sudo наберите в терминале sudo -K Кроме того, часто встречаются ошибки, связанные с каналами в Linux. При исполнении команды sudo cat test.txt | grep text > result.txt с правами root исполниться только cat , поэтому файл result.txt может не записаться. Нужно либо писать sudo перед каждой командой, либо временно переходить под суперпользователя. Иногда возникает необходимость выполнить подряд несколько команд с правами администратора. В этом случае можно временно перейти под суперпользователя командой sudo -s После этого вы перейдёте в режим суперпользователя (с ограничениями, наложенными через настройки sudo), о чём говорит символ # в конце приглашения командной строки. Данная команда по действию похожа на su , однако она не меняет домашний каталог на /root, что обычно очень удобно. Для того, чтобы при переходе под суперпользователя сменился так же и домашний каталог необходимо выполнить sudo -s -H Для выхода обратно в режим обычного пользователя наберите exit или просто нажмите Ctrl+D. Нет ни одной причины использовать root вместо sudo, кроме того, при использовании root аккаунта у вас могут возникнуть проблемы с графическими приложениями из-за ошибок соединения с dbus. Отключение root аккаунта в Ubuntu заключается в том, что у root просто не задан пароль. Поэтому для получения возможности использовать традиционный root логин необходимо всего лишь установить для него пароль: sudo passwd root Кроме того, по умолчанию вход root в систему через GDM заблокирован, установка пароля для root это никак не исправит, для разблокирования необходимо перейти в меню Система→Администрирование→Окно входа в систему, потом на вкладку «Безопасность» и там поставить галочку напротив «Разрешить локальный вход администратора системы». Работа в GUI от имени администратора - это вообще прямая дорога к многочисленным проблемам. Поэтому десять раз подумайте, перед тем как активировать такую возможность. Если вы хотите отключить учётную записть root, просто удалить его пароль: sudo passwd -l root sudo позволяет разрешать или запрещать пользователям выполнение конкретного набора программ. Все настройки, связанные с правами доступа, храняться в файле /etc/sudoers . Это не совсем обычный файл. Для его редактирования необходимо (в целях безопасности) использовать команду sudo visudo По умолчанию, в нём написано, что все члены группы admin имеют полный доступ к sudo , о чём говорит строчка %admin ALL=(ALL) ALL Подробнее о синтаксисе и возможностях настройки этого файла можно почитать выполнив man sudoers Если вы допустите ошибку при редактировании этого файла, то вполне возможно полностью лишитесь доступа к административным функциям. Если такое случилось, то необходимо загрузиться в recovery mode, при этом вы автоматически получите права администратора и сможете всё исправить. Кроме того, отредактировать этот файл можно с LiveCD.
|