파일 시스템을 장착하지 않고 무작위 액세스에 Samba를 사용하십니까?
-
06-07-2019 - |
문제
루트 액세스가없고 무작위 액세스 모드에서 Samba 서버의 파일에 액세스하고 싶은 머신을 사용하고 있습니다. SMBClient를 사용하여 파일 전체를 전송할 수 있지만 파일은 매우 크며 (> 1GB), 오히려 임의의 액세스를 수행 할 수있는 원격 파일로 취급합니다.
언급 한 문제는이 컴퓨터 (Linux 상자)에 루트 액세스 권한이 없으므로 원격 삼바 파일 시스템을 장착 할 수 없다는 것입니다.
Samba 서버의 파일 내용에 무작위로 액세스 할 수있는 사용자 수준 솔루션이 있습니까? 커널 파일 시스템 클라이언트가 수행하는 모든 작업을 수행 할 수 있지만 사용자 수준 애플리케이션에서 수행 할 수 있어야합니다.
읽기 전용 액세스 BTW 만 필요하며 원격 파일은 변경되지 않도록 보장됩니다.
해결책
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);
}
(명확성을 위해 오류 검사가 제거됨)
다른 팁
사용하려고 노력하십시오 smbmount
루트 권한없이 파일 시스템을 장착하려면 :
mkdir ~/temp
smbmount //{server}/{share} ~/temp -o username=username={username},password={password}
편집 : 사용하도록 업데이트되었습니다 smbmount
대신에 mount
.
제휴하지 않습니다 StackOverflow