Монтирование общего ресурса Samba / CIFS в Linux «правильно»

1070
ewhac

Проблема в том, что я не могу получить файлы на общем ресурсе CIFS для отображения правильных разрешений на клиенте Linux без принудительной vers=1.0установки параметров монтирования.

Сервер является системой FreeNAS под управлением Samba 4.7.0. Он в основном работает в автономном режиме / режиме рабочей группы; нет контроллера AD / домена, и я не хочу его, если я могу избежать этого.

Клиент представляет собой нестабильную систему Debian Sid с компонентами Samba v4.7.4 и cifs-utilsверсией 6.8-1.

Текущее заклинание монтирования выглядит примерно так:

sudo mount.cifs -o 'vers=1.0,username=me,uid=me,gid=me,credentials=[[filename]]' //freenas/me $HOME/mnt 

(Вышеуказанное обычно выполняется автоматическими, но это не имеет отношения к делу.)

После этого в mtab появится следующая запись:

//freenas/me on /home/me/mnt type cifs (rw,relatime,vers=1.0,cache=strict,username=me,domain=,uid=1000,forceuid,gid=1000,forcegid,addr=X.X.X.X,soft,unix,posixpaths,serverino,mapposix,acl,rsize=1048576,wsize=65536,echo_interval=60,actimeo=1) 

... И наш тестовый каталог обнаруживается со следующими режимами / разрешениями:

me@linuxclient:~$ ls -al mnt/testdir/ total 3 drwxr-xr-x+ 2 me me 0 Apr 21 00:10 . drwxr-xr-x+ 5 me me 0 Apr 21 00:07 .. -r--r--r--+ 1 me me 0 Apr 21 00:09 R--R--R-- -rw-r--r--+ 1 me me 0 Apr 21 00:10 RW-R--R-- -rwx------+ 1 me me 0 Apr 21 00:08 RWX------ -rwxr-xr-x+ 1 me me 0 Apr 21 00:08 RWXR-XR-X -r-xr-xr-x+ 1 me me 0 Apr 21 00:09 R-XR-XR-X 

Это именно то, чего я ожидаю и хочу. Тем не менее, монтирование форсирует SMB версии 1.0, которая является старой и поврежденной. Однако, если я не укажу явно vers=1.0, то это произойдет:

//freenas/me on /home/me/mnt type cifs (rw,relatime,vers=default,cache=strict,username=me,domain=,uid=1000,forceuid,gid=1000,forcegid,addr=X.X.X.X,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)   me@linuxclient:~$ ls -al mnt/testdir/ total 5120 drwxr-xr-x 2 me me 0 Apr 21 00:10 . drwxr-xr-x 2 me me 0 Apr 21 00:07 .. -rwxr-xr-x 1 me me 0 Apr 21 00:09 R--R--R-- -rwxr-xr-x 1 me me 0 Apr 21 00:10 RW-R--R-- -rwxr-xr-x 1 me me 0 Apr 21 00:08 RWX------ -rwxr-xr-x 1 me me 0 Apr 21 00:08 RWXR-XR-X -rwxr-xr-x 1 me me 0 Apr 21 00:09 R-XR-XR-X 

Что-то вставлено file_mode=0755,dir_mode=0755в параметры монтирования, и получающиеся разрешения равны 0x755 для всех файлов, независимо от их фактических разрешений, что, очевидно, неверно. Я еще не выяснил, откуда появляются эти нежелательные варианты.

Поскольку моя конечная цель состоит в том, чтобы несколько одновременно работающих пользователей подключались к своим домашним каталогам со своими учетными данными, я начал экспериментировать с этим mountзаклинанием, а именно с multiuserвариантом:

sudo mount.cifs -o "user=me,noperm,multiuser" //freenas/me $HOME/mnt   me@linuxclient:~$ ls -al mnt/testdir/ total 5120 drwxr-xr-x 2 me me 0 Apr 21 00:10 . drwxr-xr-x 2 me me 0 Apr 21 00:07 .. -rwxr-xr-x 1 me me 0 Apr 21 00:09 R--R--R-- -rwxr-xr-x 1 me me 0 Apr 21 00:10 RW-R--R-- -rwxr-xr-x 1 me me 0 Apr 21 00:08 RWX------ -rwxr-xr-x 1 me me 0 Apr 21 00:08 RWXR-XR-X -rwxr-xr-x 1 me me 0 Apr 21 00:09 R-XR-XR-X 

Все еще не так. Однако, когда я добавляю опцию монтирования cifsacl:

sudo mount.cifs -o "user=me,noperm,multiuser,cifsacl" //freenas/me $HOME/mnt 

И введите мои учетные данные для сервера с помощью cifscredsкоманды, я получаю эти результаты:

//freenas/me on /home/me/mnt type cifs (rw,relatime,vers=default,cache=strict,multiuser,domain=,uid=0,noforceuid,gid=0,noforcegid,addr=X.X.X.X,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,cifsacl,noperm,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)   me@linuxclient:~$ ls -al mnt/testdir/ total 5120 drwxr-xr-x 2 root root 0 Apr 21 00:10 . drwxr-xr-x 2 root root 0 Apr 21 00:07 .. -r--r--r-- 1 root root 0 Apr 21 00:09 R--R--R-- -rw-r--r-- 1 root root 0 Apr 21 00:10 RW-R--R-- -rwx------ 1 root root 0 Apr 21 00:08 RWX------ -rwxr-xr-x 1 root root 0 Apr 21 00:08 RWXR-XR-X -r-xr-xr-x 1 root root 0 Apr 21 00:09 R-XR-XR-X 

Несмотря на то, что параметры file_mode=0755,dir_mode=0755все еще вводятся, разрешения теперь отображаются правильно. Но теперь UID неверны, и все выглядит так, как будто он принадлежит root. На самом деле я могу создавать, изменять и удалять файлы в общем ресурсе, но они отображаются как корневые. Я знаю, что должно быть отображение, выполненное cifs.idmapи winbindd, но я не выяснил, как именно это делается или как его настроить.

Я бы предпочел не продолжать использовать vers=1.0Kluge; Я бы предпочел сделать это правильно. Есть намеки на то, что мне не хватает?

3

0 ответов на вопрос