Central “/ home” usando o SSHFS?

3

A maneira padrão de configurar um diretório central "/ home" em uma estação de trabalho Linux está usando o NFS. O problema é que não gosto da falta de segurança real no NFS. Então, em vez disso, quero tentar usar o SSHFS. O SSHFS em si funciona bem, o problema é montá-lo na inicialização. Se eu adicionar uma linha ao "/ etc / fstab" para o compartilhamento SSHFS, a estação de trabalho reclama que não pode contatar o servidor SSH. Isto é verdade porque as linhas "/ etc / fstab" são executadas antes que a rede esteja ativa!

Agora mesmo estou usando o seguinte script de inicialização para montar "/ home":

#!/bin/sh

# Mounts "/home"  over SSHFS at boot

start () {
    while true; do
        ping -c 1 "10.0.0.200" 1> /dev/null

        if [ "$?" = 0 ]; then
            break
        fi

        sleep 1
    done

    sshfs [email protected]:/home/ /home/ -o transform_symlinks,allow_other,nonempty,hard_remove
}

case "$1" in
    start)
        start
        ;;

    *)
        echo "Usage: $0 {start}"
        exit 1

esac

Basicamente, ele insere o servidor SSH uma vez por segundo até que ele possa se conectar, depois monta o compartilhamento SSHFS.

Minha pergunta é: Existe uma maneira mais direta e menos "hack-ish" de fazer com que "/ etc / fstab" espere até que haja uma conexão de rede ativa antes de tentar montar "/ home"?

Uma ideia alternativa que eu tive foi adicionar a linha "sshfs [email protected]: / home / / home / -o transformar_symlinks, permitir_outra, não vazia, hard_remover" como um script "post-up" em "/ etc / rede / interfaces ", mas isso ainda parece errado.

Ambiente:

SO do servidor: Ubuntu Server Edition 10.04

SO do cliente: Ubuntu Desktop 10.04

    
por Soviero 02.11.2011 / 05:05

1 resposta

3

Você provavelmente deseja adicionar a opção _netdev para atrasar a montagem até que a rede tenha sido ativada:

sshfs#[email protected]:/home/ /home/ fuse transform_symlinks,allow_other,_netdev,nonempty,hard_remove 0 0

Você também pode colocar seu script em /etc/network/if-up.d/ ou o comando mount em /etc/rc.local .

    
por 02.11.2011 / 05:18