Как отключить создание .DS_STORE файлов на сетевых ресурсах.
Наша любимая macOS при обращении к сетевым дискам или флешкам оставляет после себя скрытые файлы .DS_Store, .fseventsd, .Spotlight-V100, .TemporaryItems, .Trashes и файлы с префиксом «._».
Пользователи маков могут даже не подозревать о их существовании, так как файлы, имена которых начинаются с точки, являются скрытыми. А вот пользователи Windows (у кого включено отображение системных и скрытых файлов), видя подобное безобразие на файловом сервере, начинают нервно елозить, опасаясь подцепить что-то не хорошее.
Что такое .DS_Store, .fseventsd, .Spotlight-V100, TemporaryItems и .Trashes?
Попробую объяснить что это такое и откуда берется. Если совсем кратко, то эти скрытые файлы и папки выполняют вспомогательную функцию файловой системы macOS — запоминают размеры иконок, ведут журналы событий, содержат индексы поиска и прочие «плюшки». Остановимся чуть подробнее на каждом:
- .DS_Store — отвечает за хранение настроек вида папок (размер пиктограмм и сетки, вид, фоновый рисунок и так далее. Удалив этот файл, все настройки вида придут к настройкам по-умолчанию.
- Файлы с префиксом «._». Файловая система macOS использует оригинальную систему хранения данных: сам файл плюс ресурсы, которыми можно его сопроводить (добавить пиктограмму, цветную этикетку, комментарий Spotlight). У других файловых систем (FAT, NTFS, UFS, SMB, NFS) такой функции нет и, дабы не терять эти данные на внешних или сетевых дисках, Apple придумала механизм под названием «Apple Double», создавая для этих целей второй файл с префиксом ._. В общем, файлы с префиксом ._ на сетевых ресурсах и флешках можно смело удалять, никакой полезной нагрузки они там не несут.
- .fseventsd — журнал событий файловой системы, содержит данные о создание файлов и каталогов, модификации, удалении. На несистемных томах можно обойтись и без него.
- .Spotlight-V100 — база индексации системы поиска Spotlight, пожалуй самый объемный из скрытых системных каталогов. Располагается в корне каждого раздела диска. Удаление приводит к повторному переиндексированию.
- .TemporaryItems — служит для хранения временных объектов (по аналогии с temp в Windows). Удаление может негативно сказаться на работе программ, которые её используют.
- .Trashes — используется для временного хранения удалённых файлов. Удаление данной папки равносильно очистке корзины (не рекомендуется удалять на системных разделах).
Надеюсь, теперь стало понятнее, что ничего общего с вирусами данные файлы не имеют, а их удаление с сетевых ресурсов и флешек вполне безопасно. Осталось понять каким образом избавиться от их появления там, где это не нужно.
Как избавиться от создания файлов .DS_Store, .Spotlight-V100, .TemporaryItems и .Trashes на сетевых дисках?
Штатных настроек по отключению файлов типа .DS_Store на сетевых дисках в macOS не предусмотрено, хотя способ избавления от некоторых файлов и папок на SMB ресурсах всё-таки есть. Для этого в терминале нужно выполнить команду:
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
Правда тут есть одно "но". Данная настройка распространяется только на ту учетную запись, под которой выполнялась команда. Если требуется применить её ко всей системе, необходимо скопировать файл com.apple.desktopservices.plist из локальной библиотеки настроек в глобальную и переназначить права доступа:
sudo cp ~/Library/Prefrences/com.apple.desktopservices.plist /Library/Prefrences/ sudo chmod 644 /Library/Prefrences/com.apple.desktopservices.plist sudo chown root:wheel /Library/Prefrences/com.apple.desktopservices.plist
Восстановить настройки можно командой:
defaults delete com.apple.desktopservices DSDontWriteNetworkStores
Теперь можно рекурсивно очистить подключенный сетевой ресурс (со всеми подкаталогами) от файлов .DS_Store, .Spotlight-V100 и прочих, описанных ранее. Предполагается, что ресурс уже смонтирован в каталоге /Volumes.
Для этого в терминале выполняем команду:
dot_clean /Volumes/имя_ресурса
Запрет создания файлов .DS_Store средствами файлого сервера
Настраивать каждый компьютер с macOS в сети подобным образом, удовольствие весьма сомнительное. Предпочитаю решать проблему глобально, непосредственно на самом файловом сервере. Большинство сетевых накопителей управляются Linux или FreeBSD, предоставляя общие ресурсы по SMB-протоколу (на самом деле можно настроить и AFP, NFS, FTP).
Samba-сервер позволяет запретить создание ненужных файлов и папок c помощью директивы veto files. Она может быть установлена как глобально, так и отдельно для каждого расшаренного сетевого каталога. Пример конфига smb.conf:
[global]
veto files = /._*/.DS_Store/.Spotlight-V100/.TemporaryItems/Thumbs.db
delete veto files = yes
Чтобы обеспечить возможность контроля за содержимым файлового сервера на Windows, нам необходимо установить сам «Файловый сервер» и службу «Диспетчер ресурсов файлового сервера». После чего можно настроить запрет сохранения определенных типов файлов по маске в разделе «Управление блокировкой файлов – Фильтры блокировки».
Комментариев: 4
Статья информативная. Но у меня вопрос. Насколько сильно эти файлы мешают работе системы? Стоит ли вообще заморачиваться?
Если вы работаете на маке, то ничего удалять не нужно, а вот пользователей Windows их наличие сильно тревожит. В принципе можно не заморачиваться.
Ценно. а то уже начал ЕЛОЗИТЬ и разными утилитами сканировать ))))
Ввел команды, настроил самба-сервер, все вроде ок, но теперь макбук при редактировании файлов майкрософт офис в сетевой папке спамит созданием папок с названием редактируемого файла и чем-то типа хэша в конце имени папки, что хто такое и можно ли отключить любой спам файлами от мака?