LINUX.ORG.RU
ФорумAdmin

ACL (и Samba). Почему-то у меня выставляется execute бит на все копируемые на сервер файлы.


0

1

Здравствуйте, товарищи!
Впервые столкнулся с ACL и Samba. Доки кое-какие почитал, но разобраться не смог.
Настраиваю Samba. Режим безопасности USER. Всего одна шара, и две группы пользователей.
mygrp - все пользователи samba, должны иметь доступ где-то по чтению, а где-то полный.
mygrpadm - админов дополнительно пихаю в эту группу. должны иметь полный доступ во все папки.
Все остальные не должны иметь никакого доступа к папкам.
Права на папки приделал при помощи setfacl, и оно вроде работает. Но, есть нежелательный эффект.
Если скопировать файлы на samba сервер, то у них в пермишенах появляется execute бит, и это меня сильно смущает.
Причем, если я создаю файлы в этих каталогах находясь в консоли, то все нормально.
Буду благодарен, если кто-нибудь подскажет, откуда берется этот execute бит при работе через samba.
Вот мои настройки.

Права на каталог, в котором провожу тестирование. В нем даны полные права и для админов и для обычных пользователей.
$ getfacl .
# file: .
# owner: root
# group: root
user::rwx
group::rwx
group:mygrp:rwx
group:mygrpadm:rwx
mask::rwx
other::---
default:user::rwx
default:group::r-x
default:group:mygrp:rwx
default:group:mygrpadm:rwx
default:mask::rwx
default:other::---

$ umask
0022

$ touch test_from_console

$ ls -l
-rw-rw----+ 1 alex alex 0 Jun 1 23:47 test_from_console
-rw-rwx---+ 1 alex alex 0 Jun 1 23:48 test_from_samba

Здесь видим, что у файла test_from_console все нормально (не выставлен execute бит).
Рядом лежит файл test_from_samba, который был создан не локально, а с удаленного компьютера (пробовал с виндового и с линуксового), через примонтированную samba шару. У него почему-то выставлен execute бит, откуда он берется, непонятно ?

$ getfacl *
# file: test_from_console
# owner: alex
# group: alex
user::rw-
group::r-x         #effective:r--
group:mygrp:rwx         #effective:rw-
group:mygrpadm:rwx      #effective:rw-
mask::rw-
other::---

# file: test_from_samba
# owner: alex
# group: alex
user::rw-
group::rwx
group:mygrp:rwx
group:mygrpadm:rwx
mask::rwx
other::---


Конфиг samba
$ cat /etc/samba/smb.conf
[global]
   dos charset = CP866
   workgroup = TEST
   obey pam restrictions = Yes
   unix extensions = No


[1]
   path = /samba
   valid users = @mygrp
   read only = No
   create mask = 0660
   directory mask = 0770
   wide links = Yes


ОС debian squeeze 32 бит

$ dpkg -l|grep samba
ii samba 2:3.5.6~dfsg-3squeeze2 SMB/CIFS file, print, and login server for Unix
ii samba-common 2:3.5.6~dfsg-3squeeze2 common files used by both the Samba server and client
ii samba-common-bin 2:3.5.6~dfsg-3squeeze2 common files used by both the Samba server and client
ii samba-doc 2:3.5.6~dfsg-3squeeze2 Samba documentation

Я знаю, что в Линуксе одну и ту же вещь можно сделать разными способами. Интересует, как это сделать правильно (true way) ?
Спасибо!

В конфиге самбы поставить маску на создаваемый файлы. Твой umask в шелел никого не волнует.

no-dashi ★★★★★
()

mask - это по идее вычитание битов из маски.

create mask = 0660
будет создан файл с правами u=x,g=x,o=rwx

а directory mask = 0770 означает каталоги с правами u=,g=,o=rwx

Впрочем. я особо не силён в Самбе, там mask может и что иное обозначать.

Лучше попробуйте так:

create mode = 660
directory mode = 770

Slavaz ★★★★★
()
Ответ на: комментарий от no-dashi

маска была установлена
create mask = 0660
и это не работает в данном случае

dimedrol7
() автор топика
Ответ на: комментарий от Slavaz

В самбе mask не вычитается.
Такие параметры у меня в самбе не поддерживаются:
create mode = 660
directory mode = 770
но, есть похожие с виду
force create mode = 0660
force directory mode = 0770
не помогли и они

dimedrol7
() автор топика
Ответ на: комментарий от sfi

Я в конкретную шару прописывал все это, потому что в глобал некрасиво.
Перегружал самбу
/etc/init.d/samba restart
Переподсоединял сетевой диск.

У меня работало нормально
create mask = 0660
directory mask = 0770
до тех пор пока я не перешел на ACL,
потому что стандартными способами не получалось гибкой настройки прав.
Именно в сочетании с ACL наблюдаю такое поведение.

dimedrol7
() автор топика
Ответ на: комментарий от Slavaz

был неправ когда сказал, что параметры
create mode и directory mode у меня не поддерживаются.
Я их руками прописывал в smb.conf, потом в swat перечитал конфиг, комитил, и видел, как они исчезают из конфига. Подумал
не поддерживаются. Оказалось, они является синонимами параметров
This parameter is a synonym for create mask
This parameter is a synonym for directory mask
А эти параметры у меня были выставлены с самого начала.

В Инете видел аналогичные вопросы по execute bit, оставленные без ответов. Либо с неправильными ответами, в которых советуют
выставить маски, не обращая внимание на то, что у задающих
этот вопрос, маски уже давно выставлены.
Похоже проблема нерешаемая.

dimedrol7
() автор топика
Ответ на: комментарий от dimedrol7

В Инете еще советуют
map archive = No
map hidden = No
map system = No
я добавил эти параметры в свою шару, но это тоже не решило проблемы.
Проблема в чем-то другом.

dimedrol7
() автор топика
Ответ на: комментарий от dimedrol7

даже на linuxquestions.org не помогли,
отправили чувака читать доку где, описываются параметры
map archive = No
map hidden = No
map system = No
http://www.linuxquestions.org/questions/linux-server-73/samba-adds-execute-fl...
А дело то похоже в какой-то неувязке между ACL и Samba.

dimedrol7
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.