
У меня есть домашний медиа-файловый сервер, к которому я подключил нового пользователя на Ubuntu 20.04 (через Samba). Файловый сервер представляет собой микро-ПК, выполняющий функции NAS.
Новому пользователю 9 лет, и он хотел бы получить права на чтение нескольких папок с детскими видео, ее собственных файлов и т. д. Я мог бы просто сделать ей локальную копию, но было бы лучше найти способ ограничить доступ со стороны гостя, а не на сервере.
Мне интересно оставить пользователю права root для общего ресурса Samba, но, по-видимому, ограничить его каким-то другим способом в пользовательском интерфейсе.
Есть ли намеренно ограниченный / только для чтения файловый менеджер, который я могу установить, который не имеет возможности удалять или изменять файлы? Или который может использовать внутренние разрешенные или запрещенные списки местоположений папок, без ссылки на разрешения пользователя?
Возможно ли (вероятно) удалить команды -rm и -mv из возможностей Thunar? Например, пользовательские действия могут быть использованы для отключения клавиши «удалить» (и ее нет в меню), но все еще остается возможность навигации по файловому серверу. В этом случае «родительский» каталог буквально является родительским каталогом
Существует ли какая-либо утилита типа родительского контроля, которая может ограничивать файловые менеджеры, а также (или вместо) доступ в Интернет?
В качестве альтернативы 1. это только для воспроизведения мультимедиа, так есть ли какое-либо клиентское приложение «Video Jukebox», которое не может перемещать/переименовывать/удалять?
Также в качестве альтернативы 1. Я мог бы потенциально настроить приложение медиасервера на файловом сервере, рядом с Samba - но это не кажется простым с пакетами, доступными для Puppy Linux.
===
Люди часто говорят: «Дети находят способы обойти эти вещи», но это подразумевает ряд предположений об уровнях способностей — помните, что мой обходной путь — сделать локальную копию.
спасибо хх Кэтти
решение1
Я нашел решение с использованием разрешений Samba, но все равно хотел бы узнать, есть ли какие-либо подходы на стороне клиента. (Я никогда о таких не слышал, но кто знает).
В моей ситуации есть существующий и работающий файловый сервер типа NAS, который совместно использует внешнюю файловую систему NTFS, где из Windows никогда не устанавливались разрешения для пользователей, запущен сервер Samba и клиентский ПК с Ubuntu, на котором есть взрослый пользователь («adultname») и ребенок («childname»)...
Для Samba NAS-box необходима возможность добавления имени пользователя Ubuntu ребенка в качестве пользователя. Например, через 'adduser childname'
имя пользователя ребенка добавлено на сервер, но его нельзя (легко) использовать для установки каких-либо разрешений на файлы 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 запись для общего ресурса взрослого пользователя должна иметь следующие строки:
список чтения = корень имявзрослых имяребенка
список записей = root adultname
в приведенном выше примере, хотя это и нелогично, имя пользователя ребенка должно быть в списке чтения общего ресурса Samba взрослого, поскольку его папка находится внутри него, и разрешения не просто «пересекаются», чтобы позволить ему читать свой общий ресурс, не имея возможности читать папку выше.
Установка browseable = no не так безопасна, как удаление разрешений acl/POSIX для этого пользователя на эти файлы, но в данном случае этого достаточно
в smb.conf в запись для общего ресурса дочернего пользователя необходимо добавить следующие строки:
список чтения = корень имявзрослых имяребенка
список записей = root adultname
В моем случае вышеуказанные изменения не повлияли на локальные ПК с Windows, получающие доступ к общим ресурсам.
Другие подходы могли бы заключаться в создании локальных копий всех файлов для пользователя-ребенка или в переформатировании общего жесткого диска в ext4 и организации структуры папок по-другому, но я нашел этот способ предпочтительнее, он делает то, что мне нужно, и использует контроль доступа Samba, за исключением acl.
Если я допустил какие-либо ошибки, я был бы благодарен, если бы вы об этом узнали. Если есть более простой способ ограничить пользователя в пользовательском интерфейсе Ubuntu, это тоже было бы полезно (так как не повредит добавить такие вещи сверху, если они там есть).