Как выйти из суперпользователя linux. Разрешаем вход под root в Linux Mint. С помощью ПК и специальных программ

На iOS - iPhone, iPod touch 23.03.2019
На iOS - iPhone, iPod touch

Здравствуйте, друзья! На очереди очередная очень важная статья (но только в том случае, если вы пользуетесь операционной системой Ubuntu). Разговор пойдет о правах суперпользователя. Дело в том, что Linux идет по пути, отличному от Windows. Для большей защиты здесь не сидят все время под администратором (в отличии от того, как мы привыкли делать это под виндой). А вот при выполнении задач по настройке или установке новых программ, приходится заходить под root. Дальше речь пойдет о том, как настроить пароль root ubuntu, как использовать права суперпользователя и для чего вообще это все делается.

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

Ubuntu - это, по большей части, клиенториентированная операционная система. Поэтому какие-либо серьезные изменения в ней хоть и не запрещены, но не рекомендуются, если пользователь не имеет представления о том, что именно происходит.

В частности, даже установка программного обеспечения, как стороннего, так и из Центра Приложений Ubuntu, требует ввода пароля суперпользователя - привилегированного пользователя (root), у которого есть все права над системой.

Понятно, что обычному пользователю, который работает с интернетом, офисными и графическими программами, играет в игры и слушает музыку, совершенно не обязательно устанавливать новые приложения, вносить изменения в системные папки, инсталлировать и удалять оборудование.

Однако ж, все таки бывают ситуации, когда в системе нужно выполнить определенные команды из режима администратора (суперпользователя).

Для этого можно поступить следующим образом.

Есть специально написанная под этот случай утилита, sudo, которая на время дает нам права администратора и позволяет выполнять команды уровня суперпользователя.

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

Открыть терминал консоли.


Перейти в папку с исходными кодами (предположим, путь до нее в файловой системе выглядит следующим образом /home/projects/myprog)

cd /home/projects/myprog

Попав в нужную папку, выполнить команду./configure (точка и слеш в начале команды обязательны)

Надо подождать пока она осуществит конфигурирование пакета под вашу систему и проверит все ли в ней установлено для полноценного функционирования программы. В зависимости от размера устанавливаемых файлов, этот процесс может занять много времени, однако вся информация о происходящем поступает в консоль.

Следующая команда make компилирует данный пакет.

В заключении нам нужно освободить систему от временных файлов командой make clean.

Ничего сложного, согласитесь. Разве что, перед вводом каждой команды надо «включать» режим администратора системы при помощи sudo, который обязательно запрашивает пароль входа в систему. Через некоторое время это начнет утомлять.

Что же такое sudo?

Это утилита, которая предоставляет все возможности администратора для выполнения задач управления операционной системой в рамках прописанных в ее настройках. В Ubuntu полные права на применение sudo передаются первому пользователю (то есть, тому, который создается при первоначальной установке системы). Таким образом, первый пользователь становится суперпользователем root. А аккаунт root по умолчанию в Ubuntu вообще отключен. И чтоб зарегистрироваться в системе под root’ом, нужно его включить.

Как использовать утилиту sudo?

1. Предположим, вам надо запустить какую-нибудь программу с правами администратора. Часто такая необходимость возникает для приложений обработки звука или видео, чтоб при первом запуске произошла настройка системы и было обнаружено периферийное оборудование.

2. Тогда, с клавиатуры, сочетанием клавиш Alt+F2, вызываем диалог запуска программ.

3. В открывшейся строчке вводим

и название программы, которую хотим запустить. В нашем случае это приложение jackd (системный музыкальный адаптер) или

Для пользователей Kubuntu утилита будет выглядеть следующим образом

после этого, вас попросят ввести пароль первого пользователя и программа запустится с правами администратора.

То есть, для запуска любой программы с графическим интерфейсом в открывшемся, через сочетание клавиш Alt+F2, окне нужно выполнить опцию:

gksudo(или kdesuдля Kubuntu)

и ввести пароль.

В терминале для запуска программ с правами администратора просто набирается sudo перед ней:

по запросу надо будет так же ввести пароль. Отметим обязательно, что вводимый пароль в целях безопасности никак не отображается (ни буквами, ни звездочками). Вы просто вводите его до конца и нажимаете Enter.

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

Чтоб отключить сессию-sudo, надо в терминале ввести команду:

это гарантированно отключит режим суперпользователя.

Есть случаи, когда sudo работает не так как надо.

В Linux очень часто применяют способ канальной работы с данными, когда одна команда сразу передает обработанные данные в другую. Например

cat test.txt | grep text > result.txt

в данной конструкции команда cat копирует содержимое файла test.txt и передает данные в управление командой grep, которая записывает все вхождения слова text в файл result.txt.

Так вот, если попытаться выполнить эту последовательность с применением утилиты sudo (к примеру оба файла системные),

sudo cat test.txt | grep text > result.txt

то может ничего не выйти. Для первой части выражения sudo сработает, а для второй нет.

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

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

Чтоб выйти из данного режима, достаточно набрать exit либо комбинацию клавиш Ctrl+D.

Как включить root-аккаунт в Ubuntu.

Еще раз оговоримся, что огромной нужды в применении root (вместо sudo) в системе нет. Более того, в режиме root часто возникают проблемы с графическим интерфейсом.

Однако, отключенный root свидетельствует лишь только о том, что у него не до конца прописаны параметры входа, а именно отсутствует пароль.

Чтоб пользователь мог работать под root, нужно прописать под него пароль при помощи команды

sudo passwd root

после этого система запросит у вас два пароля: для первого пользователя и новый для root’а. Введя оба, вы получите доступ к возможностям администратора root.

Еще одно действие, которое обязательно надо выполнить, это разблокировка входа пользователя root в систему через GDM - менеджер входа в систему. Зайдите в меню Система? Администрирование? Окно входа в систему, на вкладке «Безопасность» поставьте галочку напротив «Разрешить локальный вход администратора системы».

Все, теперь вы можете войти в систему как суперпользователь root и иметь все привилегии и проблемы связанные с root.

Если понадобится отключить эту возможность, достаточно просто удалить пароль для пользователя root при помощи команды

sudo passwd -l root

еще раз повторимся, что использование прав root в системе без необходимости чревато крахом платформы и в конечном счете ее переустановкой. Поэтому надо основательно взвесить все «за» и «против» прежде, чем создавать возможность работы в системе под суперпользователем root.

Спасибо за прочтение статьи. Прошу прощения за отсутствие традиционных картинок, дело в том, что у меня на ноуте стала барахлить виртуальная машина, поэтому не могу войти в свою Ubuntu и снять скриншотов. Постараюсь это дело побыстрее исправить. Вам же рекомендую подписаться на обновления блога, ведь скоро в свет выйдет статья, с которой, наверное, стоило бы начинать цикл статей про эту операционную систему. Статья будет, как вы наверное уже догадались, про установку Ubuntu. Задавайте свои вопросы в комментариях. До следующих статей!

Статьи, которые могут быть полезны:
1.
2.
3.

Сам использую Ubuntu на работе и дома в качестве основной ОС, вот уже почти два года. На домашнем сервере использую серверную убунту — работает как часы, сутками на пролёт, используется в качестве шлюза и NAS. Вот с Windows так не получается, чтобы сутками напролёт и без проблем, с ним вечно что-то происходит, даже если его не трогать.

Ответить

Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/Android-Root..jpg 500w, http://androidkak.ru/wp-content/uploads/2015/08/Android-Root-300x127.jpg 300w" sizes="(max-width: 500px) 100vw, 500px">
Если вы открыли эту статью, то вы наверняка уже имеете хоть какое-то представление о правах суперпользователя. Но на тот редкий случай, если вы являетесь обычным пользователем Android и открыли статью из праздного интереса – небольшой ликбез.

Права суперпользователя, они же рут-права (от английского “root”, что значит “корень”) – это возможность записывать, изменять и удалять информацию, находящуюся в системном (или корневом) разделе файловой системы. Данное понятие схоже с правами администратора на Windows и применяется на операционных системах, основанных на UNIX (Linux, Android, Tizen и т.д.)

Права root можно получить практически на всех Android-устройствах и мы обязательно пройдемся по самым популярным способам их получения, но сначала давайте ответим на два очень важных вопроса: безопасно ли то, что мы с вами собираемся сейчас сделать, а также стоит ли оно того.

Какие последствия влечет за собой получение рут-прав

Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/vnimanie.jpg" alt="обратите внимание" width="145" height="121" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/vnimanie..jpg 300w" sizes="(max-width: 145px) 100vw, 145px"> Прежде всего, ответьте на вопрос – читали ли вы гарантийное соглашение, которое прилагалось к вашему телефону? Если читали – то вы знаете, что получение рут-прав – это серая зона и останется ли ваша гарантия при вас по завершении процесса, зависит только от политики производителя.
Далее, запомните одну вещь – суперпользователь даёт вам полный доступ. ПОЛНЫЙ. То есть если вам вдруг придет в голову удалить важные системные файлы – вас никто не остановит. Так что внимательно следите, какие программы получают от вас данные права, а также консультируйтесь с другими, более опытными пользователями Android перед тем, как делать какую-нибудь глупость.

Какие преимущества можно получить при наличии root-прав

Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/android-vigody.jpg" alt="Выгоды получения прав" width="159" height="50" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/android-vigody..jpg 300w" sizes="(max-width: 159px) 100vw, 159px"> Список того, что можно сделать при наличии root-прав просто огромен. Только взгляните на наиболее популярные причины получения прав суперпользователя!

ВАЖНО: В скобках указана программа, которая позволяет выполнить данное действие.

  1. Удаление предустановленных программ а-ля Facebook или Twitter из системного раздела (Titanium Backup);
  2. Перенос кеша приложений с внутренней карты памяти на внешнюю (FolderMount);
  3. Перенос раздела с приложениями на карту памяти (Xposed App2SD);
  4. Глобальная модификация интерфейса с возможностью тонкой настройки (практически все модули Xposed);
  5. Отключение рекламы во всех приложениях (Adaway);
  6. Взлом покупок в приложениях с PlayMarket (Freedom);
  7. Отключение проверки лицензии в невзламываемых приложениях, а также их взлом (Lucky Patcher).

Читайте также: Как сделать Hard Reset на устройстве Android

И это ещё не всё! Фактически, имея root-доступ к вашему телефону, вы можете сделать из него практически всё что угодно. И если ваш запал ещё не остыл – давайте перейдём к собственно процессу получения рут-прав.

Инструкция

data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/Android-s-root-pravami.jpg" alt="Рутированный Андроид" width="165" height="91" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/Android-s-root-pravami..jpg 300w" sizes="(max-width: 165px) 100vw, 165px">
К несчастью, просто так включить root-доступ на Android нельзя – производители постарались обезопасить свои творения от кривых рук пользователей и это, на самом деле, правильно – иначе число обращений в сервисные центры выросло бы в разы. Но это не значит, что получить рут-права нельзя совсем. Более того, для большинства телефонов эта процедура является крайне будничной и занимает всего несколько минут.

Существует множество способов получения root-прав и как и в наших других инструкциях, мы пойдём от простого к сложному.

1. С самого устройства

Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/google-play-logo-274x300.png" alt="google play market" width="92" height="100" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/google-play-logo-274x300..png 405w" sizes="(max-width: 92px) 100vw, 92px"> Несмотря на то что многие производители максимально закрывают доступ к своим смартфонам, хакеры со всего мира время от времени находят лазейки, которые позволяют получить права всего одним нажатием на экран. А другие производители просто доверяют своим пользователям и даже публикуют алгоритмы обхода своей защиты. Именно на таком принципе и основаны различные автоматические получатели root-прав, наиболее известным из которых является KingRoot.

Всё, что требуется для получения root-прав на устройстве с помощью KingRoot – это нажать одну кнопку. Из недостатков KingRoot – не самый привычный старым пользователям Android менеджер прав. Вместо привычного SuperSU, KingRoot использует собственную программу, которая, впрочем, не особо отличается от SuperSU в вопросах функциональности.

Помимо KingRoot, популярностью пользуется программа Framaroot, а также многочисленные другие приложения для Андроид-устройств, например, VRoot,

2. С помощью ПК и специальных программ

Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/android-i-pk-300x258.jpg" alt="Подключение андроида к ПК" width="150" height="129" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/android-i-pk-300x258..jpg 473w" sizes="(max-width: 150px) 100vw, 150px"> Если передать инструкции для разблокировки изнутри Android-системы нельзя, это ещё не значит, что этого нельзя сделать совсем. По крайней мере, согласно этому принципу оперируют такие программы, как SuperOneClick, Kingo и многие другие. В качестве основы своей работы они используют USB-соединение Андроид-смартфона и ПК, через которое и подаются команды.

Читайте также: Как сделать из Android-устройства Windows Phone

Для того чтобы получить возможность так делать, вам нужно включить в настройках вашего Android-смартфона опцию “Отладка по USB”. Находится она в скрытом разделе “Для разработчиков”, а чтобы открыть этот раздел (если он закрыт), зайдите в раздел “О планшете” и десять-пятнадцать раз нажмите на пункт “Версия сборки”.

После того как вы её включили просто подключите ваш Андроид-смартфон к ПК (в режиме Mass Storage, естественно) и запустите выбранную вами программу, после чего следуйте инструкциям по работе с ней. О том, какую именно программу выбрать и как именно ею пользоваться, вам придётся думать самостоятельно – число Android-устройств слишком велико, чтобы можно было с уверенностью сказать, какие именно из них работают с одной программой, а какие – с другой.

3. С помощью ПК и ADB-терминала

data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/android-pc-adb-300x258.jpg" alt="Соединение телефона и компьютера по adb-протоколу" width="150" height="129" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/android-pc-adb-300x258..jpg 473w" sizes="(max-width: 150px) 100vw, 150px"> Если производитель вашего смартфона очень любит свою паранойю и при этом достаточно успешен, чтобы позволить себе нанять много талантливых программистов для мало кому нужного дела (особенно этим грешит Sony) – получить рут-права с помощью KingRoot или Kingo не выйдет. Точно так же, как не выйдет и получить root на устройствах с нестандартной начинкой (скажем на линейке Asus Zenfone или китайских Андроид-планшетах построенных на Intel Atom). В этом случае придётся воспользоваться помощью компьютера и adb-интерфейса.

Для тех, кто не знает, что такое adb, отвечаем. ADB – это специальный протокол, который позволяет вашему Андроид-устройству получать инструкции с компьютера по USB-кабелю. Благодаря тому, что ADB является частью самой системы Android, такие команды в большинстве случаев имеют более высокий приоритет, чем защитные решения производителя телефона.

Для нормальной работы ADB с вашим телефоном вам понадобится как минимум:

  • Компьютер с операционной системой Windows 7 (более новые ОС могут работать нестабильно или вообще не работать с нужными драйверами);
  • Набор adb-драйверов для вашего устройства (обычно выдаётся производителем);
  • USB-кабель;
  • Собственно, смартфон с включённой в настройках опцией “Отладка по USB”;
  • Распакованный в папку “X://ADB”, где X – (желательно) несистемный диск, архив с ADB-терминалом.

В любой Linux-системе обязательно есть один привилегированный пользователь - root. Этот пользователь имеет права на выполнение любых действий, удаление любых файлов и изменение любых параметров. Как-то ограничить свободу действий root практически невозможно. С другой стороны, все остальные пользователи системы обычно не имеют большинства необходимых прав, например, прав на установку программ, поскольку это является административной операцией, права на которую есть только у root. Ещё одной распространённой операцией, доступной только суперпользователю, является копирование и изменение файлов в системных папках, куда обычный пользователь доступа не имеет.

Раньше данная проблема решалась достаточно просто: при обладании паролем root можно было зайти в систему под его аккаунтом либо временно получить его права, используя команду su . Потом выполнить все необходимые операции и вернуться обратно под обычного пользователя. В принципе, такая схема работает неплохо, однако у неё есть много существенных недостатков, в частности, невозможно никак (точнее, очень сложно) ограничивать административные привилегии только определённым кругом задач.

Поэтому в современных дистрибутивах Linux вместо root аккаунта для администрирования используется утилита sudo .

В Ubuntu по умолчанию root аккаунт вообще отключён, т.е. вы никаким способом не сможете попасть под root, не включив его. root именно что отключён, т.е. он присутствует в системе, под него всего лишь нельзя зайти. Если вы хотите вернуть возможность использовать root, смотрите ниже пункт о включении root аккаунта.

Что такое sudo

sudo - это утилита, предоставляющая привилегии root для выполнения административных операций в соответствии со своими настройками. Она позволяет легко контролировать доступ к важным приложениям в системе. По умолчанию, при установке Ubuntu первому пользователю (тому, который создаётся во время установки) предоставляются полные права на использование sudo. Т.е. фактически первый пользователь обладает той же свободой действий, что и root. Однако такое поведение sudo легко изменить, об этом см. ниже в пункте про настройку 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 наберите в терминале

Кроме того, часто встречаются ошибки, связанные с каналами в Linux. При исполнении команды

Sudo cat test.txt | grep text > result.txt

с правами root исполнится только cat , поэтому файл result.txt может не записаться. Нужно либо писать sudo перед каждой командой, либо временно переходить под суперпользователя.

Получение прав суперпользователя для выполнения нескольких команд

Иногда возникает необходимость выполнить подряд несколько команд с правами администратора. В этом случае можно временно стать суперпользователем одной из следующих команд:

Sudo -s sudo -i

После этого вы перейдёте в режим суперпользователя (с ограничениями, наложенными через настройки sudo), о чём говорит символ # в конце приглашения командной строки. Данные команды по действию похожа на su , однако: - sudo -s - не меняет домашний каталог на /root, домашним остается домашний каталог пользователя вызвавшего sudo -s , что обычно очень удобно. - sudo -i - сменит так же и домашний каталог на /root.

Для выхода обратно в режим обычного пользователя наберите exit или просто нажмите Ctrl + D .

Использование традиционного root аккаунта и команды su

Разблокировка учетной записи root приводит неоправданным рискам (работая постоянно под рутом вы имеете 100500 способов «отстрелить себе ногу»), а также упрощает получение доступа к вашему компьютеру злоумышленником.

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 позволяет разрешать или запрещать пользователям выполнение конкретного набора программ. Все настройки, связанные с правами доступа, хранятся в файле /etc/sudoers . Это не совсем обычный файл. Для его редактирования необходимо (в целях безопасности) использовать команду

Sudo visudo

По умолчанию, в нём написано, что все члены группы admin имеют полный доступ к sudo , о чём говорит строчка

%admin ALL=(ALL) ALL

Подробнее о синтаксисе и возможностях настройки этого файла можно почитать выполнив

Man sudoers

Если вы допустите ошибку при редактировании этого файла, то вполне возможно полностью лишитесь доступа к административным функциям. Если такое случилось, то необходимо загрузиться в recovery mode, при этом вы автоматически получите права администратора и сможете всё исправить. Кроме того, отредактировать этот файл можно с LiveCD.

Разрешение пользователю выполнять команду без ввода пароля

Для того, что бы система не запрашивала пароль при определенных командах необходимо в 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

Внимание! Вышеописанные действия не отменяют необходимости ввода команды sudo перед вашей командой

Создание синонимов (alias`ов)

Для того, чтобы не только не вводить пароль для sudo, но и вообще не вводить sudo, сделайте следующее: откройте файл.bashrc, находящейся в вашем домашнем каталоге

nano ~/ bashrc

и добавьте в конец файла строки

alias reboot ="sudo reboot" alias poweroff ="sudo poweroff" alias pm-hibernate="sudo pm-hibernate" alias hibernate ="sudo pm-hibernate" alias shutdown ="sudo shutdown"

Время действия введённого пароля

Возможно, вы хотите изменить промежуток времени, в течение которого sudo действует без ввода пароля. Этого легко добиться добавив в /etc/sudoers (visudo) примерно следующее:

Defaults:foo timestamp_timeout=20

Здесь sudo для пользователя foo действует без необходимости ввода пароля в течение 20 минут. Если вы хотите, чтобы sudo всегда требовал ввода пароля, сделайте timestamp_timeout равным 0.

sudo не спрашивает пароль

sudo без пароля - чудовищная дыра в безопасности, кому попало разрешено делать что угодно. Если вы разрешили это намеренно - срочно верните обратно как было.

Однако, в некоторых случаях sudo внезапно перестаёт требовать пароль само по себе. Если сделать visudo , то можно увидеть примерно такую строку, которую пользователь вроде бы не добавлял:

ALL ALL=(ALL) NOPASSWD:ALL

Скорее всего, эта катастрофичная строка была добавлена при установке программы типа Connect Manager от МТС или Мегафона. В таком случае, её нужно поменять на строку, разрешающую с правами root запускать только этот Connect Manager, примерно так:

Юзернейм ALL= NOPASSWD: /путь/к/программе

Есть и другие варианты решения проблемы, небольшое обсуждение .

Как вы знаете, Linux очень серьезно относится к управлению пользователями и предоставлению им прав на работу с системой. Обычный пользователь может записывать файлы только в свой каталог и каталог /tmp/. Также есть возможность читать некоторые файлы в корневой файловой системе. Но вы не можете устанавливать программы, ведь для этого нужно право на запись, не можете изменять атрибуты файлов, не можете запускать сервисы, не можете читать некоторые файлы логов и еще много чего не можете.

В Linux управлять корневой файловой системой и создавать там файлы имеет право только пользователь root.

В этой статье мы рассмотрим какие программы нужны для того, чтобы получить права root пользователя linux, как они работают, как выполнять программу с правами root от обычного пользователя и как запускать графические программы с правами root. А также выясним что такое sudo в чем разница su или sudo.

Очень долго перечислять чего не может обычный пользователь Linux, проще сказать на что у него есть право, а именно при стандартной настройке полномочий для файлов в Linux, обычный пользователь может:

  • Читать, писать и изменять атрибуты файлов в своем каталоге
  • Читать, писать, изменять атрибуты файлов в каталоге /tmp
  • Выполнять программы там, где это не запрещено с помощью флага noexec
  • Читать файлы, для которых установлен флаг чтения для всех пользователей.

Если же нужно сделать что-то большее нам понадобятся права root пользователя linux. У root есть право делать все в вашей файловой системе независимо от того какие права установлены на файл.

Вход под суперпользователем

Чтобы войти под пользователем root можно переключиться в одну из виртуальных консолей, например, с помощью сочетания клавиш Ctrl+Alt+F1 и затем ввести логин root и пароль root пользователя.

Вы получите полноценное окружение root с возможностью выполнять все действия, но такой способ очень непрактичный, так как вы теряете все преимущества использования графического интерфейса.

Можно поступить полностью противоположным путем, ввести логин root и его пароль в графическом менеджере входа, чтобы окружение рабочего стола работало от имени root, и мы получаем все права root linux, но такой вариант крайне не рекомендованный, и очень опасный, вы можете случайно повредить всю систему. Поэтому этот способ был отключен во многих менеджерах входа.

Переключение на суперпользователя в терминале

Теперь мы подошли к более интересному и практичному. С помощью специальных утилит вы можете переключить текущий эмулятор терминала в окружения суперпользователя и выполнять все следующие команды не от своего имени, а от его, таким образом, дав программе права root linux. Для этого существует утилита su. Вообще говоря, эта утилита позволяет не только переключаться на пользователя root но и на любого другого пользователя, но по умолчанию используется именно root. Рассмотрим ее подробнее. Команда su linux имеет следующий синтаксис:

$ su опции пользователь

Вот ее основные опции:

  • -c, --command - выполнить команду
  • -g, --group - установить основную группу пользователя (только для root)
  • -G --supp-group - дополнительные группы пользователя (только для root)
  • -, -l, --login - режим входа, будут очищены и инициализированы с учетом нового пользователя все переменные окружения, а также изменен домашний каталог
  • -p, --preserve-environment
  • -s, --shell - задать оболочку для входа
  • --version - отобразить версию программы.

Теперь немного поэкспериментируем, чтобы понять как работает команда su linux.

Сначала выполним su без параметров, но для начала создадим переменную окружения, чтобы проверить как с ними обходится эта команда:

Теперь выполняем:

Теперь смотрим что получилось:

whoami
$ pwd
$ echo $VAR
$ echo $PATH
$ exit

Из этих команд мы видим, что теперь мы пользователь root, но домашней директорией считается директория нашего предыдущего пользователя и наша переменная не сохранилась также изменилась переменная PATH, теперь там добавлен путь /sbin.

Теперь используем вход в режиме логина:

И повторим ту же комбинацию:

whoami
$ pwd
$ echo $VAR
$ echo $PATH
$ exit

Та же ситуация, только на этот раз изменена ко всему еще и домашняя директория на директорию root. Но мы можем сохранить наши переменные окружения, если это нужно, для этого есть опция -p:

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

Получение прав суперпользователя таким способом используется во многих дистрибутивах, например, Debian, OpenSUSE, ArchLInux, Gentoo и т д. Но в Ubuntu, как дистрибутиве для начинающих вход под пользователем root отключен. Это сделано потому, что это тоже не очень безопасно, вы можете забыть что выполняете команду от root и что-то натворить в системе. Поэтому переходим к следующей программе.

Получение прав root без переключения

Чтобы реализовать максимально безопасный интерфейс для работы с правами суперпользователя в Linux была разработана команда sudo. Давайте рассмотрим что такое sudo. Эта команда пишется перед каждой командой, которую нужно выполнить от имени суперпользователя, и для ее выполнения нужно ввести пароль уже не root, а всего лишь вашего пользователя. Так же, как и в предыдущей, в этой утилиты есть свои опции. Сначала рассмотрим синтаксис:

$ sudo опции команда

Опции программы:

  • -b - выполнять запускаемую утилиту в фоне
  • -E - сохранить переменные окружения
  • -g - запустить команду от группы
  • -H - использовать домашний каталог
  • -l - показать список полномочий в sudo для текущего пользователя
  • -r - использовать для команды роль SELinux
  • -s - использовать оболочку
  • -u - запустить команду от имени пользователя, если не задано используется root
  • -i - не выполнять команду, а войти в оболочку, эквивалентно su -

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

Использование sudo - это рекомендованный способ выполнять команды от имени суперпользователя в Linux. Так вы не забудете с чем имеете дело и меньше всего рискуете повредить систему. Но остался еще один нерешенный вопрос - как быть с графическими утилитами? Ведь команда sudo их не запускает, а запускать графическую оболочку от имени root небезопасно. Это мы и рассмотрим далее.

Графически приложения от имени суперпользователя

Для запуска графических приложений от имени суперпользователя существуют специальные утилиты. Они сохраняют все необходимые переменные окружения и полномочия. В KDE это команда kdesu, а в Gnome команда gksu.

Просто наберите gksu или kdesu, а затем нужную команду:

Эта команда запустит файловый менеджер KDE с правами суперпользователя. В Gnome это будет выглядеть вот так:

Программа запросит пароль, уже в графическом окне, а потом откроется файловый менеджер.

Выводы

Вот и все. Теперь вы знаете как получить права суперпользователя в Linux, знаете как использовать команду sudo и в чем разница sudo или su. Теперь программы, требующие дополнительных привилегий в системе, не вызовут у вас проблем. Если остались вопросы, пишите в комментариях!

Как вы понимаете, в ответ на это приглашение необходимо ввести имя пользователя, а потом, по запросу, и пароль для входа в систему. Если это первый вход в систему после ее установки, то входить надо под именем ""root"". Это единственный пользователь, для которого обязательно заводится счет или бюджет (account) во время инсталляции. Этот пользователь является полным хозяином системы (как сейчас, так и в последующем), то есть имеет неограниченный доступ к ее ресурсам, может заводить и удалять других пользователей, останавливать систему и т. д. Неосторожное поведение пользователя с такими правами легко может привести к печальным последствиям, вплоть до полного краха системы. Поэтому обычно под этим именем входят в систему только для выполнения административных задач. Но у нас сейчас как раз такой случай, так что в ответ на приглашение login : вводим "root" и нажимаем клавишу (или < Return> ). Система выдаст запрос на ввод пароля:

Password:

Очевидно, что в ответ надо вводить пароль того пользователя, имя которого было введено ранее. При первой загрузке надо ввести тот пароль, которой был задан для пользователя root в процессе инсталляции, и нажать . Заметим, что если после ввода имени очень долго не вводить пароль, то система снова вернется к запросу имени пользователя. После ввода пароля вы увидите примерно такую надпись:

Такая строка называется приглашением. Появление приглашения означает, что система готова воспринять и выполнить вашу команду. Сейчас это свидетельствует о том, что вы успешно вошли в систему. Вы видите черный экран и приглашение системы к вводу команды — то, что в MS-DOS или Windows принято называть режимом командной строки. Мы будем называть этот режим текстовым (в отличие от графического режима, предоставляемого системой X Window).

В приведенном примере приглашение включает в себя указание имени пользователя (root ), имени системы (localhost ) и тукущего каталога (/root ). Вид приглашения тоже можно изменить. Во всех последующих примерах мы будем использовать приглашение, состоящее только из имени пользователя.

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

Первая команда, которую стоит ввести — команда useradd . После имени команды надо ввести пробел и имя пользователя, например, jim:

# useradd jim

После этого система будет знать о существовании пользователя jim (говорят, будет "открыт счет для пользователя jim "). Однако войти в систему (или, как обычно говорят, "логироваться") под этим именем еще невозможно. Для того, чтобы система разрешила работать пользователю с именем jim , надо задать ему пароль. Для этого вводим команду

# passwd jim

Появится строка

New UNIX password:

Вводите пароль. После того, как вы завершите ввод нажатием клавиши , система попросит ввести его повторно:

Retype new UNIX password:

Если вы не ошиблись при вводе (пароль приходится вводить "вслепую", поскольку он не отображается на экране), появится сообщение:

passwd: all authentication tokens updated successfully

и приглашение системы. Если вы выбрали пароль не очень удачно (слишком короткий или простой), вам будет выдано предупреждение, но система все равно примет пароль и позволит новому пользователю входить с ним в систему.

Таким образом, вы познакомились с первыми двумя командами системы Linux: useradd и passwd . Следующая команда, о которой нужно знать каждому пользователю любой UNIX-системы — это команда man . Команда man — это система встроенной помощи системы Linux. Вводить ее надо с параметром — именем другой команды или ключевым словом, например,

# man passwd

В ответ вы получите описание соответствующей команды или информацию по теме, обозначенной ключевым словом. Поскольку информация обычно не помещается на одном экране, при просмотре можно пользоваться клавишами И А также клавишей пробела. Нажатие клавиши в любой момент приводит к выходу из режима просмотра и возврату в режим ввода команд. Попробуйте просмотреть информацию по рассмотренным уже командам login и passwd . Заметим, что точно также можно получить информацию по самой команде man . Введите

# man man

К сожалению, в большинстве случаев информация выдается по-английски. Если вы не читаете по-английски, то терпеливо читайте настоящее руководство или другую подходящую книгу по данной теме.

Вы можете попробовать вводить еще некоторые команды и понаблюдать за реакцией системы. Попробуйте, например, команды, перечисленные в табл. 3.1 (вводите их с приведенными в таблице параметрами).

Таблица 3.1 . Простейшие команды Linux.

Команда

Краткое описание

whoami

Сообщает имя, с которым вы вошли в систему в данном сеансе работы

w илиwho

Сообщает, какие пользователи работают в данный момент в системе

pwd

Сообщает имя текущего каталога

ls -l

Выдает список файлов и подкаталогов текущего каталога

cd < имя_каталога>

Осуществляет смену текущего каталога

ps ax

Выдает список выполняющихся процессов

Просмотрите описания этих команд с помощью команды man .

Мы не будем приводить здесь более подробный список возможных команд. Во-первых, с необходимыми командами можно будет постепенно познакомиться в ходе дальнейшего чтения. Во-вторых, описания основных команд можно найти в любой книге по UNIX.

В. Костромин (kos at rus-linux dot net) - 3.2. Вход в систему

Рекомендуем почитать

Наверх