У меня есть Samba-сервер (nas01
), который представляет собой акцию под названием downloads
. Разрешения на этот общий ресурс следующие:
root@nas01:/mnt/storage/downloads# ls -al
drwxrwxr-x+ 9 phil samba-users 4096 Aug 16 00:09 .
drwxrwxr-x 3 phil samba-users 4096 Aug 13 22:16 ..
drwxrwx---+ 231 phil samba-users 12288 Aug 15 00:56 Movies
drwxrwx---+ 42 phil samba-users 4096 Aug 15 23:15 TV
Пользователи, используемые для удаленного доступа к общему ресурсу Samba, являются локальными пользователями на сервере Samba и все входят в группу samba-users. Локально, на самом сервере Samba, эти пользователи могут получить доступ к файлам:
root@nas01:/mnt/storage/downloads# sudo -u plex ls TV | wc -l
40
Когда общий ресурс смонтирован на другом сервере Linux (plex01
), вот как это выглядит:
root@plex01:/mnt/downloads# ls -al
drwxrwxr-x+ 9 phil 1001 0 Aug 15 23:09 .
drwxr-xr-x 3 root root 4096 Aug 18 20:09 ..
drwxrwx---+ 231 phil 1001 0 Aug 14 23:56 Movies
drwxrwx---+ 42 phil 1001 0 Aug 15 22:15 TV
Местный root
пользователь может получить к нему доступ:
root@plex01:/mnt/downloads# ls TV | wc -l
40
Но местный plex
пользователь не может:
root@plex01:/mnt/downloads# sudo -u plex ls TV
ls: cannot open directory TV: Permission denied
Если я создам локальную группу с GID 1001
и добавить plex
пользователь к нему ... тогда он может получить доступ к файлам.
root@plex01:/mnt/downloads# ls -al
drwxrwxr-x+ 9 phil plexrunner 0 Aug 15 23:09 .
drwxr-xr-x 3 root root 4096 Aug 18 20:09 ..
drwxrwx---+ 231 phil plexrunner 0 Aug 14 23:56 Movies
drwxrwx---+ 42 phil plexrunner 0 Aug 15 22:15 TV
root@plex01:/mnt/downloads# groups plex
plex : plex plexrunner
root@plex01:/mnt/downloads# sudo -u plex ls TV | wc -l
40
Итак, вопрос в том ... как правильно управлять этими разрешениями?
У вас должен быть способ сопоставления идентификаторов (пользователя или группы) на сервере и клиенте. Если вы не находитесь в среде, где используется сервер каталогов и тому подобное, вы можете назначить владение через группу. Экспортируйте папку с набором групп для самба-пользователей. Убедитесь, что GID для группы одинаков на сервере и клиенте, создав одну и ту же группу на всех клиентах и убедившись, что пользователи являются членами этой группы. Установите разрешения для папки и всего содержимого группы.