Должен ли sudo спрашивать пароль root?

Вопрос или проблема

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

На Linux вход под root по умолчанию отключен, что я полностью понимаю. Чтобы внести изменения от имени root, нужно предшествовать команде sudo и ввести пароль пользователя, а не пароль root (при условии, что пользователь является частью sudoers). Я понимаю, как работает этот механизм и какие пользователи могут использовать sudo в целом. Мой вопрос: хорошая ли идея заставить sudo запрашивать пароль root, а не мой? Я имею в виду, в Windows мне нужно было вводить пароль администратора, чтобы внести изменения от имени администратора, хорошая ли это идея делать то же самое на Linux? Или мне оставить, как есть?

Я единственный человек, использующий мой компьютер, и никому не даю свои учетные данные, если это имеет значение.

Следующий ответ был протестирован на Ubuntu 22.04.3 LTS Desktop Linux.

В вашем вопросе вы утверждаете “… из Windows, где у меня был отдельный администраторский пользователь и стандартный пользователь для повседневных задач”. То же самое верно и для Linux. Вы можете создать учетные записи стандартного пользователя и администратора. Допустим, пользователь rpj является стандартным пользователем, а пользователь dma является администратором.

Чтобы dma стал пользователем root, этому пользователю нужно ввести следующее, где будет запрашиваться пароль для dma.

sudo -s

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

sudo command

Чтобы rpj стал пользователем root, этому пользователю нужно ввести следующее, где пароль для dma будет запрашиваться дважды.

su -P -c 'sudo -s' dma

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

su -P -c 'sudo command' dma

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

Ответ или решение

Должен ли sudo запрашивать пароль root?

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

Принципы работы sudo

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

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

Почему запрашивать пароль root может быть небезопасно?

  1. Упрощение администрирования: Запрашивая пароль пользователя вместо root, вы уменьшаете риск случайного доступа к гарантиям безопасности. Если кто-то получит доступ к вашему аккаунту, они не смогут выполнять команды с правами root без вашего пароля. Это дополнительный уровень защиты.

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

  3. Логи и аудит: Использование вашего пароля позволяет лучше отслеживать действия, выполняемые с привилегиями повышенного доступа. Это позволяет создавать более детализированные логи и историю операций, что может быть важным для аудита безопасности.

Обсуждение изменений

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

Как реализовать запрашивание пароля root в sudo?

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

sudo visudo

И добавьте следующие строки:

Defaults rootpw

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

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...