Не запускаются файлы из сети | Samba

Раз вы тут, значит у вас возникла проблема с запуском исполняемых файлов по сети, расположенных на сервере Ubuntu.




После настройки и запуска файлового сервера Samba на Ubuntu Server, а также открытие общего доступа к определенным директориям на нем, может возникнуть проблема с доступом для запуска исполняемых файлов по сети.




Рассмотрим пример данной проблемы.




Домашняя сеть




Имеем настроенный файловый сервер Samba на Ubuntu Server 18.04.




Также установлен transmission-daemon для скачивания чего либо через торрент. Transmission настроен для автоматического сканирования определенной директории на сервере и запуску данного торрент-файла после появления его в данной директории. После завершения скачивания файл помещается в директорию, которая открыта в Samba для общего доступа по сети.




Также в наличии имеется два ноутбука с установленной Windows 7 и один ПК на Windows 10.




Ошибка открытия файла по сети




Для удобства весь необходимый софт располагается на сервере и открыт в общей доступ по сети. Также через торрент скачиваются образы и необходимые программы для домашнего использования.




Но вот запустить и установить что-либо через локальную сеть не получается (для установки программ с расширением .exe, .iso и т.д. их приходится скачивать с сервера к себе на ПК)




Решаем проблему открытия файла по сети




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




Было обнаружено, что после скачивания файлов transmission сохраняет их в директории с правами 644, т.е. запрещает их запуск. Настроенный файловый сервер Samba, также сохраняет файлы с правами 644.




Я полез в настройки Samba. Найдя параметр create mask в которой было выставлено 644, я изменил значения на 755, но не тут то было. Попробовав сохранить тестовый файл в расшаренную директорию с Window машины, самбо сохранил его с правами 744. Ладно, роем дальше. Почитав man Samba я нашёл ещё один параметр отвечающий за назначение прав доступа на файл – force create mode. Добавляю этот параметр в файл smb.conf




sudo nano /etc/samba/smb.conf




force creat mode = 777




После этих манипуляций файловый сервер Samba всем файлам прошедшим через него стал назначать права доступа 777.




Конечный результат выглядит следующим образом:




[Downloads]
   path = /home/Downloads
   writeable = yes       
   guest ok = yes               
   comment = Общая папка        
   create mask = 0777        
   directory mask = 0777    
   force create mode = 0777  
   force directory mode = 0777




Что же касается transmission, то в его настройках присутствует параметр umask. Этот параметр записывается в десятичном коде, то есть umask = 18 назначит права на файл 755.




Пример перевода из восьмеричной системы в десятичную:




1234 = (1·83)+(2·82)+(3·81)+(4·80) = 1·512 + 2·64 + 3·8 + 4·1 = 668




Чтобы поменять права на 777, необходимо выставить значение umask равной 0, также на директорию в самой ОС Ubuntu, в которую будут сохраняться наши скачанные файлы, необходимо выставить права на доступ равной 777. Для этого подключитесь к серверу через ssh и наберите следующее:




sudo chmod -R 777 /home/Downloads




Путь /home/Downloads измените на свой.




После этих манипуляций ошибка запуска исполняемых файлов по сети у меня пропала для всех машин в моей локальной сети.



[endtxt]




RSS




2019-09-29T07:00:21
Samba