Это интересно.
Это расширяется до uh:
echo `echo \`echo uh\``
и даже не
echo "`echo \`echo uh\``"
подавляет внутреннее расширение.
В оболочках bash
и POSIX (тире) есть $ ()
в качестве удобной альтернативы обратным кавычкам.
Интересно, что подстановка внутреннего процесса не расширяется с помощью $ ()
независимо от того, цитируется он или нет, или используется внутренняя подстановка обратные кавычки или $ ()
:
$ echo $(echo \$\(echo uh\))
$(echo uh)
$ echo $(echo \`echo uh\`)
`echo uh`
Неявное раскрытие с обратными кавычками не выглядит очень безопасным. Я бы придерживался $ ()
, особенно если вы хотите вложить.
Сервер sshd
всегда будет запрашивать пароль, если только вы не настроите его на разрешение пустых паролей. Кроме того, в большинстве текущих конфигураций по умолчанию sshd
настроен запрет на вход в систему root или разрешение root только с использованием аутентификации с открытым ключом.
Таким образом, вы должны убедиться, что root может войти в систему через ssh и разрешены пустые пароли:
/etc/ssh/sshd_config
PermitRootLogin yes
...
PasswordAuthentication yes
PermitEmptyPasswords yes
...
Вам также потребуется установить пустой пароль root. Это не то же самое, что отсутствие пароля. Отсутствие пароля определяется либо несуществующим -паролем, либо недопустимым паролем. В любом из этих случаев потребуется неявный, но невозможный для ввода пароль. Это, конечно, означает, что root
не сможет войти напрямую. Итак, empty password
— это то, что требуется.
Обратите внимание:
Это очень плохой уровень безопасности, и его следует использовать только в доверенной сети, к которой нет прямого доступа из Интернета.