Назад | Перейти на главную страницу

Как установить бит архива файла, к которому предоставлен доступ самбе?

Файл размещен на сервере самбы (18.04). Файл содержит резервную копию этого 18.04-сервер. Некоторому инструменту резервного копирования на базе MS (на сервере Windows) требуется так называемый набор битов архива для резервного копирования этого конкретного файла. Если не установлен, этот файл игнорируется во время резервного копирования из 18.04-сервер к windows-сервер.

Я загружаю свою общую папку через локальную файловую систему на хосте samba /var/mySharedFolder/. Какой бы файл я ни поместил в локальную папку, он показан в общей папке samba, введенной другим windows-сервер через //18.04-server/mySharedFolder.

Как установить бит архива из 18.04-сервер сторону загруженного файла?

По умолчанию Samba сохраняет атрибут файла архива (из файловой системы DOS / Windows) в файловой системе Linux.

Вот подробное объяснение сохранение атрибута архива.

Это делается путем установки исполняемого бита для владельца, когда файл имеет атрибут архива; например:

-rw-rw----  1 nobody nogroup    0 Nov 26 11:21 file_no_arch.txt
-rwxrw----  1 nobody nogroup    0 Nov 26 11:55 smb_crt.txt

Как видите, у файла "file_no_arch.txt" бит исполняемого файла отключен, и когда вы просматриваете его в Windows, он скажет, что это не архив. Файл "smb_crt.txt" имеет этот бит, поэтому он также будет иметь атрибут архива.

Если файлы, загруженные из окна окна, не имеют установленного атрибута архива - проверьте конфигурацию Samba (/etc/samba/smb.conf) - в частности, две вещи:

  1. убедитесь, что в файле нет строки «map archive = no». Если он есть, просто удалите или прокомментируйте его.
  2. проверьте раздел [mySharedFolder] - если есть «create mask = 0600», измените его на «create mask = 0700» или 0755, чтобы дать другим пользователям Linux возможность просматривать файлы.

Для тестирования я установил Debian 9 и установил Samba, как описано Вот. Другой системой, использованной для тестирования, был Windows Server 2012.

Если вы просто хотите заставить окно Windows думать, что у файла есть атрибут архива, вы можете просто ввести:

chmod +x my_backup_file.zip

И если вы используете какой-то сценарий для создания этого файла резервной копии, просто введите в него эту команду, и каждый файл будет иметь этот бит.

Мой пример файла smb.conf:

[global]
   workgroup = WORKGROUP
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   server role = standalone server
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user
   usershare allow guests = yes
[homes]
   comment = Home Directories
   browseable = no
   read only = yes
   create mask = 0700
   directory mask = 0700
   valid users = %S
[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no
   read only = yes
   create mask = 0700
[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no
[homes]
   comment = Home Directories
   browseable = yes
   read only = no
   create mask = 0700
   directory mask = 0700
   valid users = %S
[public]
  comment = public anonymous access
  path = /var/samba/
  browsable =yes
  create mask = 0760
  directory mask = 0771
  writable = yes
  guest ok = yes