Как смонтировать общий ресурс cifs с Linux-сервера SMB3?

Есть два способа достичь этого.

  1. Проверить, не трогали ли файл в течение 2 или 3 минут после его записи. Таким образом, вы можете сказать, что файл полностью записан или нет. Чтобы проверить, был ли файл записан как минимум за 3 минуты до:

    find /testfolder/filename.* -type f -mmin +3
    

    Вы можете использовать цикл for, если у вас более одного файла:

    for f in $(find /testfolder/filename.* -type f -mmin +3)
    do
      mv filename.* to destination
    cat../Test_Data/local_enc* >../Test_Data/All_Enc_Coords.txt
    done
    
  2. Если у вас есть трейлер в файле, вы можете прочитать запись трейлера, а затем решить, когда каталогизировать файл.

1
28.03.2020, 04:26
1 ответ

Решение найдено по крайней мере для kerberos и версии 3.1.1

Предположим, моего пользователя зовут «пино». Сначала мы должны создать на сервере AD (Windows, Samba4, другие.. )keytab для поддельного пользователя "cifs1".

ssh samba4.ad.server
samba-tool user delete cifs1
samba-tool user create cifs1 --random-password
samba-tool spn add cifs/yourclient.fqdn cifs1
samba-tool domain exportkeytab cifs1.keytab --principal=cifs/yourclient.fqdn

затем редактируем файл /etc/request.key.conf и добавляем эти две строки

create  cifs.spnego    *        *               /usr/sbin/cifs.upcall %k
create  dns_resolver   *        *               /usr/sbin/cifs.upcall %k

Затем мы безопасно скопируем keytab с рекламного сервера на наш клиент. и слить с keytab krb5.keytab на клиенте

(echo rkt cifs1.keytab ; echo wkt /etc/krb5.keytab )|ktutil

Пользователь "pino" аутентифицирован, но из соображений безопасности мы повторяем kinit

echo passofpino|kinit

Теперь, наконец, мы можем смонтировать нашу общую папку с версией = 3.1.1, самая важная часть — «cruid», иначе произойдет сбой

sudo mount.cifs -vvv //client.fqdn/Publicshare -o sec=krb5,user=pino,cruid=pino,vers=3.1.1 /mnt

возврат

mount.cifs kernel mount options: ip=192.168.0.2,unc=\\client.fqdn\Publicshare,sec=krb5,vers=3.1.1,cruid=10003,user=pino,pass=********

Если я попробую обычный пароль вместо krb5, вернусь ошибка, но с kerberos более безопасно, так что это не проблема. Если вы хотите написать в общий доступ, строка

sudo mount.cifs -vvv //client.fqdn/Publicshare -o sec=krb5,user=pino,cruid=pino,vers=3.1.1,forceuid,forcegid,uid=$(id -u pino),gid=$(id -g pino) /mnt
2
19.03.2021, 02:31

Теги

Похожие вопросы