Permissions 使用Samba进行随机访问而不装载文件系统?

Permissions 使用Samba进行随机访问而不装载文件系统?,permissions,samba,mount,Permissions,Samba,Mount,我使用的机器没有根访问权限,希望以随机访问模式访问Samba服务器上的文件。我知道我可以使用smbclient完整地传输文件,但是文件非常大(>1GB),我更愿意将它们视为远程文件,在远程文件上进行随机访问 注意到的问题是,我没有对这台机器(Linux机器)的root访问权限,因此无法装载远程Samba文件系统 是否有一个用户级解决方案可以让我随机访问Samba服务器上的文件内容?似乎除了从用户级应用程序之外,内核文件系统客户端所做的一切都是可能的 顺便说一句,我只需要只读访问,远程文件保证不会

我使用的机器没有根访问权限,希望以随机访问模式访问Samba服务器上的文件。我知道我可以使用smbclient完整地传输文件,但是文件非常大(>1GB),我更愿意将它们视为远程文件,在远程文件上进行随机访问

注意到的问题是,我没有对这台机器(Linux机器)的root访问权限,因此无法装载远程Samba文件系统

是否有一个用户级解决方案可以让我随机访问Samba服务器上的文件内容?似乎除了从用户级应用程序之外,内核文件系统客户端所做的一切都是可能的


顺便说一句,我只需要只读访问,远程文件保证不会更改。

尝试使用
smbmount
在没有根权限的情况下装载文件系统:

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

编辑:更新为使用
smbmount
而不是
mount

来回答我在Samba源代码中的问题:有一个客户端库libsmbclient,它包括所有常用的文件处理内容:smbc_open、smbc_fstat、smbc_lseek、smbc_read等,下面是我刚刚编写的一个片段,它向后读取一个文件(只是为了检查它是否正在进行真正的查找):


(为了清晰起见,已删除错误检查)

尝试了该操作。上面写着:mount:只有root用户可以这么做。嗯,我下载并安装了samba,并尝试了mount.cifs,它似乎是smbmount的替代品。这也失败了,原因似乎是命令需要设置suid root位。第22条!写了以上内容后,我在这里找到了一个更好的解决方案(至少对我来说,因为它是用Java编写的):您介意为您的解决方案共享一个可编译的源代码吗?
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);
}