Как выйти из root в убунту

Техника
Содержание
  1. Содержание
  2. Когда нужно работать под пользователем root?
  3. Использование sudo
  4. Содержание
  5. Что такое sudo
  6. Где используется sudo
  7. Запуск графических программ с правами администратора
  8. Запуск программ с правами администратора в терминале
  9. Получение прав суперпользователя для выполнения нескольких команд
  10. Использование традиционного root аккаунта и команды su
  11. Ubuntu 11.04 и младше
  12. Ubuntu 11.10 и старше
  13. Настройка sudo и прав доступа на выполнение различных команд
  14. Разрешение пользователю выполнять команду без ввода пароля
  15. Создание синонимов (alias`ов)
  16. Время действия введённого пароля
  17. Sudo не спрашивает пароль
  18. Ссылки
  19. Содержание
  20. Консоль
  21. Терминал
  22. Горячие клавиши
  23. Программная оболочка
  24. Команды
  25. Работа с локальными deb-пакетами (dpkg)
  26. Использование пакетного менеджера Apt
  27. Монтирование файловых систем
  28. Форматирование файловых систем
  29. Создание резервных копий (backup)
  30. Выставление/изменение полномочий на файлы
  31. Команды Secure Shell (ssh)
  32. Управление процессами
  33. IPTABLES (firewall)
  34. Просмотр справки и руководства по программе
  35. Поиск по man’ам
  36. Более привлекательные man’ы
  37. Выполнение команд с неограниченными привилегиями
  38. Команды для работы с файлами и папками
  39. Команды информации о системе
  40. Добавление нового пользователя
  41. Построение дерева каталогов (tree)
  42. История происхождения
  43. Команда sudo
  44. Использование sudo
  45. Запуск от имени root без использования su
  46. Меньше Супермена, больше Кларка Кента
  47. Обоюдоострый меч
  48. Отключение SSH-доступа для root
  49. Более безопасный способ разрешить root-доступ по SSH
  50. Въезд запрещен
  51. Предназначение root-прав в Linux
  52. Безопасность использования прав суперпользователя
  53. Команда sudo и примеры ее использования
  54. Переключение на суперпользователя
  55. Предоставление и отзыв прав суперпользователя
  56. Создание нового пользователя с root
  57. Для существующей учетной записи
  58. Откат прав суперпользователя

Содержание

Для начала определимся в терминах:

  • root — суперпользователь системы. А если более точно, то это пользователь с идентификатором 0. Имя здесь не особо важно. Хотя по умолчанию это общее имя пользователя с нулевым идентификатором пользователя для всех unix-like операционных систем. Это пользователь обладает наивысшими привилегиями в ОС.

  • sudo — консольная команда выполняющая команду переданную ей как аргумент с правами суперпользователя (root). Графический аналог — gksu, kdesu.

  • # — символ подсказки в консоли, который явно указывает, что команда будет выполнена под учетной записью root (в отличии от символа $, который говорит что команда будет выполнена от имени обычного пользователя).

Когда нужно работать под пользователем root?

Все это однако не означает что никаких административных действий выполнить в такой системе нельзя. Для исполнения административных команд используется команда sudo (или её графический аналог gksu).

Использование sudo

Есть несколько важных трюков в использовании sudo:

  • Будьте внимательны выполняя команды с sudo или работая в сессии root-а (и не забывайте выйти из сессии root-а по окончанию действий требующих расширенных прав).

  • Не пользуйтесь sudo там, где это не нужно.

Содержание

В любой 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 наберите в терминале

sudo -K

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

Ubuntu 11.10 и старше

Начиная с версии 11.10 был установлен менеджер входа lightdm, и дело со входом под root обстоит немного сложнее.

1. Устанавливаем root пароль.
Введите в терминал:

sudo passwd root
gksu gedit /etc/lightdm/lightdm.conf

В конце файла допишите:

greeter-show-manual-login=true

3. Перезагружаем lightdm.
Введите в терминал:

sudo service lightdm restart

Для обратной блокировки учетной записи root вам потребуется откатить изменения в настройках lightdm, а также заблокировать учетную запись root командой в терминале:

sudo passwd -l root

Настройка sudo и прав доступа на выполнение различных команд

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

sudo visudo
%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, находящейся в вашем домашнем каталоге

  ~bashrc 

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

 =
 =
 pm-hibernate=
 =
 = 

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

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

Defaults:foo timestamp_timeout=20

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

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

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

Дополнительно:  Скачать bluestacks уже с root правами

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

ALL ALL=(ALL) NOPASSWD:ALL

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

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

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

Ссылки

  • Настройка sudo — топик на форуме о времени действия пароля

Содержание

В Ubuntu существует два вида интерфейса: графический интерфейс пользователя и интерфейс командной строки.

Преимущества: визуальное отображение программ и их содержимого, возможности программ можно изучать без чтения документации.

Интерфейс командной строки (англ. Command Line Interface, CLI). — управление программами с помощью команд. Команды состоят из букв, цифр, символов, набираются построчно, выполняются после нажатия клавиши Enter. Основной инструмент здесь клавиатура.

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

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

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

Добраться до командной строки можно двумя способами: через консоль или терминал.

Консоль

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

Переключиться на одну из виртуальных консолей можно нажав сочетание клавиш:

Ctrl+Alt+F1 — первая виртуальная консоль;

Ctrl+Alt+F2 — вторая виртуальная консоль;

Ctrl+Alt+F3 — третья виртуальная консоль;

Ctrl+Alt+F4 — четвертая виртуальная консоль;

Ctrl+Alt+F5 — пятая виртуальная консоль;

Ctrl+Alt+F6 — шестая виртуальная консоль;

Ctrl+Alt+F7 — седьмая виртуальная консоль, возврат в графический режим.

Терминал

Окно терминала

Терминал — графическая программа эмулирующая консоль.

Такие программы позволяют не выходя из графического режима выполнять команды.

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

Запустить терминал можно следующим образом:

Горячие клавиши

Часто вам придётся следовать каким-либо инструкциям, которые требуют копирования команд в терминал. Наверное, вы удивитесь, когда обнаружите, что текст, скопированный вами с интернет-страницы при помощи комбинации клавиш Ctrl+С, не вставляется в терминал при нажатии Ctrl+V. И что, неужели придётся перепечатывать все эти команды и имена файлов вручную? Нет, расслабьтесь! Вставить текст в терминал можно тремя способами: Ctrl+Shift+V, нажатием средней кнопки мыши или правой кнопки мыши и выбором строки «Вставить».

Здесь мышь не работает. Используйте стрелки влево/вправо, чтобы перемещаться по строке.

Ввод с клавиатуры будет добавлять символы. Существующий текст удаляться не будет.

Программная оболочка

Консоль и терминал обрабатывают команды с помощью программной оболочки.

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

В Ubuntu по умолчанию используется оболочка bash, он распознает команды на языке bash.

Bash можно заменить на другую оболочку, их существует несколько. Каждая оболочка имеет свой набор настроек и возможностей.

(автовыполнение команд при входе в оболочку, внутренние команды оболочки, ведение истории, можно назначать сокращенные команды — алиасы).

Команды

Команды — это предопределенный набор букв, цифр, символов, которые можно ввести в командной строке и выполнить нажав энтер.

Команды делятся на два вида:

  • команды встроенные в программную оболочку (например history)

  • команды управляющие программами, установленными в системе

Команды для управления программами строятся по такой схеме:

название_программы -ключ значение 

Выполнить команды можно следующим образом:

  • набрать команду в командной строке и нажать Enter

  • скопировать команду из инструкции и вставить ее в командную строку, затем нажать Enter

  • создать скрипт и выполнить двойным нажатием мыши (создать текстовый файл, в первой строке написать #!/bin/bash, ниже написать команды в столбик, сохранить, в свойствах файла разрешить выполнение, нажать два раза по файлу для выполнения всех перечисленных команд)

Работа с локальными deb-пакетами (dpkg)

deb — расширение имён файлов «бинарных» пакетов для распространения и установки программного обеспечения в ОС проекта Debian, и других, использующих систему управления пакетами dpkg. Deb — это часть слова Debian, в свою очередь, образованного от слов Debra — имени подруги (впоследствии — жены, ныне — бывшей) основателя Дебиана Яна Мердока и Ian от его собственного имени.

Использование пакетного менеджера Apt

apt (advanced packaging tool) — программа для установки, обновления и удаления программных пакетов в операционных системах Debian и основанных на них (Ubuntu, Linux Mint и т. п.), иногда также используется в дистрибутивах, основанных на Mandrake, например Mandriva, ALTLinux и PCLinuxOS. Способна автоматически устанавливать и настраивать программы для UNIX-подобных операционных систем как из предварительно откомпилированных пакетов, так и из исходных кодов.

Монтирование файловых систем

Монтирование файловой системы — процесс, подготавливающий раздел диска к использованию операционной системой.

Операция монтирования состоит из нескольких этапов:

  1. определение типа монтируемой системы

  2. проверка целостности монтируемой системы

  3. считывание системных структур данных и инициализация соответствующего модуля файлового менеджера (драйвера файловой системы)

  4. установка флага, сообщающего об окончании монтирования. При корректном размонтировании этот флаг сбрасывается. Если при загрузке система определяет, что флаг не сброшен, значит работа была завершена некорректно, и возможно ФС нуждается в починке

  5. включение новой файловой системы в общее пространство имен

Форматирование файловых систем

Формати́рование — программный процесс разметки области хранения данных электронных носителей информации, расположенной на магнитной поверхности (жёсткие диски, дискеты), оптических носителях (CD/DVD/Blu-ray-диски), твердотельных накопителях (флэш-память — flash module, SSD) и др. Существуют разные способы этого процесса.

Само форматирование заключается в создании (формировании) структур доступа к данным, например, структур файловой системы. При этом возможность прямого доступа к находящейся (находившейся до форматирования) на носителе информации теряется, часть её безвозвратно уничтожается. Некоторые программные утилиты дают возможность восстановить некоторую часть (обычно — большую) информации с отформатированных носителей. В процессе форматирования также может проверяться и исправляться целостность носителя.

Создание резервных копий (backup)

Резервное копирование (англ. backup copy) — процесс создания копии данных на носителе (жёстком диске, дискете и т. д.), предназначенном для восстановления данных в оригинальном или новом месте их расположения в случае их повреждения или разрушения.

Выставление/изменение полномочий на файлы

chmod (от англ. change mode) — программа для изменения прав доступа к файлам и директориям. Название происходит от программы ОС Unix chmod, которая, собственно, изменяет права доступа к файлам, директориям и символическим ссылкам.

Команды Secure Shell (ssh)

SSH (англ. Secure Shell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем.

Большинство хостинг-провайдеров за определённую плату предоставляют клиентам доступ к их домашнему каталогу по SSH. Это может быть удобно как для работы в командной строке, так и для удалённого запуска программ (в том числе графических приложений).

Управление процессами

Процесс — программа, которая выполняется в текущий момент. Стандарт ISO 9000:2000 определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие.
Компьютерная программа сама по себе — это только пассивная совокупность инструкций, в то время как процесс — это непосредственное выполнение этих инструкций.
Также, процессом называют выполняющуюся программу и все её элементы: адресное пространство, глобальные переменные, регистры, стек, открытые файлы и т. д.

IPTABLES (firewall)

iptables — утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) netfilter для ядер Linux версий 2.4, 2.6, 3.x, 4.x . Для использования утилиты iptables требуются привилегии суперпользователя (root).

Просмотр справки и руководства по программе

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

Для получения краткого руководства по программе, нужно выполнить:

 программа

Перемещаться можно клавишами со стрелками, а выйти из него, нажав клавишу Q.
Подробнее в смотрите в man man

Для получения справки, в которой указаны ключи, нужно выполнить:

программа 
программа 

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

Поиск по man’ам

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

  • man -k something-you-need

    будет искать то, что вам нужно во всех мануалах. Попробуйте:

    man -k nautilus

    чтобы увидеть, как это работает. Кстати, это то же самое, что выполнить команду apropos.

  • man -f something-you-need

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

    man -f gnome

    . Для примера выполнение команды whatis приведёт к такому же результату.

Более привлекательные man’ы

Пользователи рабочего стола Gnome/Unity могут воспользоваться утилитой yelp предоставляющей простой GUI, выполнив команду в консоли

yelp man:<команда>

Пользователи, у которых установлен Konqueror, могут читать страницы мануалом и выполнять по ним поиск в веб-браузерном контексте, украшенном выбранными фоновыми рисунками. Для этого нужно набрать в строке адреса Konqueror’а использовать команду:

man:/<команда>

Выполнение команд с неограниченными привилегиями

Перед большинством команд, перечисленных ниже, необходимо писать команду:

sudo

Это временно даёт права суперпользователя, которые необходимы для работы с файлами и каталогами, которые не принадлежат вашему аккаунту. Для использования
sudo требуется ввести пароль. Только пользователи с такими административными привилегиями могут использовать эту команду.

Команды для работы с файлами и папками

  • Команда pwd («print working directory») позволяет вам узнать, в какой директории вы находитесь в данный момент. Помните, однако, что эту же информацию Gnome Terminal всегда показывает в названии окна.

  • ls покажет вам все файлы в текущей директории. Если использовать эту команду с определёнными опциями, можно также включить отображение размера файлов, времени последнего изменения и прав на файлы. Например:

    ls ~

    покажет всё, что у вас есть в домашней папке.

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

    1. Чтобы попасть в корневой каталог, выполните:

      cd /
    2. Чтобы попасть в домашнюю папку, выполните:

      cd ~
    3. Чтобы переместиться на один каталог вверх, используйте:

      cd ..
    4. Для возврата в предыдущую посещённую директорию, используйте:

      cd -
    5. Для перемещения через несколько директорий за раз, нужно написать полный путь папки, в которую вы хотите переместиться. Например, команда:

      cd /var/www

      переместит вас в подкаталог /www каталога /var/. А команда:

      cd ~/Рабочий\ стол

      переместит вас на рабочий стол. В данном случае «\» обозначает экранирование пробела.

  • Команда cp копирует файл. Например, команда:

    cp text new

    создаст точную копию файла «text» и назовёт её «new», при этом «file» никуда не исчезнет. Для копирования директории необходимо воспользоваться командой:

    cp -r directory new

    где опция -r обозначает рекурсивное копирование.

  • Команда mv перемещает файл в другое место или просто переименовывает файл. Например, команда:

    mv file text

    переименует «file» в «text».

    mv text ~/Рабочий\ стол

    переместит «text» вам на рабочий стол, но не переименуют его. Чтобы всё-таки переименовать файл, нужно специально указывать ему новое имя. Вы можете заменять путь к вашей домашней папке на ‘~’, чтобы ускоряет работу. Помните, что при использовании mv вместе с sudo, терминал так же привязывает ‘~’ к вашей домашней папке. Однако если вы включаете сессию суперпользователя в консоли с помощью sudo -i или sudo -s, то ‘~’ будет ссылаться на корень диска, а не на ваш домашний каталог.

  • Команда rm удаляет файл.

  • Команда rmdir удаляет пустую папку. Чтобы удалить папку вместе со всеми вложениями, используйте rm -r вместо этого.

  • mkdir Эта команда создаёт директорию. Команда mkdir music создаст вам папку, которая будет называться «music».

  • man попробуйте эту команду, когда вы хотите прочитать встроенное описание другой команды. Например:

    man man

    покажет вам описание самой этой команды.

Команды информации о системе

  • Команда df показывает объём занятого дискового пространства на всех смонтированных разделах. Наиболее полезна:

    df -h

    Поскольку использует для отображения Мегабайты (M) и Гигабайты (G), а не блоки. -h означает «human readable» («читабельный для человека»).

  • du отображает объём дискового пространства, занятого конкретной папкой. Она может показывать информацию для всех поддиректорий отдельно или для папки в целом.
    ..

    user@users-desktop:~$ du /media/floppy
    1032    /media/floppy/files
    1036    /media/floppy/
    user@users-desktop:~$ du -sh /media/floppy
    1.1M    /media/floppy/

    .. -s означает «summary» (в целом), а -h означает «human readable» («читабельный для человека»).

  • free отображает объём свободной и занятой оперативной памяти. Команда:

    free -m

    показывает информацию в Мегабайтах.

  • top отображает информацию о вашей системе, запущенных процессах и системных ресурсах, включая загрузку CPU, использование RAM и swap и количество запущенных процессов. Чтобы остановить top, нажмите Q.

Также существует еще несколько замечательных и очень нужных утилит, оформленных в стиле top:

  • htop аналог top, намного превосходящий по возможностям

  • iftop информация об активных сетевых соединениях, скорость сетевой закачки/отдачи

  • iotop информация о процессах выполняющих активные дисковые операции

  • uname с опцией -a выводит всю системную информацию, включая имя машины, версию ядра и другие детали. Самое полезное из этого — проверка версии ядра.

  • lsb_release с опцией -a выводит информацию о версии Linux, которую вы используете. Например:

user@computer:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 6.06 LTS
Release:        6.06
Codename:       dapper
  • ifconfig выводит отчёт о сетевых интерфейсах системы.

  • hwinfo без ключей выводит очень длинный список всего оборудования, но существует ключи для получения конкретной информации о части оборудования --cpu --disk --memory и другие, см man по этой утилите.

  • lsusb и lspci информация о USB- и PCI- устройствах

Дополнительно:  Chapter 5. Configuration problems

Добавление нового пользователя

  • adduser newuser

    Чтобы назначить ему пароль, используйте:

    passwd newuser

Построение дерева каталогов (tree)

Утилита выводит дерево каталогов в красиво отформатированном виде.
Пакет tree находится в репозиториях Ubuntu, поэтому установка выполняется одной строкой:

  

Для вывода дерева каталогов команда должна иметь следующий вид:

  

Ноутбук Linux в стиле Ubuntu.Фатмавати ачмад дзэнури / Shutterstock.com

Пользователь root — самая могущественная сущность во вселенной Linux с безграничными полномочиями, к лучшему или к худшему. Создать пользователя? Понятно. Уничтожить файловую систему? Упс, тоже понял.

История происхождения

Пользователь root — это суперпользователь Linux. Они могут буквально все. Нет ничего запрещенного для root. Будет ли он супергероем или суперзлодеем, зависит от человека-пользователя, который берет на себя мантию системного администратора. Ошибки, допущенные пользователем root, могут иметь катастрофические последствия, поэтому учетную запись root следует использовать исключительно в административных целях.

Концепция пользователя root была унаследована от Unix, в которой пользователь root был административным суперпользователем. Но откуда взялось название «корень», доподлинно неизвестно. Некоторые думают, что это произошло из-за Операционная система Multics, который предшествует Unix.

Кен Томпсон а также Деннис Ричи, два наиболее важных архитектора и автора Unix, оба ранее работали над Multics. У Multics была файловая система, которая начиналась в точке, называемой корневым каталогом или «/», а все другие каталоги и подкаталоги разветвлялись вниз и наружу от корня, как перевернутое дерево. Это такая же древовидная структура, как и в Unix. Так, может быть, Unix также перенял пользователя root от Multics?

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

Другая теория состоит в том, что на заре Unix домашняя папка суперпользователя была корнем «/» файловой системы. Суперпользователю нужно имя. Термин «пользователь root» использовался вместо официального имени, но этот термин прижился и стал официальным именем.

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

Команда sudo

Но если вход в систему как root отключен, как вы будете администрировать свой Linux-компьютер? Что ж, для этого и предназначена команда sudo. Он не требует входа в систему от пользователя root. Он временно наделяет вас полномочиями root. Это как поднять молот Тора Мьёльнир и временно получил полномочия Тора. Но забрать молоток можно только в том случае, если ты достоин. Точно так же не каждый может использовать команду sudo. Команда sudo наделяет вас полномочиями root только в том случае, если вы были сочтены достойными и добавлены в список sudoers.

Во-вторых, если вы установите пароль root, всем, кто собирается использовать команду su, необходимо знать пароль. А совместное использование паролей — это проблема безопасности, а для пароля root — тем более. Любой из людей, знающих пароль root, может рассказать кому-нибудь другому. Если вам нужно изменить пароль root, вам необходимо сообщить новый пароль всем людям, которым он нужен.

Гораздо безопаснее использовать список sudoers, чтобы ограничить круг лиц, которые могут использовать sudo, и позволить каждому привилегированному лицу использовать свои индивидуальные пароли для аутентификации.

Использование sudo

Файл «/ etc / shadow» содержит имя пользователя каждой учетной записи на вашем компьютере Linux, а также другую информацию, включая зашифрованный пароль каждой учетной записи, дату последней смены пароля и срок его действия. Поскольку он содержит конфиденциальную информацию, его может прочитать только root.

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

туалет / и т. д. / тень

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

sudo туалет / и т. д. / тень

Поскольку мы запускаем команду от имени пользователя root, выполняется команда wc. Никто не отрицает рут.

Команда sudo раньше означала «суперпользователь, делать». Он был расширен, чтобы позволить вам запускать команду от имени любого пользователя, поэтому он был переименован в «замещающий пользователь делает». Команда фактически выполняется так, как если бы ее запускал другой пользователь. Если вы не укажете имя пользователя, sudo по умолчанию использует root. Если вы хотите использовать другого пользователя, используйте параметр -u (пользователь).

Мы видим, что команды выполняются от имени другого пользователя с помощью команды whoami.

whoami sudo whoami sudo -u Мэри уами

Запуск от имени root без использования su

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

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

Использование sudo для запуска оболочки Bash открывает новую оболочку с пользователем root.

Обратите внимание, что командная строка изменится. Последним символом приглашения теперь является решетка «#» вместо символа доллара «$».

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

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

туалет / и т. д. / тень

Чтобы выйти из оболочки пользователя root, нажмите «Ctrl + D» или введите «exit» и нажмите «Enter».

Меньше Супермена, больше Кларка Кента

Если вы находитесь в списке sudoers, у вас есть суперсила над вашей системой Linux. Просто помните, что Супермен проводит больше времени в качестве своего кроткого альтер-эго, чем в своем красном плаще.

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

Ноутбук Linux с приглашением bash

Вход в систему в качестве пользователя root Linux является плохой практикой. Вход в систему с правами root через SSH-соединение еще хуже. Мы расскажем вам, почему, и покажем, как этого избежать.

Дополнительно:  Как исправить ошибки Psi_mf_amd64.sys типа синий экран (BSOD)

Обоюдоострый меч

Вам нужен кто-то с полномочиями владеть и администрировать те части вашей операционной системы, которые слишком важны или слишком чувствительны для обычных пользователей. Вот тут-то и появляется root. root — всемогущий суперпользователь операционных систем Unix и Linux.

Учетная запись пользователя root, как и все учетные записи, защищена паролем. Без пароля пользователя root никто другой не сможет получить доступ к этой учетной записи. Это означает, что привилегии и полномочия root не могут быть использованы кем-либо еще. Оборотная сторона заключается в том, что единственная защита между злоумышленником и полномочиями root — это пароль. Пароли, конечно, можно угадать, вычислить, найти где-то записанными или подобрать методом грубой силы.

Из-за этих рисков многие современные дистрибутивы Linux не позволяют пользователю root входить в систему локально, не говоря уже о SSH. Пользователь root существует, но для него не установлен пароль. И все же кто-то должен уметь администрировать систему. Решение этой головоломки — команда sudo.

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

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

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

Разрешение входа в систему root через SSH увеличивает риски, поскольку злоумышленникам не обязательно быть локальными; они могут попытаться взломать вашу систему удаленно.

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

Вот пользователь на компьютере с Fedora, подключающийся по SSH к компьютеру с Ubuntu в качестве пользователя root на компьютере с Ubuntu.

Пользователь root подключается к удаленному компьютеру с помощью SSH.

Компьютер Ubuntu позволяет пользователю root входить в систему через SSH. На компьютере с Ubuntu мы видим, что активное соединение выполняется от пользователя root.

Использование команды who для вывода списка зарегистрированных пользователей

Чего мы не можем видеть, так это того, кто использует этот сеанс. Мы не знаем, является ли человек на другом конце SSH-соединения пользователем root или кем-то, кому удалось получить пароль root.

Отключение SSH-доступа для root

Чтобы отключить доступ по SSH для пользователя root, нам нужно внести изменения в файл конфигурации SSH. Он находится в «/etc/ssh/sshd_config». Нам нужно будет использовать sudo, чтобы записать в него изменения.

sudo gedit /etc/ssh/sshd_config

Редактирование файла sshd-config

Прокрутите файл или найдите строку «PermitRootLogin».

Либо установите для этого параметра значение «нет», либо закомментируйте строку, поместив решетку «#» в качестве первого символа в строке. Сохраните изменения.

Нам нужно перезапустить демон SSH, чтобы наши изменения вступили в силу.

sudo systemctl перезапустить ssh

Перезапуск демона sshd

Если вы также хотите запретить локальный вход в систему, отключите пароль root. Мы используем подход с поясом и фигурными скобками и используем опции -l (блокировка) и -d (удаление пароля).

sudo пароль root -ld

Блокировка учетной записи root и удаление пароля root

Более безопасный способ разрешить root-доступ по SSH

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

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

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

Нам также потребуется еще раз отредактировать файл «sshd_config».

sudo gedit /etc/ssh/sshd_config

Редактирование файла sshd-config

Измените строку «PermitRootLogin», чтобы в ней использовалась опция «запретить пароль».

Сохраните изменения и перезапустите демон SSH.

sudo systemctl перезапустить ssh

Перезапуск демона sshd

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

Пользователь root подключается к удаленному компьютеру с помощью SSH без пароля.

Въезд запрещен

Отказ от удаленных подключений от пользователя root — лучший вариант. Разрешить root подключаться с помощью SSH-ключей — второй вариант, но все же намного лучше, чем использование паролей.

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

Давайте детально обсудим, что может суперпользователь в Linux, как настроить root и для чего нужна команда

Предназначение root-прав в Linux

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

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

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

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Безопасность использования прав суперпользователя

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

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

Команда sudo и примеры ее использования

тесно связана с root в Linux, поскольку отвечает за передачу прав суперпользователя и позволяет от его имени выполнять команды в Терминале. Существует несколько ее вариаций, использующихся при разных обстоятельствах. Подходит эта команда как для выполнения всего одного действия, так и для передачи прав на всю текущую сессию.

Использование команды sudo в Linux

Самый простой пример использования – запуск программы от имени суперпользователя. Для этого вводится:

 sudo program \\   program – название приложения, которое вы хотите запустить

применяется для установки софта, команда в таком случае обретает вид:

sudo apt install program

В следующем разделе статьи речь пойдет о передаче прав суперпользователя, что тоже реализуемо при помощи . Я рассмотрю два полезных аргумента. Советую ознакомиться с ними, если хотите упростить выполнение действий через Терминал.

VDS Timeweb арендовать

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

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

Примерно так же работает и команда , но она обладает дополнительными аргументами, которые следует уточнить:

  • -c – позволяет выполнить команду;
  • -g – устанавливает группу для пользователя;
  • -G – дополнительные группы для юзера;
  • -l —login – один из режимов входа, при котором происходит переключение домашнего каталога;
  • -p – сохранение переменных окружения;
  • -s – выбор оболочки для выхода.

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

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

Каждому пользователю в Linux можно предоставить root-права, добавив его в соответствующую группу. Точно так же их можно и отнять, если вдруг это понадобится. Рассмотрю три варианта действий.

Создание нового пользователя с root

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

sudo Linux

  1. Откройте Терминал и введите команду
  2. В консоли появятся инструкции по созданию нового пользователя. Присвойте пароль и подтвердите действие, чтобы завершить создание.
  3. Добавьте новую учетную запись в группу sudo, введя user здесь тоже понадобится заменить).
  4. Проверьте выполненные действия, переключившись на новую учетную запись через . Для подтверждения введите пароль (при вводе символы не отображаются на экране).
  5. Выполните любую команду с и убедитесь, что все прошло успешно.

Для существующей учетной записи

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


Предоставление прав суперпользователя существующей учетной записи в Linux

Используйте предыдущую инструкцию для проверки внесенных изменений.

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

Если вдруг вы решили, что одна из учетных записей больше не должна состоять в группе sudo, отзовите права, введя команду:


Откат прав суперпользователя в Linux

Это была вся основная информация о правах суперпользователя в Linux. Вы знаете, что дают такие привилегии, как их правильно использовать и управлять пользователями. В качестве рекомендации скажу, что всегда нужно читать текст ошибок, появляющихся в Терминале, если что-то пошло не так. Это позволит вам быстрее решить проблему без траты времени на поиски в Google.

Оцените статью
Master Hi-technology
Добавить комментарий