Использование Samba для произвольного доступа без монтирования файловой системы?

StackOverflow https://stackoverflow.com/questions/264950

  •  06-07-2019
  •  | 
  •  

Вопрос

Я использую компьютер, на котором у меня нет доступа с правами root, и я хочу получить доступ к файлам на сервере Samba в режиме произвольного доступа. Я знаю, что могу передать файлы целиком с помощью smbclient, но файлы очень большие (> 1 ГБ), и я бы предпочел просто обращаться с ними как с удаленными файлами, к которым я могу осуществлять произвольный доступ.

Проблема, как уже отмечалось, заключается в том, что у меня нет root-доступа к этому компьютеру (в комплекте с Linux), поэтому я не могу смонтировать удаленную файловую систему Samba.

Существует ли решение на уровне пользователя, которое позволит мне произвольно получать доступ к содержимому файла на сервере Samba? Кажется, должно быть возможно сделать все, что делает клиент файловой системы ядра, но из приложения уровня пользователя.

Мне нужен только доступ только для чтения, и удаленный файл гарантированно не изменится.

Это было полезно?

Решение

Чтобы ответить на мой собственный вопрос после поиска в исходном коде Samba: есть клиентская библиотека 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);
}

(проверка ошибок удалена для ясности)

Другие советы

Попробуйте использовать smbmount для монтирования файловой системы без прав root:

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

Изменить: обновлено использование smbmount вместо mount .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top