Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Последняя версия Следующая версия справа и слева | ||
wiki:суперпользователь_в_ubuntu [2013/02/17 19:15] [Что такое sudo] |
wiki:суперпользователь_в_ubuntu [2017/08/18 18:44] [Ubuntu 11.10 и старше] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Администратор в Ubuntu, или что такое sudo ====== | + | ====== Администратор в Ubuntu, или Что такое sudo ====== |
- | В любой Linux системе обязательно есть один привилегированный пользователь — root. Этот пользователь имеет права на выполнение любых действий, удаление любых файлов и изменение любых параметров. Как-то ограничить свободу действий root практически невозможно. С другой стороны, все остальные пользователи системы обычно не имеют большинства необходимых прав, например, прав на установку программ, поскольку это является административной операцией, права на которую есть только у root. Ещё одной распространённой операцией, доступной только суперпользователю, является копирование и изменение файлов в системных папках, куда обычный пользователь доступа не имеет. | + | В любой Linux-системе обязательно есть один привилегированный пользователь --- root. Этот пользователь имеет права на выполнение любых действий, удаление любых файлов и изменение любых параметров. Как-то ограничить свободу действий root практически невозможно. С другой стороны, все остальные пользователи системы обычно не имеют большинства необходимых прав, например, прав на установку программ, поскольку это является административной операцией, права на которую есть только у root. Ещё одной распространённой операцией, доступной только суперпользователю, является копирование и изменение файлов в системных папках, куда обычный пользователь доступа не имеет. |
Раньше данная проблема решалась достаточно просто: при обладании паролем root можно было зайти в систему под его аккаунтом либо временно получить его права, используя команду ''su''. Потом выполнить все необходимые операции и вернуться обратно под обычного пользователя. В принципе, такая схема работает неплохо, однако у неё есть много существенных недостатков, в частности, невозможно никак (точнее, очень сложно) ограничивать административные привилегии только определённым кругом задач. | Раньше данная проблема решалась достаточно просто: при обладании паролем root можно было зайти в систему под его аккаунтом либо временно получить его права, используя команду ''su''. Потом выполнить все необходимые операции и вернуться обратно под обычного пользователя. В принципе, такая схема работает неплохо, однако у неё есть много существенных недостатков, в частности, невозможно никак (точнее, очень сложно) ограничивать административные привилегии только определённым кругом задач. | ||
Строка 53: | Строка 53: | ||
===== Получение прав суперпользователя для выполнения нескольких команд ===== | ===== Получение прав суперпользователя для выполнения нескольких команд ===== | ||
- | Иногда возникает необходимость выполнить подряд несколько команд с правами администратора. В этом случае можно временно перейти под суперпользователя командой | + | Иногда возникает необходимость выполнить подряд несколько команд с правами администратора. В этом случае можно временно стать суперпользователем одной из следующих команд: |
<code> | <code> | ||
sudo -s | sudo -s | ||
+ | sudo -i | ||
</code> | </code> | ||
- | После этого вы перейдёте в режим суперпользователя (с ограничениями, наложенными через настройки sudo), о чём говорит символ # в конце приглашения командной строки. Данная команда по действию похожа на ''su'', однако она не меняет домашний каталог на /root, что обычно очень удобно. Для того, чтобы при переходе под суперпользователя сменился так же и домашний каталог необходимо выполнить | + | После этого вы перейдёте в режим суперпользователя (с ограничениями, наложенными через настройки sudo), о чём говорит символ # в конце приглашения командной строки. Данные команды по действию похожа на ''su'', однако: |
- | + | - **sudo -s** - не меняет домашний каталог на /root, домашним остается домашний каталог пользователя вызвавшего **sudo -s**, что обычно очень удобно. | |
- | <code> | + | - **sudo -i** - сменит так же и домашний каталог на /root. |
- | sudo -s -H | + | |
- | </code> | + | |
Для выхода обратно в режим обычного пользователя наберите ''exit'' или просто нажмите <key>C-D</key>. | Для выхода обратно в режим обычного пользователя наберите ''exit'' или просто нажмите <key>C-D</key>. | ||
===== Использование традиционного root аккаунта и команды su ===== | ===== Использование традиционного root аккаунта и команды su ===== | ||
+ | <note warning>Разблокировка учетной записи root приводит неоправданным рискам (работая постоянно под рутом вы имеете 100500 способов "отстрелить себе ногу"), а также упрощает получение доступа к вашему компьютеру злоумышленником.</note> | ||
==== Ubuntu 11.04 и младше ==== | ==== Ubuntu 11.04 и младше ==== | ||
Строка 93: | Строка 93: | ||
Все, на экране входа появится пункт "Логин". | Все, на экране входа появится пункт "Логин". | ||
В поле логин вводим "root", в поле пароль - пароль, который мы задали на первом этапе. | В поле логин вводим "root", в поле пароль - пароль, который мы задали на первом этапе. | ||
+ | |||
+ | |||
+ | Для обратной блокировки учетной записи root вам потребуется откатить изменения в настройках lightdm а также заблокировать учетную запись root командой в терминале: | ||
+ | <code>sudo passwd -l root</code> | ||
+ | |||
===== Настройка sudo и прав доступа на выполнение различных команд ===== | ===== Настройка sudo и прав доступа на выполнение различных команд ===== | ||
Строка 117: | Строка 122: | ||
<code> | <code> | ||
имя_пользователя ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS</code> | имя_пользователя ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS</code> | ||
+ | <note important> Внимание! Вышеописанные действия не отменяют необходимости ввода команды sudo перед вашей командой</note> | ||
+ | === Создание синонимов (alias`ов) === | ||
+ | Для того, чтобы не только не вводить пароль для sudo, но и вообще не вводить sudo, сделайте следующее: | ||
+ | откройте файл .bashrc, находящейся в вашем домашнем каталоге | ||
+ | <code bash> nano ~/bashrc </code> | ||
+ | и добавьте в конец файла строки | ||
+ | <code bash>alias reboot='sudo reboot' | ||
+ | alias poweroff='sudo poweroff' | ||
+ | alias pm-hibernate='sudo pm-hibernate' | ||
+ | alias hibernate='sudo pm-hibernate' | ||
+ | alias shutdown='sudo shutdown' </code> | ||
+ | |||
+ | |||
Строка 129: | Строка 147: | ||
Если вы хотите, чтобы ''sudo'' всегда требовал ввода пароля, сделайте ''timestamp_timeout'' равным 0. | Если вы хотите, чтобы ''sudo'' всегда требовал ввода пароля, сделайте ''timestamp_timeout'' равным 0. | ||
+ | ===== sudo не спрашивает пароль ===== | ||
+ | ''sudo'' без пароля — чудовищная дыра в безопасности, кому попало разрешено делать что угодно. Если вы разрешили это намеренно — срочно верните обратно как было. | ||
+ | |||
+ | Однако, в некоторых случаях ''sudo'' внезапно перестаёт требовать пароль само по себе. Если сделать ''visudo'', то можно увидеть примерно такую строку, которую пользователь вроде бы не добавлял: | ||
+ | ALL ALL=(ALL) NOPASSWD:ALL | ||
+ | Скорее всего, эта катастрофичная строка была добавлена при установке программы типа Connect Manager от МТС или Мегафона. В таком случае, её нужно поменять на строку, разрешающую с правами ''root'' запускать только этот Connect Manager, примерно так: | ||
+ | юзернейм ALL= NOPASSWD: /путь/к/программе | ||
+ | Есть и другие варианты решения проблемы, небольшое обсуждение [[http://forum.ubuntu.ru/index.php?topic=238799.0|здесь]]. | ||
===== Ссылки ===== | ===== Ссылки ===== | ||