4

Я заметил, что во всех системах Linux ArchLinux * некоторые программы setuid имеют довольно необычные разрешения:

-r-sr-xr-x  root  root  /bin/su*
---s--x--x  root  root  /usr/bin/sudo*

Вопрос в том, почему двоичный набор sudo доступен для чтения только пользователю root? Какой в этом смысл? Почему это не может быть как su?

Редактировать: после переустановки sudo , он также не имеет чтения / записи.

(* Я мог бы поклясться, что видел то же самое в Debian. Очевидно нет.)

3 ответа3

3

Первый вопрос, который возник у меня в голове: почему sudo имеет разрешение на запись для root?

В целом, suid-программы довольно опасны, и вы должны предоставлять им как можно меньше привилегий. Вы не можете получить гораздо более строгие ограничения, чем только разрешение на выполнение!

Если вы можете прочитать файл, вы можете разобрать его. И если вы можете разобрать его, вы можете найти недостатки безопасности и сделать его немного легче для обнаружения векторов атак.

sudo немного более уязвим для атак, чем su поскольку вам не всегда нужно указывать пароль, чтобы иметь привилегированный доступ к некоторым ресурсам (в зависимости от того, как он настроен). Это может гарантировать более строгую безопасность.

0

Я ставлю под сомнение вашу предпосылку. Почему sudo должно быть как su?

su предоставляет привилегии только в том случае, если они у вас (а) уже есть или (b) вы прошли аутентификацию для их получения.

sudo предоставляет привилегии на основе рулебазы; например, можно сказать, что root-привилегии могут быть предоставлены joe в любое время, когда спрашивает joe, без пароля. "Человек sudoers" - его довольно мощный.

Так что у sudo есть возможность делать то, чего не может su.

Кто-то может спросить исполняемый файл sudo таким образом, чтобы он всегда предоставлял root любому, кто его спрашивал, - игнорируя файл sudoers и просто используя своего рода внутреннюю "проводку".

Так что имеет смысл защищать его БОЛЬШЕ, чем нужно для защиты su; имеет смысл усложнить чтение или запись в сам исполняемый файл sudo.

0

На моей машине, Ubuntu 9.04, нет различий в разрешениях.

-rwsr-xr-x 2 root root /usr/bin/sudo
-rwsr-xr-x 1 root root /bin/su

На вашей машине, возможно, он был недоступен для чтения, чтобы люди не могли его использовать? Может быть, это как-то отредактировано? Нет никаких оснований для разных прав доступа к двум файлам. В Ubuntu учетная запись root заблокирована - вы все равно не сможете войти в систему как root (если вы не предпримете действия, чтобы включить ее явно).

Может быть, здесь есть различия в ОС. Какую ОС вы используете в своем примере?

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