Рейтинг:1

Проблема с правами доступа к устройству RAID1

флаг tn

У меня возникли проблемы с домашним сервером (Ubuntu 20.04.3), который я установил.

Моя конфигурация: 1 Программный RAID1 (mdadm), монтируемый через fstab в /media/altocasa/NetDisk1

Я также активировал общий ресурс Samba, чтобы поделиться папкой на этом диске. Остальные папки на диске посвящены различным службам: -собственное облако -коробка передач -калибр -коди

Моя проблема в... разрешениях! Это потому, что даже если бы мне удалось смонтировать папку с группой «данные», которая содержит всех пользователей, которым необходимо чтение и запись на этом диске, и даже если права доступа установлены на drwxrwxrwx, каждая служба, которую я пытаюсь использовать, сообщает, что они не У вас недостаточно прав для записи в любую папку на диске.

Мой mdadm.conf

# mdadm.conf
#
# Пожалуйста, обратитесь к mdadm.conf(5) за информацией об этом файле.
#

# по умолчанию (встроено) сканировать все разделы (/proc/partitions) и все
# контейнеры для суперблоков MD. в качестве альтернативы укажите устройства для сканирования, используя
# подстановочные знаки при желании.
#DEVICE разделяет контейнеры

# автоматическое создание устройств со стандартными разрешениями Debian
СОЗДАТЬ владельца=корневая группа=режим диска=0777 авто=да

# автоматически помечать новые массивы как принадлежащие локальной системе
ДОМАШНИЙ <система>

# указать демону мониторинга, куда отправлять почтовые оповещения
ПОЧТА [email protected]

# определения существующих массивов MD

# Этот файл был автоматически сгенерирован в среду, 02 ноября 2016 г., 00:28:16 +0100
# по mkconf $Id$

МАССИВ /dev/md0 метаданные=1.2 запасные части=1 имя=altocasa.alto:0 UUID=abf104eb:c48a9898:e19f5e29:b810dc85

Мой фстаб

# /etc/fstab: информация о статической файловой системе.
#
# Используйте 'blkid' для вывода универсального уникального идентификатора
# устройство; это может использоваться с UUID= как более надежный способ именования устройств.
# это работает, даже если диски добавляются и удаляются. См. fstab(5).
#
# <файловая система> <точка монтирования> <тип> <опции> <дамп> <пароль>
# / был в /dev/mmcblk0p2 во время установки
UUID=0051b1ea-f028-4e24-852e-60f0e14deba5 / ошибки ext4=remount-ro 0 1
# /boot/efi был на /dev/mmcblk0p1 во время установки
UUID=3AC6-9820 /boot/efi vfat umask=0077 0 1
/swapfile нет swap sw 0 0
#точка монтирования рейда /dev/md0
#UUID=abf104eb:c48a9898:e19f5e29:b810dc85 /media/altocasa/NetDisk1 auto nosuid,nodev,nofail,silent,permissions,x-gvfs-show umask=000,utf8 0 0
#UUID=1EFCAB415200A4AB /media/altocasa/NetDisk1 auto nosuid,nodev,users,nofail,x-gvfs-show,uid=1000,gid=1001 0 0
#UUID=abf104eb:c48a9898:e19f5e29:b810dc85 /media/altocasa/NetDisk1 auto nosuid,rw,nodev,nofail,x-gvfs-show,users,uid=1000,gid=1001,разрешения,utf8 0 0
/dev/md0 /media/altocasa/NetDisk1 auto nosuid,rw,nodev,nofail,x-gvfs-show,users,uid=1000,gid=1001,разрешения,utf8 0 0

Мой Конфигурационный файл самбы

#
# Пример файла конфигурации для пакета Samba для Debian GNU/Linux.
#
#
# Это основной файл конфигурации Samba. Вы должны прочитать
# справочная страница smb.conf(5) для понимания перечисленных опций
# здесь. Samba имеет огромное количество настраиваемых параметров, большинство из которых 
# не показаны в этом примере
#
# Некоторые параметры, которые часто стоит настроить, были включены как
# закомментированные примеры в этом файле.
# - Когда такие опции комментируются знаком ";", предлагаемая настройка
# отличается от поведения Samba по умолчанию
# — при комментировании знаком "#" предлагаемая настройка используется по умолчанию.
# поведение Samba, но параметр считается важным
# достаточно, чтобы упомянуть здесь
#
# ПРИМЕЧАНИЕ. Всякий раз, когда вы изменяете этот файл, вы должны запускать команду
# "testparm", чтобы проверить, что вы не сделали никаких базовых синтаксических 
# ошибки. 

#======================= Глобальные настройки =======================

[Глобальный]
    сопоставление с гостем = плохой пользователь
    рабочая группа = рабочая группа
    регистрация = файл
    псевдонимы netbios = altoserver,altocasa
    параметры сокета = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=131072 SO_RCVBUF=131072
    имя netbios = AltoServer
    файл журнала = /var/log/samba/log.%m
    программа passwd = /usr/bin/passwd %u
    Серверная часть passdb = tdbsam
    по умолчанию = NetDisk1
    подчиняться ограничениям pam = да
    действие паники = /usr/share/samba/действие паники %d
    уровень ОС = 20
    автосервисы = NetDisk1
    максимальный размер журнала = 1000
    роль сервера = автономный сервер
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Повторно введите\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
    usershare разрешить гостям = да
    синхронизация паролей unix = да
    изменение пароля pam = да
    строка сервера = сервер %h (Samba, Ubuntu)
    

## Просмотр/идентификация ###

# Измените это на имя рабочей группы/NT-домена, частью которого будет ваш сервер Samba

# строка сервера эквивалентна полю NT Description

#### Сеть ####

# Конкретный набор интерфейсов/сетей для привязки
# Это может быть либо имя интерфейса, либо IP-адрес/сетевая маска;
# имена интерфейсов обычно предпочтительнее
; интерфейсы = 127.0.0.0/8 eth0

# Привязка только к именованным интерфейсам и/или сетям; вы должны использовать
# опция 'interfaces' выше, чтобы использовать это.
# Рекомендуется включить эту функцию, если ваша машина с Samba
# не защищен брандмауэром или сам является брандмауэром. Однако это
# Опция не может правильно обрабатывать динамические или нешироковещательные интерфейсы.
; связывать только интерфейсы = да



#### Отладка/Учет ####

# Это говорит Samba использовать отдельный файл журнала для каждой машины
# который соединяет

# Ограничение размера отдельных файлов журнала (в КиБ).

# Мы хотим, чтобы Samba записывалась только в /var/log/samba/log.{smbd,nmbd}.
# Добавьте syslog@1, если вы хотите, чтобы важные сообщения также отправлялись в syslog.

# Сделайте что-нибудь разумное при сбое Samba: отправьте администратору трассировку


####### Аутентификация #######

# Роль сервера. Определяет, в каком режиме будет работать Samba. Возможное
# значения: «автономный сервер», «рядовой сервер», «классический первичный сервер».
# контроллер домена", "классический резервный контроллер домена", "активный
# контроллер домена каталога". 
#
# Большинству людей нужен "автономный сервер" или "рядовой сервер".
# Запуск в качестве "контроллера домена Active Directory" потребует сначала
# запуск "samba-tool domain provision" для очистки баз данных и создания
# новый домен.


# Этот логический параметр определяет, будет ли Samba пытаться синхронизировать
# пароль с паролем SMB, когда зашифрованный пароль SMB в
# БД изменена.

# Чтобы синхронизация паролей Unix работала в системе Debian GNU/Linux, выполните следующие действия.
# параметры должны быть установлены (спасибо Ian Kahan <<[email protected]> за
# отправка правильного сценария чата для программы passwd в Debian Sarge).

# Это логическое значение определяет, будет ли PAM использоваться для смены пароля.
# при запросе SMB-клиентом вместо программы, указанной в
# 'программа паролей'. По умолчанию "нет".

# Эта опция управляет отображением неудачных попыток аутентификации
# к анонимным соединениям

########## Домены ###########

#
# Следующие настройки вступают в силу, только если 'роль сервера = основная
# классический контроллер домена', 'роль сервера = резервный контроллер домена'
# или установлен "вход в домен" 
#

# Указывает расположение пользовательского
# директория профиля с точки зрения клиента) Следующее
# требуется, чтобы общий ресурс [profiles] был установлен на сервере samba (см.
# ниже)
; путь входа = \%N\profiles\%U
# Другим распространенным вариантом является сохранение профиля в домашнем каталоге пользователя.
# (это значение по умолчанию для Samba)
# путь входа = \%N\%U\profile

# Следующий параметр вступает в силу, только если установлен «вход в домен»
# Указывает расположение домашнего каталога пользователя (от клиентского
# точка зрения)
; входной диск = H:
# вход домой = \%N\%U

# Следующий параметр вступает в силу, только если установлен «вход в домен»
# Указывает сценарий для запуска при входе в систему. Скрипт должен быть сохранен.
# в папке [netlogon]
# ПРИМЕЧАНИЕ. Должен храниться в формате файла 'DOS'.
; сценарий входа = logon.cmd

# Это позволяет создавать пользователей Unix на контроллере домена через SAMR
# труба РПК. Команда примера создает учетную запись пользователя с отключенным Unix.
# пароль; Пожалуйста, адаптируйтесь к вашим потребностям
; добавить пользовательский скрипт = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u

# Это позволяет создавать учетные записи машин на контроллере домена через 
# Труба САМР ПКР.  
# Далее предполагается, что в системе существует группа "machines"
; добавить скрипт машины = /usr/sbin/useradd -g машины -c "%u учетная запись машины" -d /var/lib/samba -s /bin/false %u

# Это позволяет создавать группы Unix на контроллере домена через SAMR
# труба РПК.  
; сценарий добавления группы = /usr/sbin/addgroup --force-badname %g

############ Разное ############

# Использование следующей строки позволяет настроить конфигурацию
# для каждой машины. %m заменяется именем netbios
# машины, которая подключается
; включить = /home/samba/etc/smb.conf.%m

# Некоторые значения по умолчанию для winbind (убедитесь, что вы не используете диапазоны
# для чего-то другого.)
; Конфигурация idmap * : backend = tdb
; Конфигурация idmap *: диапазон = 3000-7999
; Конфигурация idmap ВАШ ДОМЕН ЗДЕСЬ: backend = tdb
; Конфигурация idmap YOURDOMAINHERE: диапазон = 100000-999999
; оболочка шаблона = /bin/bash

# Настройте параметры общего доступа, чтобы пользователи без полномочий root могли совместно использовать папки
# с помощью команды net usershare.

# Максимальное количество пользователей. 0 означает, что совместное использование пользователей отключено.
# максимальное количество пользователей = 100

# Разрешить пользователям, которым предоставлены привилегии общего доступа, создавать
# общедоступные ресурсы, а не только аутентифицированные

#======================= Определения общих ресурсов =======================

# Раскомментируйте следующее (и настройте другие параметры ниже, чтобы они подходили)
# чтобы включить общий доступ к домашнему каталогу по умолчанию. Это разделит каждый
# домашний каталог пользователя как \server\username
;[дома]
; комментарий = Домашние каталоги
; просмотр = нет

# По умолчанию домашние каталоги экспортируются только для чтения. Изменить
# следующий параметр в 'no', если вы хотите иметь возможность писать им.
; только чтение = да

# Маска создания файла установлена ​​на 0700 из соображений безопасности. Если хотите
# создавать файлы с правами group=rw, установить следующий параметр равным 0775.
; создать маску = 0700

# Маска создания каталога установлена ​​на 0700 из соображений безопасности. Если хотите
# создать каталоги. с разрешениями group=rw установите для следующего параметра значение 0775.
; маска каталога = 0700

# По умолчанию к общим ресурсам \server\username может подключиться любой
# с доступом к серверу самбы.
# Раскомментируйте следующий параметр, чтобы убедиться, что только "имя пользователя"
# можно подключиться к \server\username
# Это может потребовать настройки при использовании внешних схем аутентификации
; действительные пользователи = %S

# Раскомментируйте следующее и создайте каталог netlogon для входа в домен
# (вам также необходимо настроить Samba для работы в качестве контроллера домена.)
;[вход в сеть]
; comment = Служба входа в сеть
; путь = /home/samba/netlogon
; гость хорошо = да
; только чтение = да

# Раскомментируйте следующее и создайте каталог профилей для хранения
# профили пользователей (см. параметр "logon path" выше)
# (вам также необходимо настроить Samba для работы в качестве контроллера домена.)
# Указанный ниже путь должен быть доступен для записи всем пользователям, чтобы их
# каталог профиля может быть создан при первом входе в систему
;[профили]
; комментарий = профили пользователей
; путь = /дом/самба/профили
; гость ок = нет
; просмотр = нет
; создать маску = 0600
; маска каталога = 0700

#[принтеры]
# комментарий = Все принтеры
# доступный для просмотра = нет
# путь = /var/spool/samba
# для печати = да
# гость ок = нет
# только чтение = да
# создать маску = 0700

# Клиенты Windows ищут это имя общего ресурса как источник загружаемых
# драйвера принтера
#[печать$]
# комментарий = Драйверы принтера
# путь = /var/lib/samba/printers
# доступный для просмотра = да
# только чтение = да
# гость ок = нет
# Раскомментируйте, чтобы разрешить удаленное администрирование драйверов печати Windows.
# Возможно, вам придется заменить 'lpadmin' на имя группы, к которой вы
# пользователи-администраторы являются членами.
# Обратите внимание, что вам также необходимо установить соответствующие разрешения Unix
# в каталог драйверов, чтобы эти пользователи имели права на запись в него
; список записи = корень, @lpadmin

 

    
[Делиться]
    путь = /media/altocasa/NetDisk1/Shared
    записываемый = да
    режим каталога = 777
    режим создания = 777
    общественность = да

Также, если я попытаюсь использовать chmod или chown в точке монтирования (/media/alto...), команда выполняется без каких-либо эффективных изменений.

лс диска:

drwxrwxrwx 1 altocasa data 4096 15 августа 2018 г. ДРАЙВЕРЫ
-rwxrwxrwx 1 данные altocasa 9401704 2 декабря 2019 г. DTTarget2.1.0.0072.exe
drwxrwxrwx 1 altocasa data 8192 14 апр 2021 ФИЛЬМЫ
-rwxrwxrwx 1 данные altocasa 12218104 22 марта 2021 г. «Fusion 360 Client Downloader.exe»
drwxrwxrwx 1 данные altocasa 4096 4 окт 16:03 ISO
-rwxrwxrwx 1 данные altocasa 1091 12 мая 2019 г. ObstacleAvoidV1.py
drwxrwxrwx 1 altocasa data 0 28 окт 2016 Programmi
drwxrwxrwx 1 altocasa data 4096 12 февраля 2017 г. «Информация о системном томе»
drwxrwxrwx 1 altocasa data 4096 8 апр 2021 Торрент
drwxrwxrwx 1 altocasa data 264 2 фев 20:03 БЕЗ СПИСКА
drwxrwxrwx 1 данные altocasa 4096 23 марта 2021 г. Vpn
drwxrwxrwx 1 данные altocasa 4096 27 января 15:01 html
drwxrwxrwx 1 данные altocasa 4096 27 января 15:02 openrsd

У меня буквально нет вариантов. Кто-нибудь знает, какого черта пользователь (www-data), который находится внутри группы данных, не может читать и писать в папке, принадлежащей данным?

Спасибо!

Рейтинг:1
флаг in

Скорее всего, это проблема, связанная с AppArmor. По умолчанию Апач не можем писать в места за пределами /вар/www независимо от того, какие разрешения www-данные аккаунт может иметь. Это делается для того, чтобы веб-сайт не мог записывать файлы в произвольные места на вашем сервере.

Здесь обычно есть два варианта:

  1. Установите устройство в место внутри /вар/www (легкий)
  2. Измените политики AppArmor для Apache, разрешив RW доступ к /медиа/altocasa/NetDisk1 (менее легкий)

Для многих своих серверов я выбираю первый вариант и подключаю запоминающее устройство к /var/www/файлы. Внутри этого места будут каталоги для каждого веб-сайта (NextCloud, RoundCube и т. д.).

FicusMacrophylla avatar
флаг tn
Спасибо! Переход на var/www решил эту проблему.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.