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

Установить основную группу файлов или каталогов в общей папке Samba из Windows

Укороченная версия:

У меня на ресурсе Samba такая ситуация:

$ ls -lha
total 12K
drwxr-xr-x  3 hka  Domain Users 4.0K Jan 11 17:07 .
drwxrwxrwt 19 root root         4.0K Jan 11 17:06 ..
drwxr-xr-x  2 hka  Domain Users 4.0K Jan 11 17:07 dir A
-rw-r--r--  1 hka  Domain Users    0 Jan 11 17:07 file A

Как я могу изменить это на следующее, используя только клиент Windows SMB / CIFS (можно использовать сторонние приложения)

$ ls -lha
total 12K
drwxr-xr-x  3 hka  Domain Users 4.0K Jan 11 17:07 .
drwxrwxrwt 19 root root         4.0K Jan 11 17:06 ..
drwxr-xr-x  2 hka  ntpoweruser  4.0K Jan 11 17:07 dir A
-rw-r--r--  1 hka  ntpoweruser     0 Jan 11 17:07 file A

Обоснование и справочная информация

Я использую списки ACL POSIX для общих ресурсов Samba. Вместе с acl group control для Samba это позволяет мне делегировать управление разрешениями разным пользователям в зависимости от членства в группах.

Дело в том, что когда я создаю новый файл в общей папке Samba, я не могу указать его основную группу (ту, которая дает разрешение на изменение своих разрешений). Он настроен на мою основную группу (Пользователи домена) или группу, установленную с помощью force group вариант в smb.conf поделиться определением.

Удаление всех групп в окнах, кроме той, которую я хочу стать новой основной группой, не работает. Я могу изменить это, используя chgrp group folder/ как обычный пользователь через оболочку, но это неоптимально (не все пользователи являются пользователями * nix).

Попытка установить нового владельца для группы из окна разрешений файла Windows приводит к тому, что Samba возвращает отказ в разрешении со следующей записью в журнале:

[2012/01/05 21:13:03.349734,  3] smbd/nttrans.c:1899(call_nt_transact_set_security_desc)
  call_nt_transact_set_security_desc: file = projects/project A/New folder, sent 0x1
[2012/01/05 21:13:03.349774,  3] smbd/posix_acls.c:1208(unpack_nt_owners)
  unpack_nt_owners: unable to validate owner sid for S-1-5-21-4526631811-884521863-452487935-11025
[2012/01/05 21:13:03.349804,  3] smbd/error.c:80(error_packet_set)
  error packet at smbd/nttrans.c(1909) cmd=160 (SMBnttrans) NT_STATUS_INVALID_OWNER

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

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

Тем не менее, в Windows есть средства для указания «основной группы» для совместимости с Unix; в основном вам нужно было установить определенный атрибут схемы AD.

Если вы действительно хотите установить основную группу для пользователей Windows, вам нужно было сделать следующее:

  • установить SFU (сервис для Unix)
  • на панели «Пользователи и компьютер AD» теперь можно дважды щелкнуть пользователя и на вкладке «Атрибуты UNIX» выбрать настраиваемую «Первичную группу / GID».

Дополнительную информацию можно получить Вот и Вот

Обдумывая это.

Итак, если пользователь домена создает файл / каталог, в чем проблема? Вы сказали, что он унаследовал gid от smb.conf, установленного группой force, что и должно быть. Итак, проблема в том, что когда пользователь домена создает файл, он не устанавливает файл / каталог для этого пользователя gid, а устанавливает gid для пользователей домена?

smb.conf

Может быть, не предусмотрены соответствующие райды? сопоставление групп smb