Раз вы тут, значит у вас возникла проблема с запуском исполняемых файлов по сети, расположенных на сервере 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
- Тест скорости дисков в Linux
- Как запустить команду в фоне в Linux
- Ошибка несоответствие размеров GPT PMBR
- nginx: [warn] protocol options redefined
- Как включить поддержку linux в windows 11