URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 92029
[ Назад ]

Исходное сообщение
"подскажите, почему не сохраняются разрешения файлов"

Отправлено mauzzzzer , 01-Авг-11 14:37 
Fedora 15, x86_64

почему то не срабатывают POSIX ACL. Файлы и каталоги, создаваемые из разных программ имеют разные права доступа!

монтирую флешку в каталог /mnt/flash

getfacl /mnt/flash/
# file: /mnt/flash/
# owner: root
# group: team
# flags: -s-
user::rwx
user:1001:rwx
user:1000:rwx
group::rwx
group:team:rwx
mask::rwx
other::---
default:user::rwx
default:user:1001:rwx
default:user:1000:rwx
default:group::rwx
default:group:team:rwx
default:mask::rwx
default:other::---

создаю файл на флешке:
$ cd /mnt/flash
$ touch file1
$ getfacl file1
# file: file1
# owner: 1001
# group: team
user::rw-
user:1001:rwx                   #effective:rw-
user:1000:rwx                   #effective:rw-
group::rwx                      #effective:rw-
group:team:rwx                  #effective:rw-
mask::rw-
other::---

вроде как всё правильно, права на запуск порублены самой системой (umask 0002)

создаю каталог:
$ mkdir cat1
$ getfacl cat1/
# file: cat1/
# owner: 1001
# group: team
# flags: -s-
user::rwx
user:1001:rwx
user:1000:rwx
group::rwx
group:team:rwx
mask::rwx
other::---
default:user::rwx
default:user:1001:rwx
default:user:1000:rwx
default:group::rwx
default:group:team:rwx
default:mask::rwx
default:other::---

вроде как всё нормально и нет причин для беспокойства.

А далее начинается трэш. При создании файлов из разных программ они получают разные права.

Вот например создаём файл из mc (shift+f4)
$ getfacl 111-mc
# file: 111-mc
# owner: 1001
# group: team
user::rw-
user:1001:rwx                   #effective:r--
user:1000:rwx                   #effective:r--
group::rwx                      #effective:r--
group:team:rwx                  #effective:r--
mask::r--
other::---


сохраняем страничку из интернета с помощью firefox и смотрим права на каталог с img файлами:

$ getfacl 19060-unix-file-permissions_files/
# file: 19060-unix-file-permissions_files/
# owner: 1001
# group: team
# flags: -s-
user::rwx
user:1001:rwx                   #effective:r-x
user:1000:rwx                   #effective:r-x
group::rwx                      #effective:r-x
group:team:rwx                  #effective:r-x
mask::r-x
other::---
default:user::rwx
default:user:1001:rwx
default:user:1000:rwx
default:group::rwx
default:group:team:rwx
default:mask::rwx
default:other::---


отчего так меняется "POSIX ACL mask" у создаваемых каталогов в зависимости от ПО?
как сделать чтобы права были неизменны при создании из любого ПО?


Содержание

Сообщения в этом обсуждении
"подскажите, почему не сохраняются разрешения файлов"
Отправлено koblin , 01-Авг-11 16:24 
ПО само может менять umask во время создания файлов, зависит от логики программиста. Например как-нибудь так:
oldmask = umask(077); /* set new umask */
f = fopen("/etc/passwd", "w"); /* =) */
umask(oldmask);       /* restore umask */

ps если речь конечно об этом


"подскажите, почему не сохраняются разрешения файлов"
Отправлено mauzzzzer , 01-Авг-11 22:27 
> ПО само может менять umask во время создания файлов, зависит от логики
> программиста. Например как-нибудь так:
> oldmask = umask(077); /* set new umask */
> f = fopen("/etc/passwd", "w"); /* =) */
> umask(oldmask);       /* restore umask */
> ps если речь конечно об этом

ТО, что ПО меняет, это понятно.

непонятно как с этим бороться. Вот если мне надо чтобы все каталоги и файлы все создавались со строго определёнными разрешениями. Как это можно организовать?


"подскажите, почему не сохраняются разрешения файлов"
Отправлено koblin , 02-Авг-11 00:11 
> ТО, что ПО меняет, это понятно.
> непонятно как с этим бороться. Вот если мне надо чтобы все каталоги
> и файлы все создавались со строго определёнными разрешениями. Как это можно
> организовать?

если так сурово, то наверное только патчить glibc =)


"подскажите, почему не сохраняются разрешения файлов"
Отправлено mauzzzzer , 02-Авг-11 07:59 
>> ТО, что ПО меняет, это понятно.
>> непонятно как с этим бороться. Вот если мне надо чтобы все каталоги
>> и файлы все создавались со строго определёнными разрешениями. Как это можно
>> организовать?
> если так сурово, то наверное только патчить glibc =)

ну не думаю, что для этого надо патчить glibc :) должны быть более гуманные способы