6

Нет шансов на внутреннюю атаку, поэтому я хотел бы предоставить привилегии sudo пользователям локального компьютера, использующим sudoers. Я попробовал эти строки отдельно:

%admin localhost=(ALL) NOPASSWD: ALL
%admin 127.0.0.1=(ALL) NOPASSWD: ALL

Но sudoers, похоже, не распознает ни localhost ни 127.0.0.1 .

Есть ли альтернатива, и если да, насколько она будет защищена? Может ли удаленный злоумышленник получить права локального пользователя с помощью cron или каким-либо другим способом?

3 ответа3

11

%admin ALL=(ALL) NOPASSWD: ALL

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

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

Cron также не выполняет никакой сетевой аутентификации. Удаленный пользователь получит пользовательские привилегии через неправильно настроенный или уязвимый сетевой сервер или клиент (http, ftp, samba, nfs, snmp, ssh,…).

0

Кажется, что ваше имя хоста не является "localhost". Смотрите вывод команды hostname или проверяйте содержимое вашего /etc /hostname

0

sudo ничего не знает об интерфейсе обратной связи (localhost/127.0.0.1), но знает обо всех других интерфейсах. Если у вашей машины есть хотя бы один такой интерфейс, он считается подключенным к сети. Таким образом, во время настройки интерфейса, обычно выполняемой во время установки ОС, вам необходимо было указать "имя хоста", или, возможно, оно было назначено автоматически.

Это "имя хоста" можно получить с помощью команды "имя хоста" или файла /etc /hostname.

Как следствие,
(i) ваша машина имеет интерфейс обратной связи, но также, безусловно, "имя хоста"
(ii) sudo может использовать только это "имя сети"
(iii) если вы замените «localhost =» на «<ваше имя хоста>» в файле sudoers, правило будет соответствовать, и все будет работать так, как вы ожидаете.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .