безопаснее без пароля sudo?

3241
V_H

Хорошо, вот моя проблема - Пожалуйста, не кричите на меня за то, что я неуверен! :) Это на моей хост-машине. Я единственный, кто использует его, так что это довольно безопасно, но у меня есть очень сложный пароль, который трудно набирать снова и снова. Я использую консоль для перемещения файлов и выполнения произвольных команд LOT, и я переключаю терминалы, поэтому запоминания sudo для консоли недостаточно (И мне все еще приходится вводить свой ужасный пароль хотя бы один раз!) В прошлом я использовал трюк NOPASSWD в sudoers, но я решил быть более безопасным. Есть ли какой-то компромисс, кроме запрета доступа к паролю для определенных приложений? (что все еще может быть небезопасно) Что-то, что остановит вредоносное ПО и удаленный вход в систему от sudo rm -rf / -ing me, но в моих терминалах я могу счастливо печатать? Могу ли я иметь это на терминал, возможно, просто случайные команды не справятся? Я попытался запустить эмуляцию терминала как sudo, но это ставит меня как root.

3
Это возбудит меня (как и комментарий): если никто не имеет физического доступа к вашему компьютеру, вам не нужен пароль. Если у кого-то есть физический доступ к вашему компьютеру, ему не нужен пароль для загрузки с CD и получения контроля. Пароль полезен только против случайных прохожих, а не против кого-либо с (небольшим) знанием и временем. harrymc 13 лет назад 7
@harrymc: правда, физический доступ всегда будет слабым местом, где возможен физический доступ. Если только файловые системы не зашифрованы, а ключи не хранятся небезопасно, конечно. David Spillett 13 лет назад 0
@harrymc: Вы знаете, что тогда вы все время работаете как привилегированный пользователь / root, и это одна из причин, почему так много ботнетов можно взять напрокат? Или я тебя неправильно понял? Bobby 13 лет назад 0

6 ответов на вопрос

8
whitequark

Попробуйте добавить это к вашим sudoопциям:

Defaults timestamp_timeout=0, tty_tickets 

tty_ticketsопция ( sudoвключена по умолчанию) заставит спросить пароль, если он не был задан ранее в этом конкретном tty (включая эмуляторы терминала ptys), а timestamp_timeout=0опция заставит его не спрашивать его снова в течение всего сеанса.

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

7
Rory Alsop

Очевидное решение для меня - уменьшить сложность вашего пароля. Кажется, вы счастливы, что у вас нет пароля, а не длинного и сложного, так почему бы не взглянуть на этот средний план как на правильный вариант?

Если ваша машина подключена к сети, существует риск компрометации. Без пароля вы открываете себя для оппортунистической эксплуатации, поэтому даже простой пароль обеспечивает дополнительную безопасность.

Или сложные пароли для всего (разные приличные пароли для каждой службы / учетной записи) и храните их в чем-то вроде keepass (с приличным паролем и / или файлом ключа, защищающим хранилище паролей). David Spillett 13 лет назад 2
4
ewindisch

Наиболее безопасная альтернатива не используя нет пароля, чтобы использовать альтернативный метод аутентификации с помощью PAM. Вы можете, например, использовать устройство чтения смарт-карт. Вы просто вставите карту перед использованием «sudo» и удалите ее, когда закончите. Существует даже модуль PAM для голосовой аутентификации. Если вы не можете найти модуль PAM, который вам нравится, и вам не нравится C, существуют привязки Python.

Проверьте этот список модулей PAM .

Очень круто, не слышал об этом! V_H 13 лет назад 0
Одним из таких альтернатив является использование сканера отпечатков пальцев. У вас все еще есть надежный пароль при входе в систему, но после входа в систему используйте FP reader для sudo. alci 10 лет назад 0
1
user39559

Установите rootpwна свой /etc/sudoers:

 Defaults rootpw 

Дайте rootболее простой пароль, чем ваш.

Не забудьте запретить rootна ssh, в случае, если вы установили sshсервер.

Если ваш ужасный пароль предназначен для защиты ваших файлов, то они действительно защищены только в том случае, если они зашифрованы, в противном случае это всего лишь «театр безопасности». Предполагая, что именно поэтому вы хотите сохранить большой, вы будете в безопасности: взломанного rootпароля все равно будет недостаточно для расшифровки ваших файлов, и любое вредоносное ПО будет жарить наш процессор, прежде чем угадать пароль.

1
Boldewyn

Иной подход к /etc/sudoersтаковому и такому бы sudo -iи оставался root. Например, если вы используете экран GNU, у вас может быть одно окно как обычного пользователя, а второе - для выдачи sudo -iи сохранения прав root.

Если ваш ~/.screenrcвид выглядит следующим образом, выдача screenавтоматически открывает вам две «вкладки» соответственно:

hardstatus alwayslastline "%w" screen -t normal screen -t root sudo -i 
1
UberJim

в / etc / sudoers (visudo) добавьте следующую строку:

uberjim ALL = (ALL) NOPASSWD: ALL

затем, войдя в систему (используя свой безопасный пароль), вы можете просто ввести:

sudo /cmd/you/want/to/run 

Пароль не требуется :) Веселитесь

естественно, заменив uberjim своим именем пользователя Journeyman Geek 13 лет назад 2

Похожие вопросы