Shell разделяет значение переменной в слова. Doublequote это для предотвращения разделения. Посмотрите различие:
t='"a b c"'
set -xv
echo $t
echo "$t"
Это звучит так, как будто я единственный человек, который сделал это раньше ...
Если у вас есть система, и единственным способом доступа к нему является через SSH, вы можете легко испортить ваш Vaulic up и блокировать доступ SSH в коробка, эффективно блокируя себя вне компьютера.
Например:
# Because it's secure
iptables -P INPUT DROP
iptables -P OUTPUT DROP
# Because you want to create a new ruleset and you've been up for 25 hours and aren't thinking straight
iptables -F
Это отбросит все трафик и выравнивают, затем промойте загруженные в настоящее время правила, включая правила, позволяющие SSH трафик в и из коробки. Борьси! Вы заблокированы.
При следующих условиях вы можете зафиксировать себя на клавиатуре.
Если вы заблокируете все выходные сетевые трафик с iPtables. И Если вы используете какой-то сетевой аутентификацию, такую как LDAP или NIS для входа пользователя. В результате система не может получить доступ к внешней службе, поэтому вы не сможете войти в систему с этими идентификаторами пользователя. И У вас нет других местных учетных записей пользователей с паролями И Вы отключили прямые корневые вход от консоли.
Вы все еще не полностью заблокированы, потому что вы можете перезагрузить систему в один пользовательский режим и исправить свою ошибку.
При фиксации компьютера можно заблокировать себя так, чтобы единственное восстановление - перезагрузка в консольный режим. В некоторых случаях вам понадобится загрузочный CD. В худшем случае, при заблокированном BIOS, это тоже может быть непросто сделать.
Блокировка root со всех консолей - тривиальная задача, которая выполняется в два шага в любом порядке:
/etc/sudoers
до недействительной конфигурации. Я всегда держу одну или несколько консолей с правами суперпользователя открытыми при внесении изменений и проверяю новые соединения перед их закрытием.
Удаленный доступ легче нарушить, и он требует только предотвращения доступа по протоколам, разрешающим вход в систему. (В Shorewall есть / имела опцию "отсутствующего администратора", чтобы предотвратить это.) Опять же, это помогает держать активную корневую консоль открытой при внесении изменений. Также помогают инструменты с тестовым режимом, так как вы должны получить доступ, когда истечёт время тестирования и конфигурация вернётся в исходное состояние.
Если ваши протоколы паролей работают по сети (NIS, LDAP и т.д.), вы можете заблокировать весь доступ, заблокировав их протоколы с помощью iptables. Если у вас работает кэш, вы можете не заметить этого сразу. Внимательно проверьте, что службы все еще работают, прежде чем выходить из корневой консоли. Наличие локальной учетной записи и/или пароля может помочь предотвратить это.
Политика блокировки паролей также может вызвать проблемы. Я слышал, как один разработчик описывал, как он блокировал себя при реализации политики паролей. Его первой политикой была 1 неудача и 24-часовая блокировка. Он мог иметь кого-то другого, кто входил в систему для повторного включения своей учетной записи.
в простейшей форме, если вход в систему и аутентификация зависят от сетевого подключения, в то время как вход в консоль отключен (это тоже можно сделать в целях физической безопасности).