[samba] (winxp) ACLs gone wild

Michael Shigorin mike на osdn.org.ua
Пн Мар 6 14:47:42 MSK 2006


On Mon, Feb 27, 2006 at 04:26:10PM +0300, Avramenko Andrew wrote:
> > > PS: ещё наблюдаются странности с изменением ACL с winxp, к
> > > сожалению, записей эксперимента под рукой нет, но
> > > припоминается -- будто какие маппинги съезжают.  2.6.14;
> > > ext3 acl,user_xattr; в smb.conf [global]:
> > > inherit acls = yes
> > > nt acl support = yes
> > > profile acls = yes
> > > Мож есть типичные грабли?
> > А всё-таки -- такого никто не припомнит?
> Если честно, ничего не понял.

Примерно так это выглядит (пересказ текста+скриншотов коллеги): 

- берём пользователя winxp, который в Domain Admins
- лезем на ресурс in question
- создаём тестовый каталог ttt
- смотрим права, получается странность N1: 4 ACLки
  + Domain Users (DOM\Domain Users)
  + Администраторы (DOM\Администраторы)
  + Все
  + Пользователи (DOM\Пользователи)
  при этом у всех не отмечено Разрешить-Запретить, кроме
  Пользователи (DOM\Пользователи) => откуда юзеры в двух
  экземплярах?  Разные SID плюс гоблинский перевод?..

- выставляем полные права доменному пользователю someuser 
  и группе доменных администраторов, остальные идут лесом

- при попытке удалить ACL для Пользователи (DOM\Пользователи)
  получаем ошибку:
  
  Вы не можете удалить "Пользователи (DOM\Пользователи)",
  поскольку этот объект наследует разрешения от своего предка.
  Чтобы удалить "Пользователи (DOM\Пользователи)", необходимо
  запретить наследование разрешений этим объектом. Отключите
  параметр наследования разрешений и повторите попытку удаления
  "Пользователи (DOM\Пользователи)".

- снимаем галочку "Наследовать разрешения".  Устанавливаем
  разрешения через особые (дополнительные параметры безопасности)
  и получаем 3 ACL:
  + someuser (DOM\user) [полный доступ]
  + Администраторы (DOM\Администраторы) [полный доступ]
  + Все [отсутствует]
  После нажатия Применить - самостоятельно появляются разрешения
  Пользователи (DOM\Пользователи) и Создатель-Владелец
  [Полный доступ]. Для появившейся группы Группа-Создатель -
  [разрешения Отсутствуют].  Т.о. получаем:
  + someuser (DOM\user) [полный доступ]
  + Администраторы (DOM\Администраторы) [полный доступ]
  + Все [отсутствует]
  + ГРУППА-СОЗДАТЕЛЬ [отсутствует]
  + Пользователи (DOM\Пользователи) [полный доступ]
  + СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ [полный доступ]

- при этом вывод getfacl ttt таков:
# file: ttt
# owner: root
# group: Domain\040Admins
user::rwx
user:someuser:rwx
group::---
mask::rwx
other::---
default:user::rwx
default:user:someuser:rwx
default:group::---
default:mask::rwx
default:other::---

и локального пользователя, входящего в "Domain Admins" -- 
посмотреть каталог не пускают:

$ id | grep -q "Domain Admins" && ls ttt
ls: ttt: Permission denied

...бишь, учитывая "How ACLs Work" со странички 
http://www.suse.de/~agruen/acl/linux-acls/online/
-- права группе выдаются действительно никакие 
(group && mask == 000).  В данном случае это несмертельно,
но странно и досадно.

Вот дословная конфигурация ресурса с очевидной заменой:

[ShareName]
        path = /path/to/ShareName
        inherit acls = yes
        writable = yes
        read only = no
        create mode = 0777
        force create mode = 0777
        force directory mode = 0777

Если знатоки подскажут, каким образом появляются дубли группы 
и "левые" правила -- премного благодарен.

-- 
 ---- WBR, Michael Shigorin <mike на altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


Подробная информация о списке рассылки Samba