Para apreciar la situación, pregúntese: "¿Relativo a qué?". Los archivos .desktop
son para uso dentro de contextos GUI, para los cuales no se puede asumir ninguna ruta base sobre la cual construir una ruta absoluta a partir de cualquier ruta relativa que podría considerar colocar en el archivo .desktop
.
Las rutas relativas solo son útiles cuando se pueden convertir a una ubicación definida (la ruta absoluta ), y eso requiere un punto de referencia. que no se puede asumir en ningún contexto de GUI genérico.
Как уже упоминалось, ответ Филипа , это ожидаемое поведение, поскольку ip netns exec
выполняется в отдельном пространстве имен монтирования. Хитрость заключается только в том, чтобы запустить ssh
(, который выполняет сетевое взаимодействие )через ip netns exec
, а не всю команду sshfs
.
То есть вместо этого:
ip netns exec secured sshfs -p PORT USER@HOST: MOUNTPOINT
Сделай это:
sshfs -o ssh_command="ip netns exec secured ssh" -p PORT USER@HOST: MOUNTPOINT
Это, к сожалению, ожидаемое поведение.
http://man7.org/linux/man-pages/man8/ip-netns.8.html
ip netns exec automates handling of this configuration, file convention for network namespace unaware applications, by creating a mount namespace and bind mounting all of the per network namespace configure files into their traditional location in /etc.
Это означает, что при использовании ip netns exec <namespace> <command>
команда будет выполняться не только в другом сетевом пространстве имен, но и в другом пространстве имен монтирования. Итак, sshfs
успешно монтируется по вашему запросу, но вы не видите этого монтирования.
Вы можете просто открыть командную строку в сети и работать оттуда:
ip netns exec secured bash
sshfs -d -o sshfs_debug -p PORT USER@HOST: MOUNTPOINT
#... use MOUNTPOINT
После создания общего ресурса вы можете повторно -ввести это пространство имен монтирования:
ip netns exec secured sshfs -d -o sshfs_debug -p PORT USER@HOST: MOUNTPOINT
ps -ef | grep sshfs
root 1880 1 0 13:15 ? 00:00:00 sshfs -p PORT USER@HOST:. MOUNTPOINT
# Now run a command (ls) in the same mount namespace
nsenter --mount -t 1880 ls
# You can of course run a command prompt there
nsenter --mount -t 1880 bash
Обратите внимание, что это, вероятно, будет более сложным, и я не исследовал этот вариант должным образом.
Как сказано в приведенной выше цитате, пространство имен mount используется для дополнительной настройки сети. Но теоретически это не требуется, так как вы можете добиться того же эффекта, используя chroot
.
Вы можете поэкспериментировать с вводом сетевого пространства имен с помощью nsenter --net
и с помощью chroot
для настройки требуемой конфигурации сети. Это позволит вам выполнить sshfs
внутри вашего основного пространства имен монтирования.