Назад | Перейти на главную страницу

Для конкретного пользователя немедленно откажитесь от sudo, не запрашивайте пароль

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

Хотя это после того, как я разрешил им 1 указанную команду. поэтому файл sudoers будет выглядеть примерно так (пример):

testuser ALL = (root) NOPASSWD:NOEXEC: /bin/ls, <REFUSE_EVERYTHING_ELSE_WITHOUT_ASKING_FOR_PASSWORD>

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

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

Это возможно?

Я просмотрел всю эту страницу: https://www.sudo.ws/man/1.8.15/sudoers.man.html

И не нашел. Это просто часть запроса пароля. Я хочу, чтобы это ушло. Все остальное, что касается правильной проверки разрешения, я хочу, чтобы это осталось.

Это возможно?

РЕДАКТИРОВАТЬ: Решение было примерно таким:

##
# User alias specification (Example user, must actually exist)
##
User_Alias      Defaults:TEST_USER = test_user

##
# Cmnd alias specification (Example command, multiple wildcards possible)
##
Cmnd_Alias      TEST_CMD = /bin/ls */home/test_user/

# Don't ask for password on this particular user, just apply the rules.
Defaults:TEST_USER !authenticate

TEST_USER ALL = (root) NOPASSWD:NOEXEC: TEST_CMD

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

Возможно, я пойму это позже и скажу «черт возьми, верно», но сейчас я этого не вижу. Честно говоря, я бы предпочел, чтобы это объяснили. Стоит ли мне задать отдельный вопрос? Поиск в Google этого конкретного варианта не дает много результатов, он кажется относительно неизвестным.

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

Это ужасно наивно?

Согласно документации sudo FAQ по адресу https://www.sudo.ws/troubleshooting.html ты можешь использовать !authenticate чтобы полностью отключить пароли для каждого пользователя или для каждого хоста, например,

Defaults  !authenticate

В твоем /etc/sudoers файл должен работать.