Вопрос или проблема
У меня есть странная проблема с правами доступа к файлам в Ubuntu. У меня установлен новый сервер Ubuntu, и я смонтировал общий диск. sudo mount //Hostname:ifs/path/to/directory/file /mnt/my directory. Диск был успешно смонтирован, но каждый раз, когда я пытаюсь зайти в любую из общих папок, появляется сообщение “Доступ запрещен”. Если я использую sudo su – “root”, все работает идеально. Но моя задача заключается в том, что стандартный пользователь должен иметь возможность доступа к файлам так же, как и root, потому что мы запускаем определенные приложения стандартным пользователем, которые в конечном итоге записывают по адресу “Смонтированный общий диск”.
Я пробовал следующие команды: – chown -v myuser:myuser /mnt/shared-drive
chmod -R 755 /mnt/shared-drive
chown -v myuser:myser /mnt/shared-drive
Команда chmod зависает, так как данные на общем диске очень объемные, и Ubuntu пытается предоставить полные права доступа. Объем данных составляет около 5 ТБ. Теперь даже если я выполню chmod для общей директории и получу права на запись, когда я создаю директорию и пытаюсь в нее войти, появляется сообщение “Доступ запрещен”.
Если я скопирую одну из папок с общего диска на локальный, ошибка остается той же, и мне нужно выполнить chown -v myuser:myser /скопированное имя папки, тогда все работает, но я не могу делать это вручную, так как это будет выполняться моим приложением.
Я проверял с владельцем общего диска, и он сказал, что права доступа уже полностью назначены и должны работать без проблем. Я здесь застрял, ребята. Нужна ваша помощь.
Спасибо!
Я предлагаю вам использовать sshfs
для совместного использования директорий.
С теми же данными пользователя/пароля на двух машинах, вот как я это делаю:
Обмен файлами с помощью sshfs:
- 1) Установите sshfs:
sudo apt-get install sshfs
- 2) Смонтируйте директорию:
sshfs <remote_host>:<dir> <local_dir>
- 3) Размонтируйте директорию:
fusermount -u <local_dir>
Вы можете настроить sshfs таким образом, чтобы при использовании не требовалось вводить пароль.
Я смонтировал общий диск. sudo mount
//Hostname:ifs/path/to/directory/file /mnt/my directory.
Если вы не указали никаких других опций, которые смонтируют удалённый общий ресурс с владельцем = root и правами на запись только для root. CIFS является виртуальной файловой системой, поэтому chown и chmod не будут работать.
Заберите право собственности на смонтированный общий ресурс в команде монтирования:
sudo mount -t cifs //hostname/sharename /mnt/my-directory -o uid=myuser
Ответ или решение
Ошибка "Permission Denied" при доступе к общей папке в Ubuntu 18.04
Если вы столкнулись с проблемой доступа к смонтированной общей папке в Ubuntu 18.04 с сообщением "Permission Denied", когда пытаетесь получить доступ к ней от имени стандартного пользователя, это может быть вызвано тем, как вы смонтировали общий ресурс. В этой статье мы рассмотрим детали проблемы и предложим решения, которые помогут настроить доступ к вашей общей папке.
Понимание проблемы
Вы указали, что общий ресурс был смонтирован с использованием команды:
sudo mount //Hostname:ifs/path/to/directory/file /mnt/my-directory
При этом, если вы используете sudo su -
, доступ к папкам работает без проблем. Это указывает на то, что права доступа для стандартных пользователей настроены неправильно.
Причины возникновения проблемы
-
Проблемы с правами доступа CIFS: CIFS (Common Internet File System) не позволяет использовать команды
chown
илиchmod
для изменения прав доступа к смонтированным папкам. Права на смонтированные каталоги могут наследоваться от серверной стороны. -
Свойства монтирования: По умолчанию, если вы не указали параметры монтирования, общий ресурс обычно монтируется с правами пользователя root, а доступ к нему имеют только пользователи с соответствующими правами (например, root).
Решение проблемы
Для того чтобы разрешить доступ вашему стандартному пользователю к смонтированной папке, вам нужно указать дополнительные параметры при монтировании общего ресурса. Вот шаги, которые вам необходимо предпринять:
-
Замена команды монтирования:
Измените команду монтирования следующим образом, чтобы указать пользователя и его UID:
sudo mount -t cifs //hostname/sharename /mnt/my-directory -o uid=myuser,gid=myuser
Здесь
myuser
— это имя вашего стандартного пользователя. Таким образом, права на смонтированную папку будут назначены этому пользователю. -
Повторное монтирование:
Если общий ресурс уже смонтирован, вам нужно его размонтировать перед повторным монтированием:
sudo umount /mnt/my-directory
-
Использование файла
/etc/fstab
для автоматического монтирования:Если вы хотите, чтобы общий ресурс монтировался автоматически после перезагрузки, добавьте его в файл
/etc/fstab
://hostname/sharename /mnt/my-directory cifs uid=myuser,gid=myuser,credentials=/path/to/credentials/file 0 0
В этом случае также необходимо создать файл особых учетных данных для хранения имени пользователя и пароля:
/path/to/credentials/file: username=myuser password=mypassword
-
Настройка прав доступа:
Убедитесь, что на стороне сервера (где находится общий ресурс) установлены права доступа, позволяющие вашему пользователю выполнять необходимые операции (чтение, запись и т.д.).
Заключение
На этом этапе ваш стандартный пользователь должен иметь доступ к смонтированной общей папке без прерывания работы приложения. Если проблемы сохраняются, рассмотрите возможность использовать альтернативные способы монтирования, такие как sshfs
, предоставляющий более гибкие настройки доступа.
Регулярно проверяйте права доступа и конфигурации как на клиентской, так и на серверной сторонах, чтобы избежать подобных препятствий в будущем.