У меня есть безголовый сервер, который удаленно подключен к нескольким пользователям. Ни один из других пользователей не находится в файле sudoers, поэтому они не могут получить root через sudo
. Однако, поскольку разрешения на su
это -rwsr-xr-x
нет ничего остановить их от попыток перебора пароля суперпользователя.
Можно утверждать, что если пользователь знает пароль root, он все равно может поставить под угрозу систему, но я не думаю, что это так. OpenSSH настроен с PermitRootLogin no
и PasswordAuthentication no
, и никто из других пользователей не имеет физического доступа к серверу. Насколько я могу судить, разрешение на выполнение в мире /usr/bin/su
- единственная возможность для пользователей, пытающихся получить root на моем сервере.
Что еще удивляет меня тем, что это даже не кажется полезным. Это позволяет мне бегать su
напрямую, а не делать это sudo su
, но это вряд ли неудобство.
Я что-то пропускаю? Является ли мир исполнять разрешение su
только по историческим причинам? Есть ли недостатки в удалении этого разрешения, с которым я еще не сталкивался?
sudo
установленного дополнительного оборудования? Я бы сказал, что это довольно большое неудобство;)Ответы:
Единственное, чего не хватает в ответе ilkkachu, это то, что повышение прав до root - это только одно конкретное применение
su
. Общая цель su - открыть новую оболочку под учетной записью другого пользователя. Этим другим пользователем может бытьroot
(и, возможно, чаще всего), ноsu
его можно использовать для предположения любой идентичности, которую может аутентифицировать локальная система.Например, если я вошел в систему как пользователь
jim
, и я хочу исследоватьmike
сообщенную проблему , но которую я не могу воспроизвести, я мог бы попытаться войти в систему какmike
и выполнить команду, которая доставляет ему проблемы.Использование
-l
опцииsu
приводит к симуляции полного входа в систему (наman
странице).Выше необходимо знать
mike
пароль пользователя, однако. Если у меня естьsudo
доступ, я могу войти какmike
даже без его пароля.Таким образом, причина, по
su
которой вы видите права доступа к исполняемому файлу, заключается в том, чтоsu
это универсальный инструмент , доступный всем пользователям системы.источник
sudo
я забыл, чтоsu
можно использовать больше, чем простоsudo -s
. И не будучи sudoer, это был бы единственный способ переключать пользователей без изменения ключей ssh. Для моего варианта использования это еще одна причина для удаления разрешения, но теперь я понимаю, почему разрешение на выполнение в мире установлено по умолчанию. Благодарность!sudo
, что тоже можно использовать для определения личности пользователя, отличного отroot
. Это просто позволяет получить более точный контроль над тем, кто что может делать, с кем, включая принятие другого идентификатора без необходимости ввода пароля этого идентификатора.su
означают «суперпользователь», что и происходит, когда пользователь не указан (или root определен как простота), но он также означает «переключение пользователя». Это второе использованиеsu
поэтому легко забывается.Исторически (для не-GNU юнитов) это не было или, по крайней мере, проверялось вручную, находились ли вы в группе под названием «wheel»
su
. Версия GNUsu
не воспроизводила эту функциональность из-за идеологии RMS об управлении доступом в то время:Вы можете найти намного больше по этому вопросу, прибегая к помощи "колесной группы RMS" или подобным.
источник
Да. Предполагая, что вы используете обычную систему Linux,
pam_unix.so
модуль задерживает неудачную попытку аутентификации на ~ две секунды, но я не думаю, что есть что-то, чтобы остановить одновременные попытки.Неудачные попытки регистрируются, конечно:
Брут-форсирование пароля должно быть заметно в журналах, если у вас есть какая-либо система для их мониторинга. И если вы не доверяли локальным пользователям, возможно, вам следует. Ненадежные локальные пользователи также могут пытаться использовать любые локальные эксплойты для повышения привилегий, и они гораздо более распространены, чем удаленное повышение привилегий.
Конечно, это полезно, это позволяет вам подняться
root
, если вы знаете пароль.sudo su
несколько избыточно. Нет необходимости использовать две программы, предназначенные для запуска программ от имени другого пользователя, одной вполне достаточно. Просто используйтеsudo -i
илиsudo -s
(илиsudo /bin/bash
т. Д.), Если вы хотите запустить shell.Смотри выше. Ну, не все системы имеют
sudo
в качестве альтернативы, я не уверен, если вы считаете это историческим.Не совсем, нет, насколько я знаю. Я думаю, что некоторые системы
su
настроены так, чтоwheel
запускать его могут только члены определенной группы (" "). Вы можете сделать то же самое,sudo
если хотите (chown root.sudousers /usr/bin/sudo && chmod 4710 /usr/bin/sudo
).Или вы можете просто удалить одну или обе программы, если они вам не нужны. Хотя в Debian и
su
идетlogin
пакет, поэтому, вероятно, не стоит удалять пакет целиком. (И спаривание,login
иsu
подобное вместе кажутся историческими.)источник
wheel
группе для использованияsu
. Есть некоторые системы BSD (я могу говорить только об OpenBSD), которые вообще не поставляютсяsudo
(это сторонний пакет). В OpenBSDdoas
реализована базовая реализацияsudo
, но по умолчанию она отключена при установке новой системы.wheel
если вы хотитеsu
получить root права . Любая учетная запись может относитьсяsu
к любой учетной записи без полномочий root, для которой у них есть пароль, независимо от их членства вwheel
группе.su
тогда окружающую среду? Похоже, что это не так в Debian ...У вас уже есть несколько хороших ответов, но есть одна часть вашего сообщения, к которой они не обращаются.
Это опасное предположение. Если вы установили хороший пароль для пользователя root, то в большинстве случаев более вероятно, что успешное повышение привилегий будет связано с использованием ошибки в ядре или двоичного файла setuid (вы, конечно, также можете удалить setuid немного от них, но
passwd
это setuid, и если вы хотите обеспечить высокий уровень безопасности, вы также должны предложить это своим пользователям, и отказ в предоставлении им возможности сменить пароль не совместим с этим).источник
su должен быть исполняемым в мире, чтобы каждый мог его запустить. Во многих системах его можно использовать для перехода к другому пользователю, указав его пароль.
Если вы обеспокоены тем, что кто-то может взломать пароль root, вы можете просто отключить его. (сделать хеш недействительным, чтобы ни один пароль не мог ему соответствовать)
Я не знаю о консенсусе, но я бы подумал, что возможность войти в систему как root напрямую сама по себе является проблемой безопасности.
источник
Другие ответы верны: «su» позволяет вам войти в учетные записи, отличные от root.
Одно замечание о "sudo su", хотя. Это фактически позволяет вам войти в систему под учетной записью root, не зная пароль root. Вам необходимо знать пароль учетной записи, с которой вы запускаете sudo, а также указывать эту учетную запись в файле sudoers.
источник
sudoers
имеетtargetpw
илиrootpw
установил.su
тем, чтобы быть исполняемым всеми.