Aquí hay un código que hace algo diferente en POSIX sh y Bash:
hello &> world
Si eso es "inválido" para usted, no lo sé.
En Bash, redirige tanto la salida estándar como el error estándar de hello
al archivo world
. En POSIX sh
, ejecuta hello
en segundo plano y luego realiza una redirección vacía a world
, truncándolo (, es decir, se trata como& >
).
Hay muchos otros casos en los que las extensiones de Bash funcionarán cuando se ejecuten bajo bash
, y tendrían diferentes efectos en un POSIX puro sh
. Por ejemplo, la expansión de llaves es otra, y también funciona igual en el modo POSIX de Bash y no.
En cuanto a los errores de sintaxis estática, Bash tiene palabras reservadas (como [[
ytime
)no especificadas por POSIX, de modo que [[ x
es un código de shell POSIX válido pero un error de sintaxis de Bash y un historial de varios errores de incompatibilidad POSIX que pueden generar errores de sintaxis, como el de esta pregunta:
x=$(cat <<'EOF'
`
EOF
)
bash: line 2: unexpected EOF while looking for matching ``'
bash: line 5: syntax error: unexpected end of file
Errores de sintaxis --solo es una definición bastante peligrosa de "no válido" para cualquier circunstancia en la que importe, pero ahí está.
Для доступа по SSH просто ограничьте SSHD определенным адресом. Должна быть строка типа:
#ListenAddress 0.0.0.0
в вашем конфигурационном файле SSHD, вероятно, /etc/ssh/sshd_config
. Измените 0.0.0.0 на VPN-IP-адрес вашего VPN-сервера, раскомментируйте строку, сохраните файл, перезагрузите SSHD и готово.
Для служб, отличных от SSH, вы должны сделать с ними то же самое.
Вместо этого можно использовать управление брандмауэром. Вы также можете применить оба.