Я нашел решение с использованием разрешений Samba, но все же хотел бы знать, есть ли какие-либо подходы на стороне клиента. (никогда о них не слышал, но кто знает).
В моей ситуации, когда есть существующий + работающий файловый сервер, похожий на NAS, совместно использующий внешнюю файловую систему NTFS, где никакие пользовательские разрешения никогда не устанавливались из Windows, работает сервер Samba и клиентский ПК Ubuntu со взрослым пользователем (« взрослое имя") и дочерний пользователь ("дочернее имя")...
Сетевому хранилищу Samba требуется возможность добавления имени пользователя Ubuntu в качестве пользователя. Например. через «дочернее имя пользователя adduser»
имя пользователя ребенка добавляется на сервер, но его нельзя (легко) использовать для установки каких-либо разрешений для файлов acl/Linux на диске NTFS, мне просто нужно было, чтобы оно было там для Samba
На сервере после создания пользователя его необходимо добавить в Samba, а также включить в Samba. Команды для этого были «smbpasswd -a childname», а затем «smbpasswd -e childname».
пока они работали нормально до добавления дочернего пользователя (есть много руководств), строка /etc/fstab, которую сервер использует для монтирования своего жесткого диска, не так важна, и ее можно оставить прежней.
строка /etc/fstab, которую клиент использует для монтирования общего ресурса Samba, также не так важна, нет необходимости добавлять новые настройки для acl, или fmask= и dmask=, или file_mode= и folder_mode=, или какие-либо дополнительные учетные данные файл, который нужно создать
нет необходимости пытаться создать файл сопоставления пользователей, чтобы включить права доступа к файлам acl/POSIX на диске ntfs (это может быть возможно в качестве подхода)
в своих соответствующих файлах etc/fstab сервер может использовать ntfs в качестве типа файла, но клиент должен использовать cifs для автоматического монтирования
на общем жестком диске лучше не хранить папку дочернего пользователя в папке взрослого пользователя или чтобы папка взрослого была корнем диска (в моем случае я не мог легко избежать этих вещей)
простой вид разрешений, необходимых для добавления дочернего пользователя без прав на запись и с ограниченным доступом на чтение, можно управлять внутри Samba, редактируя smb.conf
в smb.conf глобальные настройки, необходимые для добавления этой строки: -
просмотр = нет
в smb.conf запись для общего ресурса взрослого пользователя должна была добавить следующие строки:
список чтения = корень взрослое имя дочернее имя
список записи = корневое имя взрослого
в приведенном выше, хотя это и противоречит здравому смыслу, имя пользователя ребенка должно быть в списке чтения общего ресурса samba взрослого, поскольку его папка находится внутри него, и разрешения не просто «переходят», чтобы позволить им читать свой общий ресурс, не имея при этом возможности чтобы прочитать папку выше
настройка browserable = no небезопасна, как удаление разрешений файла acl/POSIX от этого пользователя для этих файлов, но в этом случае этого достаточно.
в smb.conf запись для общего ресурса дочернего пользователя должна была добавить следующие строки:
список чтения = корень взрослое имя дочернее имя
список записи = корневое имя взрослого
в моем случае вышеуказанные изменения не повлияли на локальные ПК с Windows, получающие доступ к общим ресурсам.
Другие подходы могли заключаться в том, чтобы сделать локальные копии всех файлов для дочернего пользователя или переформатировать общий жесткий диск как ext4 и организовать расположение папок по-другому, но я нашел этот способ предпочтительнее, он делает то, что я хотел, и использует Samba. контроль доступа короче acl
Если я сделал какие-либо ошибки, я был бы признателен узнать. Если есть более простой способ ограничения пользователя в пользовательском интерфейсе Ubuntu, это тоже было бы полезно (поскольку не помешает добавить такие вещи сверху, если они там есть).