Domanda

Sto usando una macchina su cui non ho accesso come root e vorrei accedere ai file su un server Samba in modalità di accesso casuale. So che posso trasferire i file nella loro interezza usando smbclient ma i file sono molto grandi (> 1GB) e preferirei semplicemente trattarli come file remoti su cui posso fare un accesso casuale.

Il problema, come notato, è che non ho accesso root a questa macchina (una scatola Linux), quindi non posso montare il file system Samba remoto.

Esiste una soluzione a livello di utente che mi permetterà di accedere in modo casuale al contenuto di un file su un server Samba? Sembra che dovrebbe essere possibile fare tutto ciò che sta facendo il client del file system del kernel, ma da un'applicazione a livello di utente.

Ho solo bisogno dell'accesso in sola lettura tra l'altro e il file remoto è garantito per non cambiare.

È stato utile?

Soluzione

Per rispondere alla mia domanda dopo aver cercato nella fonte Samba: esiste una libreria client libsmbclient che include tutte le solite cose di gestione dei file: smbc_open, smbc_fstat, smbc_lseek, smbc_read ecc. Ad esempio, ecco uno snippet che ho appena scritto che legge un file al contrario (solo per verificare che stesse facendo una vera ricerca):

fd = smbc_open(path, O_RDONLY, 0);
smbc_fstat(fd, &st);

for (offset = st.st_size - BUFLEN; offset > 0; offset -= BUFLEN) {
    smbc_lseek(fd, offset, SEEK_SET);
    smbc_read(fd, buffer, BUFLEN);
}

(controllo degli errori rimosso per chiarezza)

Altri suggerimenti

Prova a usare smbmount per montare il filesystem senza permessi di root:

mkdir ~/temp
smbmount //{server}/{share} ~/temp -o username=username={username},password={password}

Modifica: aggiornato per utilizzare smbmount anziché mount.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top