Sudo — ALT Linux Wiki

Содержание
  1. Советы
  2. Заметки
  3. Преимущества использования sudo
  4. Заблуждения
  5. Возврат к традиционной учетной записи root
  6. Drag & Drop Sudo
  7. Права доступа в системе Linux
  8. Символьная форма прав доступа
  9. Числовая форма прав доступа
  10. Примеры
  11. Добавление в корневую группу с помощью usermod
  12. Добавление в корневую группу с помощью команды Useradd
  13. Установка в качестве пользователя Sudo
  14. Как мне стать пользователем с правами root в Linux?
  15. Используйте sudo -i
  16. Используйте sudo -s
  17. Используйте sudo su —
  18. Используйте su — root
  19. Способ 1
  20. Способ 2
  21. Предназначение root-прав в Linux
  22. Безопасность использования прав суперпользователя
  23. Команда sudo и примеры ее использования
  24. Переключение на суперпользователя
  25. Как добавить пользователя
  26. Как наделить пользователя правами sudo
  27. Как удалять пользователей
  28. Команды chown и chgrp
  29. Изменение прав доступа
  30. Цифровое обозначение
  31. Шаг 2 — Добавление нового пользователя в систему
  32. Шаг 3 — Добавление пользователя в группу sudo
  33. Шаг 4 — Тестирование доступа к sudo
  34. Получение привилегий root
  35. Войдите в систему как пользователь Root
  36. Использование su для получения прав root
  37. Использование sudo для выполнения команд от имени пользователя root
  38. Изменение файла Sudoers
  39. Строки по умолчанию
  40. Строки пользовательских привилегий
  41. Строки групповых привилегий
  42. Строка Included /etc/sudoers
  43. Присвоение пользователю привилегий Sudo
  44. Настройка персонализированных правил
  45. Создание псевдонимов
  46. Фиксация правил
  47. Прочая информация
  48. Шаг 1 — Вход с привилегиями root
  49. Подробнее о root
  50. Шаг 2 — Создание нового пользователя
  51. Шаг 3 — Предоставление административных прав
  52. Шаг 4 — Настройка базового брандмауэра
  53. Шаг 5 — Активация внешнего доступа для стандартного пользователя
  54. Если учетная запись root использует аутентификацию по паролю
  55. Если учетная запись root использует аутентификацию по ключу SSH
  56. Где используется sudo
  57. Как дать root пользователю?
  58. Как зайти под пользователем root в Ubuntu?
  59. Как войти в Astra Linux?
  60. Как переключиться на root пользователя?

Советы

  • Старайтесь как можно реже входить в систему с правами суперпользователя. Практически все команды, которые требуют прав суперпользователя, могут быть запущены командами sudo или gksudo.
  • С помощью команды sudo –i можно получить доступ к консоли другого пользователя в системе. Чтобы стать пользователем «Max», введите sudo –i Max, а затем введите свой пароль (а не пароль Максима).

Заметки

  • Пароль сохраняется по умолчанию на 15 минут. По истечении этого времени, вам нужно будет ввести пароль снова.
  • Несмотря на то, что при вводе пароль не отображается на экране (даже в виде звездочек), он все-равно вводится!
  • Для выполнения графических конфигурационных утилит с sudo, просто запустите приложение через меню.
  • Использование sudo в командной строке:

Пример #1 — смена пользователя и группы для файлов в домашней папке пользователя

sudo chown bob:bob /home/bob/*

Пример #2 — перезапуск сетевых служб

sudo /etc/init. d/networking restart

sudo -i (эквивалент команды «sudo su -«)

sudo -s (эквивалент команды «sudo su»)

Преимущества использования sudo

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

  • Программа установки задаёт меньше вопросов.
  • Пользователям не нужно запоминать дополнительный пароль, который они могут забыть.
  • Перед тем как произойдёт выполнение команды, вас попросят ввести пароль. Это даст время подумать о возможных последствиях.
  • sudo добавляет в лог выполненные команды (/var/log/auth.log).
  • Все попытки взломщиков, пытающихся подобрать пароль к root, будут обречены на провал.
  • sudo позволяет легко предоставлять права администратора на долгий или короткий период другим пользователям, просто добавляя и удаляя их из группы, при этом не трогая корневую учетную запись.
  • sudo можно настроить с более fine-grained политикой безопасности.
  • Аутентификация автоматически истекает по окончании определенного промежутка времени.

Заблуждения

  • Разве sudo не менее безопасно, чет su?
  • Я могу получить права администратора из консоли без ввода пароля!Вам потребуется ввести пароль для этого.
  • Вам потребуется ввести пароль для этого.

Возврат к традиционной учетной записи root

Не рекомендуется это делать!

Consider using the below command instead:

Использование этой команды временно откроет консоль с правами root. Активация аккаунта root в Ubuntu не поддерживается из-за ненадобности. Всё, что вам требуется сделать с правами администратора в Ubuntu можно сделать через sudo или gksudo.

Если root включен, и вы хотите отключить его, откройте терминал и введите следующую команду:

sudo passwd -l root

Drag & Drop Sudo

Этот трюк взят из форумов.

Создайте кнопку запуска со следующей командой:

gksudo «gnome-open %u»

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

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

Поскольку Linux (да и UNIX вообще) — многопользовательская OS, в ней существует система прав доступа к файлам, служащая для защиты файлов каждого пользователя от влияния других пользователей системы.

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

  • чтение (read)
  • запись (write)
  • выполнение (execute)

Разрешение на чтение позволяет пользователю читать содержимое файлов, а в случае каталогов — просматривать перечень имен файлов в каталоге (используя, например, команду ls). Разрешение на запись позволяет пользователю писать в файл, изменять его или удалять. Для каталогов это дает право cоздавать в каталоге новые файлы и каталоги, или удалять файлы в этом каталоге. Наконец, разрешение на выполнение позволяет пользователю выполнять файлы (как бинарные программы, так и командные файлы). Если на файле стоит атрибут Execute, то независимо от его расширения он считается программой, которую можно запустить. (Вот почему в *nix не принято ставить исполняемым файлам расширения по типу DOS’овских *. com, *. exe, *. bat. Вообще в Unix/Linux нет такого жесткого понятия расширение файла, как в Dos/Windows, и система сама определяет тип файлов независимо от их расширения, но это — уже другая история. Так же атрибут выполнения может стоять у shell-скриптов, CGI-скриптов, и у всего, что можно хоть как-то запустить. Разрешение на выполнение применительно к каталогам означает возможность выполнять команды вроде cd.

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

  • владельцы — у каждого файла в Linux’e есть один владелец.
  • группы — с каждым файлом связана группа пользователей этого файла.

Владельцем файла становится юзер, который создал этот файл. Короче говоря, для файла все юзеры делятся на 3 типа: хозяин, или владелец, юзеры, состоящие в одной группе с владельцем, и все остальные юзеры. Для каждого типа — свои права. Учтите, что директории и все системные устройства в UNIX являются обычными файлами. Тот же самый /dev/fd0 — это не сам Floppy disk, а всего лишь файл, связанный с флопповодом. Поэтому, если root запретил юзеру доступ к этому файлу, тот не сможет использовать флопповод (так же обстоят дела с модемами, хардами и т. Владельцем всех системных файлов является root. Он же имеет право забирать файлы у одного юзера и передавать их другому (менять владельца).

Символьная форма прав доступа

drwxrwxrwx — директория, к которой все имеют любые права доступа.

-rwxr—r— — обычный файл, владелец может делать все, а остальные — только читать.

-r——— — обычный файл, который владелец может только читать, а остальные пользователи не видят.

Но многие пользователи хотят держать других подальше от своих файлов. Установив права доступа файла -rw——-, вы никому не покажете этот файл и не дадите записать в него. Также хорошо закрывает файлы защита соответствующего каталога drwx——.

С правами доступа в символьной форме chmod работает так:

Числовая форма прав доступа

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

  • 400 — владелец имеет право на чтение
  • 200 — владелец имеет право на запись
  • 100 — владелец имеет право на выполнение
  • 40 — группа имеет право на чтение
  • 20 — группа имеет право на запись
  • 10 — группа имеет право на выполнение
  • 4 — остальные имеют право на чтение
  • 2 — остальные имеют право на запись
  • 1 — остальные имеют право на выполнение

Теперь осталось только просуммировать числа, соответствующие тем правам доступа, которые мы хотим поставить файлу.

Примеры

chmod a+r stuff

Дает всем пользователям право читать файл stuff.

chmod +r stuff

То же самое, что и ранее (a — по умолчанию).

chmod og-x stuff

Лишает права на выполнение всех, кроме владельца.

chmod u+rwx stuff

Разрешает владельцу все (read, write и execute).

chmod o-rwx stuff

Запрещает все (read, write и execute) пользователям категории другие (other).

=== Числовая форма===

chmod 744 stuff

chmod 444 stuff

все имеют право только на чтение.

chmod 611 stuff

владелец может читать и выполнять, остальные — только выполнять.

chmod 755 script

Классическая команда. Скрипт — это исполняемый файл, и все должны иметь к нему доступ на чтение и выполнение. Только владелец этого файла может его изменять или удалять.

Добавление в корневую группу с помощью usermod

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

Это группы, которые есть у меня в Linux.

root bin daemon sys adm disk wheel

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

Добавление в корневую группу с помощью команды Useradd

Отредактируйте файл /etc/passwd для конкретного пользователя. Измените UID и GID пользователя на «0». Это даст пользователю права root.

Теперь у пользователя temproot должны быть права root:

Это не рекомендуемый метод предоставления root-доступа.

Установка в качестве пользователя Sudo

Файл конфигурации sudo — /etc/sudoers, и вы можете редактировать этот файл с помощью команды visudo: # visudo.

Использование visudo защищает от конфликтов и гарантирует использование правильного синтаксиса.

Чтобы предоставить полный доступ определенным пользователям

Добавьте в файл запись, указанную ниже:

andreyex, maxim ALL=(ALL) ALL

Следование этому методу — не лучшая идея, поскольку он позволяет и andreyex, и maxim использовать команду su для предоставления себе постоянных привилегий root. Таким образом, пропуская функции ведения журнала команд sudo.

Предоставление доступа к определенным файлам одному конкретному пользователю

Эта запись позволяет andreyex и всем остальным членам оператора группы получить доступ ко всем программным файлам в каталогах /sbin и /usr/sbin, а также привилегию запуска команды /usr/oracle/backup.

andreyex, %operator ALL= /sbin/, /usr/sbin, /usr/oracle/backup

Если у вас есть какие-либо вопросы или мысли по этой теме, воспользуйтесь формой комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как мне стать пользователем с правами root в Linux?

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

Используйте sudo -i

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

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

Используйте sudo -s

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

Используйте sudo su —

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

Дополнительно:  Не работает Wi-Fi на ноутбуке с Windows 7

Используйте su — root

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

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

Password:

Last login: Sun Jan 30  21:27:59 EDT 2021 from 192. 168. 101 on pts/0

Способ 1

Если к системе подключено много пользователей, некоторые из них могут пожелать служить администраторами и управлять системой в целом. Чтобы не оказывать прямого влияния на работу системы и облегчить совместное использование пользователями, подходящим пользователям могут быть предоставлены права администратора и другим пользователям без полномочий root. Злоумышленнику будет сложно взломать систему, если есть пользователь root. Использование sudo и отключение учетной записи root может ввести злоумышленников в заблуждение, поскольку они не будут знать, какая учетная запись имеет права администратора. Политики Sudo могут быть созданы и развернуты в корпоративной сети, а также в дистрибутивах Kali Linux. Наличие пароля root улучшает возможности мониторинга, поскольку позволяет вам видеть, что другие пользователи делали в системе, и происходят ли какие-либо вторжения.

Шаг 1. Для начала загрузите пакет kali-root-login с помощью диспетчера пакетов apt.

Sudo — ALT Linux Wiki

Шаг 2: Затем используйте следующую команду из списка для настройки только что загруженной программы.

Шаг 3: После выполнения вышеуказанной команды появится следующий экран.

Sudo — ALT Linux Wiki

Шаг 4. Убедитесь, что выбрано “enable password-less privilege escalation”, прежде чем нажимать клавишу «ENTER» для продолжения.

Шаг 5: После раздела пользователь будет добавлен в группу “kali-trusted”, как вы можете убедиться на прилагаемом снимке экрана.

Sudo — ALT Linux Wiki

Способ 2

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

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

Шаг 2: Чтобы изменить стандартную учетную запись пользователя на учетную запись root, выполните следующую команду в терминале.

Sudo — ALT Linux Wiki

Шаг 3: Теперь вы можете проверить, что вы находитесь в корне, используя добавленную команду.

Sudo — ALT Linux Wiki

На выходе отображается имя пользователя как «root».

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

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

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

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

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

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

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

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

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

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

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

Sudo — ALT Linux Wiki

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

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

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

sudo apt install program

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

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

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

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

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

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

Как добавить пользователя

Авторизовавшись как root-пользователь (суперпользователь), вы в любое время можете создать нового пользователя при помощи такой команды:

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

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

  • ввести и подтвердить пароль для нового пользователя;
  • написать дополнительную информацию о новом пользователе. Делать это необязательно; если не хотите ничего добавлять, просто нажмите Enter;
  • наконец, вам нужно будет подтвердить корректность всей введенной до этого информации – для этого надо нажать y (yes — да).

Теперь новый пользователь создан и готов к использованию! Авторизоваться под ним можно используя пароль, который вы установили ранее.

Если вы хотите наделить пользователя административными правами, то читайте следующий раздел.

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

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

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

По умолчанию в Ubuntu 16. 04 правами выполнять sudo команды обладают все пользователи, которые входят в соответствующую группу.

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

В результате вы увидите на экране:

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

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

Проверка наличия sudo-прав

Теперь необходимо проверить, может ли ваш пользователь выполнять административные команды.

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

Вы можете выполнить эту же команду, но с административными правами, если напишете в начале sudo:

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

Уточнение прав пользователя в in /etc/sudoers

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

Рекомендуется для редактирования конфигурационного файла использовать именно команду visudo: во-первых, она защищает файл от нескольких одновременных изменений, во-вторых, проверяет синтаксис файла перед перезаписью. Благодаря этому у вас не будет ситуации, когда вы неправильно настроили sudo, а потом не можете внести нужные изменения, так как потеряли административные права.

Если в данный момент вы авторизовались под суперпользователем, введите команду:

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

Как правило, команда visudo открывалась /etc/sudoers в редакторе vi, что могло смутить не очень опытных пользователей. Поэтому в Ubuntu 16. 04 вместо vi используется nano, инструмент, который гораздо больше знаком большинству пользователей. Используете стрелки на клавиатуре для того, чтобы найти нужную строку. Она выглядит примерно так:

Скопируйте этот текст чуть ниже и вместо “root” напишите имя того пользователя, которого вы хотите наделить правом выполнять sudo-команды. Это будет выглядеть примерно так:

Для каждого нового пользователя необходимо добавлять новую строку. После того, как вы внесете все необходимые изменения, сохраните и закройте файл, нажав Ctrl-X, затем Y и Enter для подтверждения.

Как удалять пользователей

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

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

При этом вы должны быть авторизованы под суперпользователем.

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

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

Для пользователей с sudo-правами:

А если вы хотите лишить удаленного пользователя sudo-прав, вам нужно открыть конфигурационный файл:

(если от суперпользователя)
или

(если от пользователя с sudo-правами)

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

Команды chown и chgrp

Команда chown (расшифровывается как “change owner”) используется для изменения владельца файла. При этом выполнять изменение владельца должен обязательно суперпользователь. Вам нужно ввести название команды, затем имя пользователя, которого вы собираетесь сделать владельцем файла, и в конце название файла:

# chown имя_пользователя название_файла

Команда chgrp (сокращение от “change group”) используется для изменения группы файла. При этом выполнить команду может как суперпользователь, так и владелец файла, но он обязательно должен быть членом группы, которой он хочет передать права на файл. Вам нужно ввести команду, название группы файлов, которой вы передаете права, а затем название файла:

# chgrp название_группы название_файла

Сразу расскажу о полезном ключе -R (расшифровывается как “recursively”). Он позволяет применять команду не только к текущей директории, но и ко всем поддиректориям. Ключ можно использовать и с chown, и с chgrp. Использовать такую рекурсивную команду удобно в случае большой вложенности.

Зачем настраивать права доступа?

Права доступа всегда необходимо назначать и разграничивать – это крайне важный момент обеспечения безопасности вашей Linux-системы. В случае, когда хакеру удастся получить доступ к одному из ваших пользователей, грамотно настроенные права доступа к файлам и каталогам не дадут ему возможности сделать много неприятностей. Иными словами, настройка прав доступа даст вам возможность максимально ограничить ваши данные от попадания в чужие руки (естественно, если речь не идет о root или sudo пользователях без ограничений, которые могут изменять любые права под себя).

Как смотреть права доступа?

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

Пример отобразившейся информации:

Дополнительно:  Как исправить ошибки KERNEL_DATA_INPAGE_ERROR типа "синий экран" (0x0000007A)

Разберемся, что означают эти строки.

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

  • — — обычный файл;
  • d – каталог.

Помимо них есть и другие обозначения:

  • b — файл блочного устройства;
  • c — файл символьного устройства;
  • s  — доменное гнездо (socket);
  • p — именованный канал (pipe);
  • l — символическая ссылка (link).

Три следующие буквы, которые идут после первой, означают те права доступа, которые имеет пользователь-владелец этого файла или каталога. Расшифровываются они следующим образом:

  • r – read – право на чтение;
  • w – write – право на запись (изменение, в том числе и удаление);
  • x – execute – право на выполнение этого файла (если речь о каталоге, то просмотр оглавления и поиск в нем);
  • — (прочерк) вместо одной из букв говорит о том, что соответствующего права у вас нет.

Поэтому по записи

-rw-r–-r— 1 root root May 6 20:28 file1. txt

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

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

В рассматриваемом нами примере выше у группы root будут права только на чтение файла.

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

Изменение прав доступа

Для назначения и изменения прав доступа используется команда chmod (сокращенно от change mode). Она вводится в командную строку по следующей логике:

chmod кто=права файл/каталог

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

  • g – group – группа, которой принадлежит файл;
  • o – other – остальные пользователи;
  • a – all – все (вместо сочетания ugo).

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

Наконец, вместо «файл/каталог» вам нужно написать в команде название файла или каталога, права к которому вы хотите изменить.

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

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

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

В этом случае владелец и группа смогут читать и изменять файл file1. txt.

Комбинировать можно и сами файлы или каталоги (если вы хотите изменить права сразу для нескольких файлов):

chmod ug=rw file1. txt file2. txt

Добавление и исключение прав

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

К примеру, команда

даст остальным пользователям возможность редактировать этот файл.

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

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

Цифровое обозначение

Наверняка вы ни раз сталкивались с тем, что папкам или файлам даются права доступа в виде цифр. Например, 754, 755, 774 и т.

Каждая из цифр – это то же обозначение прав доступа для владельца, группы и остальных пользователей соответственно.

Расшифровка: чтение (r) – 4, запись (w) – 2 и выполнение (x) – 1. Если сложить все эти права, то получится 7 – такое право доступа может быть у владельца файла. Группа может иметь право на чтение и запись (4+2) – обозначается 1. И так далее.

Чтобы было понятнее:

  • 7 – r+w+x – чтение, запись, выполнение;
  • 6 – r+w – чтение и запись;
  • 5 – r+x – чтение и выполнение;
  • 4 – r – чтение;
  • 3 – w+x – запись и выполнение;
  • 2 – w – запись;
  • 1 – x – выполнение;
  • 0 – отсутствие каких-либо прав.

Такая запись пошла из двоичного кодирования восьмеричных цифр, то есть 754 – это восьмеричная запись 9 бит, которые задают права для файла или каталога.

При желании вы можете использовать команду chmod с цифровым кодированием:

644 – владелец файла может читать и изменять файл, а остальные пользователи (в том числе и группа) – только читать;

777 – все пользователи могут читать, изменять и выполнять файл.

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

Шаг 2 — Добавление нового пользователя в систему

Обязательно замените sammy на имя пользователя, которое вы хотите использовать. Вам будет предложено создать и проверить пароль пользователя:

Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Далее вам будет предложено ввести определенную информацию о вашем новом пользователе. Вы можете принимать значения по умолчанию или оставить их пустыми:

Шаг 3 — Добавление пользователя в группу sudo

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

Шаг 4 — Тестирование доступа к sudo

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

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

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

Примечание: это не запрос пароля root! Введите пароль пользователя с привилегиями sudo, а не пароль root.

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

Получение привилегий root

Существует три способа получить привилегии root, различающиеся по сложности.

Войдите в систему как пользователь Root

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

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

Использование su для получения прав root

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

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

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

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

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

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

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

В отличие от su, для команды sudo требуется пароль текущего пользователя, а не пароль пользователя root.

В связи с вопросами безопасности доступ sudo не предоставляется пользователям по умолчанию, и его необходимо настроить перед использованием. Ознакомьтесь с нашими краткими руководствами Создание нового пользователя с привилегиями Sudo для Ubuntu и CentOS, чтобы научиться настраивать нового пользователя с правами sudo.

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

Изменение файла Sudoers

Файл /etc/sudoers откроется в выбранном вами текстовом редакторе.

Я скопировал и вставил файл с сервера Ubuntu 18. 04 с удаленными комментариями. Файл CentOS /etc/sudoers содержит намного больше строк, и некоторые из них не будут обсуждаться в этом руководстве.

Давайте посмотрим, что делают эти строки.

Строки по умолчанию

Первая строка Defaults env_reset сбрасывает среду терминала для удаления переменных пользователя. Эта мера безопасности используется для сброса потенциально опасных переменных среды в сеансе sudo.

Вторая строка, Defaults mail_badpass, предписывает системе отправлять уведомления о неудачных попытках ввода пароля sudo для настроенного пользователя mailto. По умолчанию это учетная запись root.

Строки пользовательских привилегий

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

  • root ALL=(ALL:ALL) ALL Первое поле показывает имя пользователя, которое правило будет применять к (root).
  • root ALL=(ALL:ALL) ALL Первое “ALL” означает, что данное правило применяется ко всем хостам.
  • root ALL=(ALL:ALL) ALL Данное “ALL” означает, что пользователь root может запускать команды от лица всех пользователей.
  • root ALL=(ALL:ALL) ALL Данное “ALL” означает, что пользователь root может запускать команды от лица всех групп.
  • root ALL=(ALL:ALL) ALL Последнее “ALL” означает, что данные правила применяются всем командам.

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

Строки групповых привилегий

Следующие две строки похожи на строки привилегий пользователя, но задают правила sudo для групп.

Имена, начинающиеся с %, означают названия групп.

Строка Included /etc/sudoers

Файлы в этом каталоге следуют тем же правилам, что и сам файл /etc/sudoers. Любой файл, который не заканчивается на ~ и не содержит символа. , также считывается и добавляется в конфигурацию sudo.

В основном это нужно, чтобы приложения могли изменять привилегии sudo после установки. Размещение всех правил в одном файле в каталоге /etc/sudoers. d позволяет видеть, какие привилегии присвоены определенным учетным записям, а также легко сменять учетные данные без прямого изменения файла /etc/sudoers.

Как и в случае с файлом /etc/sudoers, другие файлы в каталоге /etc/sudoers. d также следует редактировать с помощью команды visudo. Для редактирования этих файлов применяется следующий синтаксис:

Присвоение пользователю привилегий Sudo

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

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

Например, в Ubuntu 20. 04 группа sudo имеет полные привилегии администратора. Добавляя пользователя в эту группу, мы предоставляем ему такие же привилегии:

Также можно использовать команду gpasswd:

Обе команды выполняют одно и то же.

В CentOS эта группа обычно называется wheel, а не sudo:

Также можно использовать gpasswd:

Если в CentOS добавление пользователя в группу не срабатывает сразу же, вам может потребоваться отредактировать файл /etc/sudoers, чтобы убрать символ комментария перед именем группы:

%wheel ALL=(ALL) ALL.

Настройка персонализированных правил

Мы познакомились с общим синтаксисом файла, а теперь попробуем создать новые правила.

Создание псевдонимов

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

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

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

GROUPTWO ALL = /usr/bin/apt-get update.

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

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

Мы можем дать членам группы GROUPTHREE разрешение на выключение и перезагрузку системы, создав псевдоним команды и используя его в правиле для GROUPTHREE:

Cmnd_Alias POWER = /sbin/shutdown, /sbin/halt, /sbin/reboot, /sbin/restart
GROUPTHREE ALL = POWER.

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

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

Runas_Alias WEB = www-data, apache
GROUPONE ALL = (WEB) ALL.

Это позволит любому участнику группы GROUPONE выполнять команды от имени пользователя www-data или пользователя apache.

Необходимо помнить, что в случае конфликта правил более поздние правила имеют приоритет перед более ранними.

Фиксация правил

Есть ряд способов, которые позволяют более точно контролировать реакцию sudo на вызов.

Команда updatedb, связанная с пакетом mlocate, относительно безобидна при ее выполнении в системе с одним пользователем. Если мы хотим разрешить пользователям выполнять ее с привилегиями root без ввода пароля, мы можем создать правило следующего вида:

GROUPONE ALL = NOPASSWD: /usr/bin/updatedb.

NOPASSWD — это свойство, означающее, что пароль не запрашивается. У него есть сопутствующее свойство PASSWD, которое используется по умолчанию и требует ввода пароля. Данное свойство актуальной для остальной части строки, если его действие не переопределяется дублирующим тегом в этой же строке.

Например, мы можем использовать следующую строку:

GROUPTWO ALL = NOPASSWD: /usr/bin/updatedb, PASSWD: /bin/kill.

Также полезно свойство NOEXEC, которое можно использовать для предотвращения опасного поведения некоторых программ.

Например, некоторые программы, такие как less, могут активировать другие команды, вводя их через свой интерфейс:

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

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

Прочая информация

При работе с sudo может быть полезна следующая информация.

Если вы зададите в файле конфигурации пользователя или группу, от имени которых выполняются команды, вы можете выполнять команды от их имени, используя флаги -u и -g соответственно:

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

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

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

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

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

Она выведет все правила в файле /etc/sudoers, которые относятся к вашему пользователю. Это поможет вам понять, что вам можно делать с помощью sudo от имени любого пользователя.

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

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

При желании вы можете добавить следующую строку в файл /etc/sudoers с помощью visudo:

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

Шаг 1 — Вход с привилегиями root

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

Подробнее о root

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

Шаг 2 — Создание нового пользователя

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

Этот пример создает нового пользователя с именем sammy, но вы должны заменить это имя на имя, которое вам нравится:

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

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

Шаг 3 — Предоставление административных прав

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

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

Чтобы добавить эти права для нового пользователя, нам нужно добавить пользователя в группу sudo. По умолчанию в Ubuntu 20. 04 пользователи, входящие в группу sudo могут использовать команду sudo.

Используя права root, запустите эту команду, чтобы добавить нового пользователя в группу sudo (замените выделенное имя пользователя на нового пользователя):

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

Шаг 4 — Настройка базового брандмауэра

Серверы Ubuntu 20. 04 могут использовать брандмауэр UFW для проверки, что подключения разрешены только к определенным службам. Мы можем легко настроить базовый брандмауэр с помощью приложения.

Примечание. Если ваши серверы запущены в DigitalOcean, вы можете использовать в качестве опции облачные брандмауэры DigitalOcean вместо брандмауэра UFW. Мы рекомендуем использовать только один брандмауэр в один момент времени, чтобы избежать конфликтов, которые могут затруднять отладку.

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

Чтобы увидеть это, можно ввести следующую команду:

Available applications:
OpenSSH

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

После этого мы можем активировать брандмауэр с помощью следующей команды:

Введите y и нажмите ENTER, чтобы продолжить. Чтобы увидеть, что подключения SSH разрешены, введите следующее:

Status: active

To Action From
— —— —-
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)

Поскольку брандмауэр в настоящее время блокирует все подключения, кроме SSH, если вы установите и настроите дополнительные службы, потребуется изменить настройки брандмауэра, чтобы разрешить входящий трафик. Узнать о некоторых общих операциях UFW можно в нашем руководстве Основы UFW.

Шаг 5 — Активация внешнего доступа для стандартного пользователя

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

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

Если учетная запись root использует аутентификацию по паролю

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

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

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

Чтобы повысить уровень безопасности вашего сервера, мы настоятельно рекомендуем настроить ключи SSH вместо использования аутентификации по паролю. Следуйте указаниям по настройке ключей SSH в Ubuntu 20. 04 из нашего руководства, чтобы узнать, как настроить аутентификацию на основе ключей.

Если учетная запись root использует аутентификацию по ключу SSH

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

Поскольку ваш открытый ключ уже включен в файл ~/. ssh/authorized_keys учетной записи root на сервере, мы можем скопировать структуру этого файла и директории для нашей новой учетной записи в существующем сеансе.

Примечание. Команда rsync использует источники и пункты назначения, оканчивающиеся на завершающий слеш, иначе, чем те, которые этот завершающий слеш не имеют. При использовании rsync ниже убедитесь, что директория источника (~/. ssh) не включает завершающий слеш (убедитесь, что вы не используете ~/. ssh/​​​).

Если вы случайно добавите в команду завершающий слеш, rsync будет копировать содержимое директории ~/. ssh учетной записи root в домашнюю директорию пользователя sudo вместо копирования всей структуры директории ~/. ssh. Файлы будут находиться в неправильном месте, и SSH не сможет найти и использовать их.

Теперь откройте новый сеанс терминала на локальном компьютере и используйте SSH с вашим новым именем пользователя:

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

Где используется sudo

sudo используется всегда, когда вы запускаете что-то из меню Администрирования системы. Например, при запуске Synaptic вас попросят ввести свой пароль. Synaptic — это программа управления установленным ПО, поэтому для её запуска нужны права администратора, которые вы и получаете через sudo вводя свой пароль.

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

Как дать root пользователю?

Самый простой способ предоставить пользователю привилегии sudo в CentOS — это добавить пользователя в группу «wheel». Члены этой группы могут запускать все команды через sudo и получать запрос на аутентификацию по паролю при использовании sudo

Как зайти под пользователем root в Ubuntu?

Чтобы использовать терминал пользователя root, наберите «sudo -i» в командной строке Вся группа графических утилит конфигурации в Kubuntu уже использует sudo, так что при необходимости у вас попросят пароль с помощью приложения kdesu, которое является графической оболочкой sudo

Как войти в Astra Linux?

Система работает с пакетами на базе. Исходные тексты ядра доступны на сайте разработчика. Astra Linux считается «официально признанной» веткой дистрибутива Debian , АО «НПО РусБИТех» находится в партнёрских отношениях с The Linux Foundation и The Document Foundation

Как переключиться на root пользователя?

Чтобы использовать терминал пользователя root , наберите » sudo -i» в командной строке Вся группа графических утилит конфигурации в Kubuntu уже использует sudo , так что при необходимости у вас попросят пароль с помощью приложения kdesu, которое является графической оболочкой sudo

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