Каковы параметры в файле sudoers

Файл sudoers имеет следующую строку:

root ALL=(ALL) ALL 

Я прочитал, что первым полем является пользователь. Затем сначала ALL – все терминалы, а (ALL) означает как любой пользователь, а последний ALL означает любые команды.

  1. Что происходит, когда у нас нет этой строки в файле sudoers? Тогда корень не мог ничего сделать?

  2. username ALL= /bin/passwd как это, можно ли его интерпретировать как «имя пользователя», может запускать passwd из всех терминалов

  3. Какие значения могут быть заданы вместо первого ALL ?

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

  2. username ALL = /bin/passwd позволяет пользователю запускать команду passwd на любой машине (и на любом терминале – sudo не заботится об этом). Sudo позволяет использовать имена машин в файле sudoers чтобы вы могли развернуть файл sudoers без изменений на всех компьютерах вашей сети и все еще иметь некоторые правила, которые применяются только к некоторым машинам.

  3. Во второй позиции вы можете иметь список хостов ( Host_List в руководстве sudoers ). Это список имен хостов, разделенных запятыми. Вместо имени хоста вы можете иметь псевдоним (см. Руководство для деталей), IP-адрес или различные способы указания подсети (подробнее см. Руководство).

Руководство sudoers нелегко прочитать, но у него есть хороший список примеров к концу. Я предлагаю вам сначала прочитать эту часть.

У sudo нет прав на пользователя root. В этой строке есть вероятность того, что root выполнит команду с префиксом sudo . Это правило позволяет root сделать это.

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

Кстати, вы читаете правило следующим образом:

 root ALL=(ALL) ALL 

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