На этот вопрос уже есть ответ здесь:
Кажется, любая программа запускается достаточно скоро после sudo
в том же терминале можно запустить любую команду sudo
, которая ему нравится.
Доказательство: выполнить sudo ls
в терминале. Затем запустите эту программу (разумеется, скомпилированную) в том же терминале:
#include <stdlib.h>
int main() {
system("sudo whoami");
return 0;
}
Она скажет root
, не запрашивая пароль.
Разве это не большая дыра в безопасности? Корневые и обычные учетные записи разделены, поэтому, помимо прочего, вредоносное ПО не может работать с правами root. Должны ли пользователи быть осторожными при выполнении своих действий до истечения времени ожидания sudo
?
sudo
настройки по умолчанию имеют 15 минут, испытывают таймаут прежде, чем повторно запросить пароль, однако можно изменить его, чтобы всегда попросить пароль каждый раз, когда Вы называете что-то с sudo
. Точная опция timestamp_timeout
timestamp_timeout
Number of minutes that can elapse before sudo will ask for a passwd again. The timeout may include a frac‐ tional component if minute granularity is insufficient, for example 2.5. The default is 15. Set this to 0 to always prompt for a password. If set to a value less than 0 the user's time stamp will never expire. This can be used to allow users to create or delete their own time stamps via “sudo -v” and “sudo -k” respec‐ tively.
И здесь является соответствующей частью моего sudoers файла, а также двух попыток sudo
, поскольку Вы видите, что это повторно запрашивает:
$ sudo cat /etc/sudoers
[sudo] password for xieerqi:
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults timestamp_timeout=0
Defaults passwd_timeout=0
(the rest cut out)
================
xieerqi:
$ sudo echo hello
[sudo] password for xieerqi:
Как другая альтернатива, можно также использовать pkexec
, чтобы к моему знанию всегда просит пароль
sudo
по умолчанию в стандартной установке Ubuntu сохраняет sudo
доступ кэшируемым в течение короткого времени (значение по умолчанию является 15-минутным тайм-аутом).
, Чтобы Ваша гипотетическая ситуация работала, необходимо работать sudo
ранее и затем выполнить код, который Вы указали с sudo
, прежде чем кэширование той способности испытает таймаут. В большинстве случаев это не столь 'небезопасно', как Вы думаете - много укрепленных серверов имеют намного более короткий тайм-аут, или в моем случае на моих серверах я на самом деле настраиваю его на мгновение, тайм-аут после sudo
выполняется, требуя пароля для каждого sudo
сделанная команда.
С этой целью, sudo
'безопасно', потому что существуют тайм-ауты, которые истекают, удостоверяться sudo
не может использоваться бесконечно и постоянно после одного использования.
Это не 'небезопасно' этим способом, хотя существуют времена, где кажется, что путь - отключение учетного кэширования решает это, конечно, и очень легко для системных администраторов сделать.
В установке по умолчанию, 15-минутное кэширование по умолчанию появилось бы как баланс между 'безопасностью' и 'удобством', потому что мы не хотим, чтобы новые пользователи страдали от головных болей путем ввода паролей в течение каждого раза. Сказав это, где безопасность важна, мы можем заблокировать вниз sudo
путем изменения конфигурации.
TL; DR: Нет, sudo
весьма безопасно вообще. Это - кэширование по умолчанию и Ваше гипотетическое, называемое, в то время как sudo
доступ кэшируется, который инициировал Вашу мысль, но sudo
не на самом деле небезопасно при конфигурировании с коротким тайм-аутом, или с мгновенным тайм-аутом, и это сделано при решениях системного администратора о тех системах, изменить ли значение по умолчанию.
Не это большая дыра в системе безопасности?
номер, но да, это понижает безопасность немного за для удобства. Можно защитить систему с 128-разрядным паролем, выбросить его, и никто никогда не собирается получить доступ к системе... Безопасный? Да. Удобный? Едва ;-)
sudo
активно. sudo -k
отмены текущий тайм-аут. Я выполняюсь этот каждый раз, когда я оставляю свою систему, и я полагаю, что эти 15 минут активны. пользователи, которые, как предполагают, были осторожны, что они выполняют, прежде чем sudo испытывает таймаут?
Да и нет. Администратор, как предполагается, осторожен каждый раз, когда они используют "sudo". Не как раз в то самое время, когда это в течение 15-минутного периода времени. Таким образом, 2-я часть Вашего вопроса не важна ;)
Вы - администратор. Вы ответственны для защиты системы.