2008-11-05 25 views
2

我正在使用的機器上沒有root訪問權限,並且希望以隨機訪問模式訪問Samba服務器上的文件。我知道我可以使用smbclient完整地傳輸文件,但文件非常大(> 1GB),我寧願將它們視爲可以隨機訪問的遠程文件。在沒有安裝文件系統的情況下使用Samba進行隨機訪問?

注意到的問題是,我沒有對本機(Linux機器)的root權限,因此無法掛載遠程Samba文件系統。

是否有一個用戶級別的解決方案,可以讓我隨機訪問Samba服務器上的文件內容?看起來它應該可以完成內核文件系統客戶端正在做的所有事情,但是可以從用戶級應用程序中完成。

我只需要只讀訪問btw和遠程文件保證不會改變。

回答

2

要在桑巴源周圍挖掘後,回答我的問題:有一個客戶端庫libsmbclient其中包括所有常見的文件處理的東西:smbc_open,smbc_fstat,smbc_lseek,smbc_read等。例如,這裏是一個片段我只寫了讀取文件向後(只是爲了檢查它是做一個真正的搜索):(爲了清楚起見檢查刪除錯誤)

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

1

嘗試使用smbmount掛載文件系統沒有root權限:

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

編輯:更新後可使用smbmount而不是mount

+0

試過了。它說: mount:只有root可以做到這一點 – 2008-11-05 13:23:11

+0

我更新了帖子,使用smbmount而不是mount。 – xsl 2008-11-05 13:56:31

相關問題