Задача: Хочу в офисной сети на системе Ubuntu 22.04 Server получить возможность монтировать ссылку на DFS ресурсы которые у меня в обслуживаемой организации имеются. Даже больше которые я внедрил и внедряю.

у меня в офисной сети развернут сервис DFS который ссылки до ресурсов представляет, как:

\\polygon.local\Applications
    Deploy
    Distr
\\polygon.local\Database
    db2024
\\polygon.local\Users
    Archives
    Documents
    Forwarded folder 2
    ForwardedFolders3
    Mailboxpst
    Profile2
    Profile3

это очень удобно, ну так вот как мне с Ubuntu 22.04 Server подмонтировать к примеру ресурс \\polygon.local\Application\Distr ?

Шаг №1: Проверяю, что с Ubuntu 22.04 Server вижу polygon.local:

ekzorchik@srv-us2204a:~$ ping polygon.local -c 1
PING polygon.local (192.168.9.2) 56(84) bytes of data.
64 bytes from srv-dc01.polygon.local (192.168.9.2): icmp_seq=1 ttl=128 time=0.384 ms
--- polygon.local ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.384/0.384/0.384/0.000 ms

ekzorchik@srv-us2204a:~$ ping polygon.local -c 1
PING polygon.local (192.168.9.2) 56(84) bytes of data.
64 bytes from srv-dc01.polygon.local (192.168.9.2): icmp_seq=1 ttl=128 time=0.409 ms
--- polygon.local ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.409/0.409/0.409/0.000 ms
ekzorchik@srv-us2204a:~$

Отлично, видимость присутствует.

Шаг №2: Попробую через smbclient определить какие ресурсы доступы:

ekzorchik@srv-us2204a:~$ sudo apt-get install -y smbclient
ekzorchik@srv-us2204a:~$ sudo smbclient -W POLYGON -U ekzadm -L \\\\192.168.9.2
WARNING: The "syslog" option is deprecated
Enter POLYGON\ekzadm's password:
        Sharename       Type      Comment
        ---------       ----      -------
        ADMIN$          Disk      Remote Admin
        Applications    Disk
        C$              Disk      Default share
        database        Disk
        IPC$            IPC       Remote IPC
        NETLOGON        Disk      Logon server share
        SYSVOL          Disk      Logon server share
        Users           Disk
Reconnecting with SMB1 for workgroup listing.
Connection to 192.168.9.2 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
Failed to connect with SMB1 -- no workgroup available
ekzorchik@srv-us2204a:~$

Вижу, что доступны Namespace: Applications, database, Users

Шаг №3: Устанавливаю пакет cifs-utils:

ekzorchik@srv-us2204a:~$ sudo apt-get install -y cifs-utils

Шаг №4: Создаю в системе Ubuntu 22.04 Server каталог куда буду монтировать DFS ссылку:

ekzorchik@srv-us2204a:~$ sudo mkdir /media/distr

Шаг №5: Если подключать не DFS ссылку, а на прямую к ресурсу где расшарена папка с соответствующими доступами:

ekzorchik@srv-us2204a:~$ sudo mount -t cifs //srv-cons.polygon.local/Distr /media/distr -v -o username=ekzadm,password=Aa1234567aA,workgroup=POLYGON.LOCAL,uid=$(id -u),gid=$(id -g),iocharset=utf8,vers=3.0
mount.cifs kernel mount options: ip=192.168.9.63,unc=\\srv-cons.polygon.local\Distr,iocharset=utf8,vers=3.0,uid=1000,gid=1000,user=ekzadm,domain=POLYGON.LOCAL,pass=********
ekzorchik@srv-us2204a:~$

и под текущим пользователем, т.е. под пользователем Ubuntu 22.04 Server я могу взаимодействовать с ресурсом:

ekzorchik@srv-us2204a:~$ ls -l /media/distr | grep txt
-rwxr-xr-x 1 alektest alektest     0 May 29 14:48 1.txt
-rwxr-xr-x 1 alektest alektest     0 May 29 14:50 2.txt
ekzorchik@srv-us2204a:~$

Это хорошо.

Отключаюсь

ekzorchik@srv-us2204a:~$ sudo umount /media/distr

Шаг №6: А если нужно вместо прямого подключения все же смонтировать DFS ссылку:

ekzorchik@srv-us2204a:~$ nano pw
user=ekzadm
password=Aa1234567aA
domain=polygon.local

После нажимаем Ctrl + O, Enter – Ctrl + X (для выхода из редактора)

ekzorchik@srv-us2204a:~$ sudo apt-cache show keyutils | grep Version
Version: 1.5.9-9.2ubuntu2.1
Version: 1.5.9-9.2ubuntu2
ekzorchik@srv-us2204a:~$
ekzorchik@srv-us2204a:~$ sudo apt-get install -y keyutils
ekzorchik@srv-us2204a:~$ sudo nano /etc/request-key.conf
create  dns_resolver *          *               /sbin/key.dns_resolver %k
create  user    debug:*         negate          /bin/keyctl negate %k 30 %S
create  user    debug:*         rejected        /bin/keyctl reject %k 30 %c %S
create  user    debug:*         expired         /bin/keyctl reject %k 30 %c %S
create  user    debug:*         revoked         /bin/keyctl reject %k 30 %c %S
create  user    debug:loop:*    *               |/bin/cat
create  user    debug:*         *               /usr/share/keyutils/request-key-debug.sh %k %d %c %S
create  cifs.spnego     *       *               /usr/sbin/cifs.upcall -c %k
create  dns_resolver    *       *               /usr/sbin/cifs.upcall %k
negate  *       *               *               /bin/keyctl negate %k 30 %S

После нажимаем Ctrl + O, Enter – Ctrl + X (для выхода из редактора)

После сохраняю внесенные изменения

Подключаю DFS ссылку в Ubuntu 22.04 Server:

ekzorchik@srv-us2204a:~$ sudo mount.cifs  //polygon.local/applications/Distr /media/distr -v -o cred=/home/alektest/pw,uid=$(id -u),gid=$(id -g),iocharset=utf8,vers=3.0
Credential formatted incorrectly
mount.cifs kernel mount options: ip=192.168.9.2,unc=\\polygon.local\applications,iocharset=utf8,vers=3.0,uid=1000,gid=1000,user=ekzadm,prefixpath=Distr,pass=********
ekzorchik@srv-us2204a:~$ df -h | grep distr
//polygon.local/applications/Distr  500G  400G  100G  81% /media/distr
ekzorchik@srv-us2204a:~$

Проверяю что могу по пути подмапленного записывать файлы:

ekzorchik@srv-us2204a:~$ touch /media/distr/3.txt
ekzorchik@srv-us2204a:~$ ls -l /media/distr/ | grep txt
-rwxr-xr-x 1 alektest alektest     0 May 29 14:48 1.txt
-rwxr-xr-x 1 alektest alektest     0 May 29 14:50 2.txt
-rwxr-xr-x 1 alektest alektest     0 May 29 15:09 3.txt
ekzorchik@srv-us2204a:~$

Отключаюсь

ekzorchik@srv-us2204a:~$ sudo umount /media/distr

Ура, получилось.

Наконец-таки я закрыл задачу, как с Ubuntu 22.04 Server взаимодействовать с доменными ресурсами.

На этом пока все, с уважением автор блога Олло Александр aka ekzorchik.