У меня есть сервер 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.