Как Sudo решает, просить пароль, когда придано команду, которая на самом деле не нужна `sudo`?

Я действительно не уверен в записи devtmpfs. Однако команда lsblk показывает основной жесткий диск, за которым следуют разделы. Таким образом, sdb1 - 4 - это разделы на жестком диске, смонтированном как sdb. HTH

10
09.05.2018, 13:55
3 ответа

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

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

Например, если вы запустите duдля дерева каталогов с содержимым, на доступ к которому у вас нет разрешения, вы получите ошибки разрешения. Вот что означает «отказано в доступе». Если вы запустите sudo du, sudo запустит duот имени пользователя root, поэтому вы не получите ошибок разрешения (, в этом суть учетной записи root :root¹ всегда имеет разрешение ). Когда вы запускаете sudo du, duзапускается от имени root, а sudoвообще не участвует после запуска du. Обнаруживает ли du ​​ошибки прав доступа, совершенно не имеет отношения к тому, как работает sudo.

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

Запрашивает ли sudo ваш пароль, зависит от двух вещей.

  1. В зависимости от конфигурации sudo решает, нужно ли вам проходить аутентификацию. По умолчанию sudo требует пароль. Это можно отключить несколькими способами, в том числе установить для параметра authenticateзначение false и применить применимое правило с тегом NOPASSWD.
  2. Если sudo запрашивает ваш пароль, возможно, будет достаточно использовать кешированное значение. Это нормально, потому что причина, по которой sudo нужен ваш пароль, не для аутентификации того, кто его вызывает (sudo знает, какой пользователь его вызвал ),но чтобы подтвердить, что это все еще вы командуете, а не кто-то, кто взял под контроль вашу клавиатуру. По умолчанию sudo готов поверить, что вы все еще находитесь в командах, если вы ввели свой пароль менее 15 минут назад (это можно изменить с помощью опции timeout). Вам необходимо ввести пароль в том же терминале (, чтобы, если вы остаетесь в системе на одном терминале, затем оставили этот терминал без присмотра, а затем использовали другой терминал, кто-то не мог воспользоваться этим, чтобы использовать sudo на другом терминале. — но это очень слабое преимущество, и его можно отключить, установив для параметра tty_ticketsзначение false ).

¹ почти, но это выходит за рамки этой темы.

22
27.01.2020, 19:59

to a command which doesn't actually need sudo

Дело не в том, что команде нужно или не нужно sudo. Когда вы бежите

sudo -u user command

система выполняет commandкак user.

Будет ли вызов успешным или нет, и будет ли запрошен пароль или нет, зависит от политики безопасности sudoers(, обычно настроенной в/etc/sudoers).

6
27.01.2020, 19:59

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

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

45
27.01.2020, 19:59

Теги

Похожие вопросы