3

Проблема в том, что я не могу получить файлы на общем ресурсе 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.0 клуге; Я бы предпочел сделать это правильно. Есть намеки на то, что мне не хватает?

0