Администратор в Ubuntu, либо Что такое sudo
В хоть какой Linux-системе непременно есть один привилегированный юзер — root. Этот юзер имеет права на выполнение всех действий, удаление всех файлов и изменение всех характеристик. Как-то ограничить свободу действий root фактически нереально. С иной стороны, все другие юзеры системы традиционно не имеют большинства нужных прав, к примеру, прав на установку программ, так как это является административной операцией, права на которую есть лишь у root. Ещё одной распространённой операцией, доступной лишь суперпользователю, является копирование и изменение файлов в системных папках, куда обыденный юзер доступа не имеет.
Ранее данная неувязка решалась довольно просто: при обладании паролем root можно было зайти в систему под его аккаунтом или временно получить его права, используя команду . Позже выполнить все нужные операции и возвратиться обратно под обыденного юзера. В принципе, таковая схема работает хорошо, но у неё есть много существенных недочетов, в частности, нереально никак (точнее, чрезвычайно сложно) ограничивать административные привилегии лишь определённым кругом задач.
Потому в современных дистрибутивах Linux заместо root аккаунта для администрирования употребляется утилита .
В Ubuntu по умолчанию root акк вообщем отключён, т.е. вы никаким методом не можете попасть под root, не включив его. root конкретно что отключён, т.е. он находится в системе, под него всего только нельзя зайти. Ежели вы желаете вернуть возможность применять root, смотрите ниже пункт о включении root аккаунта.
Что такое sudo
sudo — это утилита, предоставляющая привилегии root для выполнения административных операций в согласовании со своими опциями. Она дозволяет просто контролировать доступ к принципиальным приложениям в системе. По умолчанию, при установке Ubuntu первому юзеру (тому, который создаётся во время установки) предоставляются полные права на внедрение sudo. Т.е. практически 1-ый юзер владеет той же свободой действий, что и root. Но такое поведение sudo просто поменять, о этом см. ниже в пт про настройку sudo.
Где употребляется sudo
sudo употребляется постоянно, когда вы запускаете что-то из меню Администрирования системы. К примеру, при запуске Synaptic вас попросят ввести собственный пароль. Synaptic – это программа управления установленным ПО, потому для её пуска необходимы права админа, которые вы и получаете через sudo вводя собственный пароль.
Но не все программы, требующие административных приемуществ, автоматом запускаются через sudo. Традиционно запускать программы с правами админа приходится вручную.
Запуск графических программ с правами администратора
Для пуска графических программ с правами админа можно пользоваться диалогом пуска программ, вызываемым по умолчанию сочетанием кнопок +.
Допустим, нам нужно запустить файловый менеджер Nautilus с правами админа, чтоб через графический интерфейс как-то поменять содержимое системных папок. Для этого нужно ввести в диалог пуска приложений команду
gksudo nautilus
Заместо можно подставить , не считая того, юзеры KDE должны заместо писать . У вас попросят ввести собственный пароль, и, ежели вы обладаете подходящими правами, Nautilus запуститься от имени админа. Пуск хоть какого графического ПО можно создавать с правами админа, просто написав в диалоге пуска
gksudo <имя_команды>
Запуск программ с правами админа в терминале
Для пуска в терминале команды с правами админа просто наберите перед ней :
sudo <команда>
У вас попросят ввести ваш пароль. Будьте внимательны, пароль при вводе никак не отображается, это нормально и изготовлено в целях сохранности, просто вводите до конца и жмите . Опосля ввода пароля указанная команда исполнится от имени root.
Система какое-то время помнит введённый пароль (сохраняет открытой sudo-сессию). Потому при следующих выполнениях sudo ввод пароля может не потребоваться. Для гарантированного прекращения сессии sudo наберите в терминале
sudo -K
Не считая того, нередко встречаются ошибки, связанные с каналами в Linux. При выполнении команды
sudo cat test.txt grep text > result.txt
с правами root исполнится лишь , потому файл result.txt может не записаться. Необходимо или писать перед каждой командой, или временно перебегать под суперпользователя.
Получение прав суперпользователя для выполнения пары команд
Время от времени возникает необходимость выполнить попорядку несколько команд с правами админа. В этом случае можно временно стать суперпользователем одной из последующих команд:
sudo -s sudo -i
Опосля этого вы перейдёте в режим суперпользователя (с ограничениями, наложенными через опции sudo), о чём говорит знак # в конце приглашения командной строчки. Данные команды по действию похожа на , однако: – sudo -s – не меняет домашний каталог на /root, домашним остается домашний каталог юзера вызвавшего sudo -s, что традиционно чрезвычайно комфортно. – sudo -i – сменит так же и домашний каталог на /root.
Для выхода обратно в режим обыденного юзера наберите либо просто нажмите +.
Использование обычного root аккаунта и команды su
Ubuntu 11.04 и младше
Для входа под root довольно задать ему пароль:
sudo passwd root
Позже на экране входа нажмите Другой… и введите логин (root) и пароль, который вы задали.
Ubuntu 11.10 и старше
Начиная с версии 11.10 был установлен менеджер входа lightdm, и дело со входом под root обстоит мало труднее.
1. Устанавливаем root пароль. Введите в терминал:
sudo passwd root
2. Включаем пункт «Введите логин». Введите в терминал:
gksu gedit /etc/lightdm/lightdm.conf
В конце файла допишите:
greeter-show-manual-login=true
3. Перезагружаем lightdm. Введите в терминал:
sudo service lightdm restart
Все, на экране входа покажется пункт «Логин». В поле логин вводим «root», в поле пароль – пароль, который мы задали на первом шаге.
Для обратной блокировки учетной записи root для вас будет нужно откатить конфигурации в настройках lightdm, а также заблокировать учетную запись root командой в терминале:
sudo passwd -l root
Настройка sudo и прав доступа на выполнение разных команд
sudo дозволяет разрешать либо запрещать юзерам выполнение определенного набора программ. Все опции, связанные с правами доступа, хранятся в файле . Это не совершенно обыденный файл. Для его редактирования необходимо (в целях безопасности) применять команду
sudo visudo
По умолчанию, в нём написано, что все члены группы admin имеют полный доступ к , о чём говорит строка
%admin ALL=(ALL) ALL
Подробнее о синтаксисе и способностях опции этого файла можно почитать выполнив
man sudoers
Разрешение юзеру делать команду без ввода пароля
Для того, что бы система не запрашивала пароль при определенных командах нужно в sudoers опосля строчки # Cmnd alias specification добавить строчку, где через запятую перечислить желаемые команды с полным путём(путь команды можно выяснить, выполнив which имя_команды:
# Cmnd alias specification Cmnd_Alias SHUTDOWN_CMDS = /sbin/shutdown, /usr/sbin/pm-hibernate, /sbin/reboot
И в конец файла дописать строчку
имя_пользователя ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS
Создание синонимов (alias`ов)
Для того, чтоб не лишь не вводить пароль для sudo, но и вообщем не вводить sudo, сделайте следующее: откройте файл .bashrc, находящейся в вашем домашнем каталоге
nano ~/bashrc
и добавьте в конец файла строчки
aliasreboot=’sudo reboot’aliaspoweroff=’sudo poweroff’alias pm-hibernate=’sudo pm-hibernate’aliashibernate=’sudo pm-hibernate’aliasshutdown=’sudo shutdown’
Время деяния введённого пароля
Может быть, вы желаете поменять просвет времени, в течение которого действует без ввода пароля. Этого просто достигнуть добавив в приблизительно следующее:
Defaults:foo timestamp_timeout=20
Тут для юзера foo действует без необходимости ввода пароля в течение 20 минут. Ежели вы желаете, чтоб постоянно требовал ввода пароля, сделайте равным 0.
sudo не спрашивает пароль
без пароля — страшная дыра в сохранности, кому попало разрешено делать что угодно. Ежели вы разрешили это намеренно — срочно верните обратно как было.
Но, в неких вариантах в один момент перестаёт требовать пароль само по для себя. Ежели сделать , то можно узреть приблизительно такую строчку, которую юзер вроде бы не добавлял:
ALL ALL=(ALL) NOPASSWD:ALL
Быстрее всего, эта катастрофичная строчка была добавлена при установке программы типа Connect Manager от МТС либо Мегафона. В таком случае, её необходимо поменять на строчку, разрешающую с правами запускать лишь этот Connect Manager, приблизительно так:
юзернейм ALL= NOPASSWD: /путь/к/программе
Есть и остальные варианты решения препядствия, маленькое обсуждение тут.