2

ルートアクセス権がないマシンを使用していて、ランダムアクセスモードでSambaサーバー上のファイルにアクセスしたいと考えています。smbclientを使用してファイル全体を転送できることはわかっていますが、ファイルは非常に大きく(> 1GB)、ランダムアクセスが可能なリモートファイルとして扱いたいと思います。

前述の問題は、このマシン(Linuxボックス)へのrootアクセス権がないため、リモートのSambaファイルシステムをマウントできないことです。

Sambaサーバー上のファイルの内容にランダムにアクセスできるユーザーレベルのソリューションはありますか?カーネルファイルシステムクライアントが実行していることはすべて、ユーザーレベルのアプリケーションから実行できるはずです。

読み取り専用アクセスが必要なだけで、リモートファイルは変更されないことが保証されています。

4

2 に答える 2

2

Samba のソースを掘り下げた後の私自身の質問に答えるために: smbc_open、smbc_fstat、smbc_lseek、smbc_read などの通常のファイル処理をすべて含むクライアント ライブラリ libsmbclient があります。ファイルを後方に移動します(真のシークを行っていることを確認するためだけに):

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);
}

(わかりやすくするためにエラー チェックを削除しました)

于 2008-11-06T12:21:25.343 に答える
0

smbmountルート権限なしでファイルシステムをマウントするために使用してみてください:

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

編集:smbmountの代わりに使用するように更新されましたmount

于 2008-11-05T12:13:19.603 に答える