Установите системный атрибут для файлов, экспортируемых с помощью Samba

Установите системный атрибут для файлов, экспортируемых с помощью Samba

У меня есть сервер Linux, который экспортирует общие папки Samba в клиент Windows. Из оболочки Linux мне нужно установить системный атрибут. В Windows я бы запустил

attrib +s folder

Как это сделать на сервере Linux?

решение1

Атрибут system — это специфическая вещь Windows. В Linux его эквивалента нет.

Samba позволяет сопоставлять атрибуты Windows с разрешениями, существующими в Linux.. Однако это может быть разрушительно, поскольку разрешения Linux имеют другое значение. Поэтому системный и скрытый атрибуты не отображаются по умолчанию.

Чтобы сделать системные и скрытые атрибуты доступными, отредактируйте конфигурацию Samba ( /etc/samba/smb.confили аналогичную, точный путь зависит от вашего дистрибутива). Включите опции map systemи map hiddenв [data]разделе:


[data]
    map system = yes
    map hidden = yes

Затем атрибут system сопоставляется с битом разрешения на выполнение группой ( g+x), а атрибут hidden сопоставляется с битом разрешения на выполнение другими ( o+x). Таким образом, эквивалентом attrib +s some.fileв Windows является

chmod g+x some.file

на Linux-сервере.

Помните, что это означает, что если вы сделаете файл исполняемым в Linux ( chmod a+x some.file), это сделает его скрытым и системным в Windows. Поэтому убедитесь, что вы обычно не делаете файлы исполняемыми в Linux.

Связанный контент