Дозволи для файлів Samba: Linux Server, Mac Client


1

У мене працює Samba на сервері Linux і доступ до файлів з клієнта Mac. У мене немає проблем з доступом до файлів через Samba, за винятком того, що на Mac всі файли відображаються з набором дозволів виконуваного файлу: rwx------. На сервері файли не виконуються: rw-rw----.

Чи встановлені права доступу, показані клієнтом, на сервері або на клієнті? Як я можу:

  1. примусово до всіх файлів rw------- на клієнті, або
  2. передавати дозволи від сервера на клієнта?

Я хочу уникнути ACL, якщо можу.
Neil

Відповіді:


3

Дозволи встановлюються на сервері і на 100% залежить від ACL.

Ви маєте два варіанти, щоб спробувати вирішити проблему.

Перший варіант (який може краще відповідати вашим потребам): спробуйте підключити / підібрати ACL для Windows і Unix.

Відредагуйте сервер SMB smb.conf і додайте ці параметри до [global] розділ:

[global]
nt acl support = yes
acl map full control = no

Два вищевказані параметри призведуть до спроб сервера SMB зіставити / підібрати ACL для Windows і Unix.

Від smb.conf manpage:

nt acl support (S)

       This boolean parameter controls whether smbd(8) will attempt to map
       UNIX permissions into Windows NT access control lists. The UNIX
       permissions considered are the traditional UNIX owner and group
       permissions, as well as POSIX ACLs set on any files or directories.

повний контроль acl карти (S)

       This boolean parameter controls whether smbd(8) maps a POSIX ACE
       entry of "rwx" (read/write/execute), the maximum allowed POSIX
       permission set, into a Windows ACL of "FULL CONTROL". If this
       parameter is set to true any POSIX ACE entry of "rwx" will be
       returned in a Windows ACL as "FULL CONTROL", is this parameter is
       set to false any POSIX ACE entry of "rwx" will be returned as the
       specific Windows ACL bits representing read, write and execute.

Другий варіант (обхідний шлях): встановіть конкретні списки керування доступом для кожної з ваших акцій.

У двох словах параметри RWX (читання, запис і виконання) визначаються цими еквівалентними параметрами SMB:

  • writeable = no еквівалентно R (лише читання)
  • writeable = yes еквівалентно RW (читання та запис)
  • acl allow execute always = true або acl allow execute always = yes еквівалентно X (виконати)

Щоб встановити права доступу до файлів / папок для всіх ваших папок, необхідно редагувати сервер smb.conf файл, а потім додати це глобальне налаштування:

[global]
acl allow execute always = false
guest ok = no
writeable = yes
available = yes
browseable = yes
printable = no
locking = yes

... який за замовчуванням примусить всі ваші спільні папки заборонити виконання файлів ( acl allow execute always = false ), заборонити доступ для гостей ( guest ok = no ), дозволяють читати і редагувати / (пере) писати доступ до файлів і папок ( writeable = yes ), надайте доступ до всіх ваших акцій віддаленим (клієнтським) користувачам ( available = yes ) і перегляньте доступні акції ( browseable = yes ), заборонити використання своїх акцій як папки каталогів для друку ( printable = no ), і примусово заблокувати ваші акції, якщо клієнт надсилає такий запит на сервер SMB ( locking = yes ).

Від smb.conf manpage:

acl дозволяють виконувати завжди (S)

       This boolean parameter controls the behaviour of smbd(8) when
       receiving a protocol request of "open for execution" from a Windows
       client. With Samba 3.6 and older, the execution right in the ACL
       was not checked, so a client could execute a file even if it did
       not have execute rights on the file. In Samba 4.0, this has been
       fixed, so that by default, i.e. when this parameter is set to
       "False", "open for execution" is now denied when execution
       permissions are not present.

       If this parameter is set to "True", Samba does not check execute
       permissions on "open for execution", thus re-establishing the
       behaviour of Samba 3.6. This can be useful to smoothen upgrades
       from older Samba versions to 4.0 and newer. This setting is not
       meant to be used as a permanent setting, but as a temporary relief:
       It is recommended to fix the permissions in the ACLs and reset this
       parameter to the default after a certain transition period.

Примітка: якщо acl allow execute always = false не працює, спробуйте acl allow execute always = no.

гостьовий OK (S)

       If this parameter is yes for a service, then no password is
       required to connect to the service. Privileges will be those of the
       guest account.

       This parameter nullifies the benefits of setting restrict anonymous
       = 2

       See the section below on security for more information about this
       option.

доступний для запису (S)

       Inverted synonym for read only.

тільки читання (S)

       An inverted synonym is writeable.

       If this parameter is yes, then users of a service may not create or
       modify files in the service's directory.

       Note that a printable service (printable = yes) will ALWAYS allow
       writing to the directory (user privileges permitting), but only via
       spooling operations.

доступний (S)

       This parameter lets you "turn off" a service. If available = no,
       then ALL attempts to connect to the service will fail. Such
       failures are logged.

огляд (S)

       This controls whether this share is seen in the list of available
       shares in a net view and in the browse list.

для друку (S)

       If this parameter is yes, then clients may open, write to and
       submit spool files on the directory specified for the service.

       Note that a printable service will ALWAYS allow writing to the
       service path (user privileges permitting) via the spooling of print
       data. The read only parameter controls only non-printing access to
       the resource.

блокування (S)

       This controls whether or not locking will be performed by the
       server in response to lock requests from the client.

       If locking = no, all lock and unlock requests will appear to
       succeed and all lock queries will report that the file in question
       is available for locking.

       If locking = yes, real locking will be performed by the server.

       This option may be useful for read-only filesystems which may not
       need locking (such as CDROM drives), although setting this
       parameter of no is not really recommended even in this case.

       Be careful about disabling locking either globally or in a specific
       service, as lack of locking may result in data corruption. You
       should never need to set this parameter.

& gt; за замовчуванням змушувати всі спільні папки забороняти виконання файлів (ACL дозволяє виконати завжди = false) Я скептично ставлюся до цієї інтерпретації. Це суперечить назві опції та опису.
Dogweather
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.