Раз вы тут, значит у вас возникла проблема с запуском исполняемых файлов по сети, расположенных на сервере 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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

5 2 голоса
Рейтинг статьи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов cookie) с использованием трекеров "Google Analytics" и "Yandex.Metrics". Порядок обработки Ваших персональных данных, а также реализуемые требования к их защите, содержатся в Политике конфиденциальности.
Принять