Запрет на удаление определенных каталогов шары

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модератор: SLEDopit

Ответить
hosti666
Сообщения: 3

Запрет на удаление определенных каталогов шары

Сообщение hosti666 »

Приветствую! Дело обстоит так - имеется одноранговая сеть в которой общий сетевой ресурс ("network"), в котором имеются подпапки пользователей (порядка 150 штук). Пользователи имеют полный доступ к этим подпапкам - могут писать, читать, запускать все с этих подпапок, причем не имеет значение кто кому что пишет, читает, создает. Возникла необходимость запретить удалять сами эти подпапки и самостоятельно создавать что либо в корне шары ("network"). Шара подключается ко всем пользователям через "Сетевой диск" и имеет свободный доступ (отсутствует логин/пароль).
Вот здесь и возникает проблема: создаю подкаталог в "network" от root, меняю владельца и группу на nobody:nogroup, создаю что либо во вновь созданном подкаталоге - все ок, выхожу в родительский каталог, нажимаю delete, винда типа его "удаляет", обновляю каталог, появляется мой созданный/удаленный подкаталог пользователя, но уже пустой( и я никак не могу реализовать эту самую "защиту от дураков". Пробовал менять права доступа - пропадает возможность создания чего либо в подкаталоге, пробовал chattr - винда все равно "удаляет" подкаталог, менял владельца на root c липким битом (аля /tmp) - все равно винда "удаляет" подкаталог + появляется не нужная возможность создания левых каталогов в родительском каталоге ("network")...
Все подпапки в корне имеют владельца/группу - nobody:nogroup с правами rwx/r-x/r-x, а корень шары ("network") - root:root с правами r-x/r-x/r-x.
Samba - 4.2.14-Debian,
ОС - Debian 8.

smb.conf:

Код: Выделить всё

[global]
# Minimal config
    security = user
    workgroup = GERMETIKON
    server string = StoreJet
    guest account = nobody
    map to guest = Bad User
# From ammofos_proxy
    domain master = no
    interfaces = eth0 192.168.20.5
    locking = yes
    netbios name = StoreJet
    dos charset = cp1251
    local master = yes
    os level = 20
    unix charset = utf8
    max log size = 0
    bind interfaces only = yes
        log level = 0 vfs:2
           syslog = 0

# Share's configurations
[service]
comment = Service Share
path = /mnt/share/service
writable = yes
#only guest = yes
guest ok = yes
create mask = 0664
directory mask = 0775
read only = no

[network]
comment = Enterprise Share
path = /mnt/share/network
writable = yes
guest ok = yes
create mask = 0664
directory mask = 0775
veto files = /*.mp3/*.wma/*.wav/*.3gp/*.mid/*.hfpnkim/*.vault/
delete veto files = yes
read only = no
vfs objects = full_audit
full_audit:prefix = %U|%I
full_audit:failure = none
full_audit:success = connect disconnect mkdir rmdir closedir read pread write pwrite sendfile rename unlink chmod fchmod chown fchown chdir ftruncate lock symlink readlink link mknod realpath
full_audit:facility=local5
full_audit:priority = notice

include = /etc/samba/users/%I.conf
Спасибо сказали:
Дмитрий Н.
Сообщения: 174
ОС: openSUSE Leap 15.0

Re: Запрет на удаление определенных каталогов шары

Сообщение Дмитрий Н. »

Чтобы защитить каталог пользователя от удаления сделай в нём пустой файл .keep и присвой ему атрибут immutable.

Код: Выделить всё

touch .keep
chattr +i .keep

Тогда никто не сможет удалить этот каталог.
Спасибо сказали:
Аватара пользователя
lone_wolf
Сообщения: 206

Re: Запрет на удаление определенных каталогов шары

Сообщение lone_wolf »

Дмитрий Н. писал(а):
27.03.2017 10:31
Чтобы защитить каталог пользователя от удаления сделай в нём пустой файл .keep и присвой ему атрибут immutable.

Код: Выделить всё

touch .keep
chattr +i .keep

Тогда никто не сможет удалить этот каталог.

А почему именно .keep?
Спасибо сказали:
Дмитрий Н.
Сообщения: 174
ОС: openSUSE Leap 15.0

Re: Запрет на удаление определенных каталогов шары

Сообщение Дмитрий Н. »

А почему именно .keep?

Имя файла можно выбрать любое, а точка в начале имени означает, что файл "скрытый".
Спасибо сказали:
hosti666
Сообщения: 3

Re: Запрет на удаление определенных каталогов шары

Сообщение hosti666 »

Я сегодня разобрался как это реализовать!!!!! С моим конфигом - комментирую/удаляю в секции [network] опцию wrietable = yes, создаю подпапку в "network" от root и задаю ей chmod 557 - и вуаля - я могу делать все что угодно в подпапках, но при этом не могу их удалять или переименовывать!!!

Дмитрий Н. писал(а):
27.03.2017 10:31
Чтобы защитить каталог пользователя от удаления сделай в нём пустой файл .keep и присвой ему атрибут immutable.

Код: Выделить всё

touch .keep
chattr +i .keep

Тогда никто не сможет удалить этот каталог.


Через винду этот номер не прокатит - она все равно его "удалит", а после обновления содержимого окна (F5) она вновь появится, но уже пустая...
Спасибо сказали:
Дмитрий Н.
Сообщения: 174
ОС: openSUSE Leap 15.0

Re: Запрет на удаление определенных каталогов шары

Сообщение Дмитрий Н. »

Возникла необходимость запретить удалять сами эти подпапки...

Папки удалить будет нельзя, а файлы в них можно, но ведь просили защитить папки от удаления... Если у пользователя есть права записи в файл и в папку, то от удаления этот файл не защитить.
Спасибо сказали:
hosti666
Сообщения: 3

Re: Запрет на удаление определенных каталогов шары

Сообщение hosti666 »

Дмитрий Н. писал(а):
27.03.2017 17:24
Возникла необходимость запретить удалять сами эти подпапки...

Папки удалить будет нельзя, а файлы в них можно, но ведь просили защитить папки от удаления... Если у пользователя есть права записи в файл и в папку, то от удаления этот файл не защитить.

Вы меня не так поняли) Я имел ввиду подпапки в родительской папке network.... а уже внутри подпапок пользователи сами что хотят пусть то и удаляют...
Спасибо сказали:
Ответить