denel
написал 5 ноября 2007 года в 08:11 (2589 просмотров)
Ведет себя
как мужчина; открыл 23 темы в форуме, оставил 63 комментария на сайте.
И так имеем: многопользовательский LINUX Gentoo, все пользователи локальные, ФС ext3 и reisefs. Допустим нужно всем пользователям группы users дать разрешения rwx в директории /media/Vid, к примеру для начала задаю такие права для всей директории /media/Vid с содержимым, все замечательно! Но как кто то создает там что то, оно создается с правами для группы = r--, как сделать чтобы права внутри /media/Vid наследовались от прав /media/Vid, например rwxrwx—? учить пользователей изменять права в ручную и бегание через samba не предлагать! Это должно быть выполнено автоматически — создание новых файлов с правами от директории.
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
POSIX ACL?
Там можно: setfacl -m d:…
http://oldfield.wattle.id.au/luv/permissions.html
обратить внимание на umask и setgid. Если этого не достаточно, вперед к ACL или извращения с alias.
Что то читал читал, таак и не понял как может помочь umask в моем случае (возможно из-за плохого знания НЕ родных языков…) тем не менее нашел что то тоже на НЕ родном языки по ACL и смог достичь нужного результата… установил acl пакет, подмонтировал нужные разделы с -o acl, setfacl -d -m u:den:rwx,g::rwx,o::—,m::rwx /directory, и все что теперь создается внутри /directory — создается с правами по умолчанию — rwxrwx—
Хотел сделать то же самое, только не получается, думаю из-за того что не понял эту фразу, опишите плиз подробнее как это монтируется:
Сделал только это:
И у меня получилось это только для директорий, то есть заданные в команде права применяются только для директорий которые создаются внутри /directory, для файлов не применяются. Как и для файлов это применить?
> опишите плиз подробнее как это монтируется
Просто опцию «acl» надо передать mount’у через флаг -o. Например:
Ну, и в fstab так же прописывать, если надо. Например:
> И у меня получилось это только для директорий, то есть заданные в команде права применяются только для директорий которые создаются внутри /directory, для файлов не применяются. Как и для файлов это применить?
Вообще, насколько я помню, default-правила ACL относятся как к каталогам, так и к файлам… Может, я что-то не так помню? man setfacl не помогает? :)
Зачем монтирование делать? Логика наверно есть, только невнемлю..
Напомню, задача создавать новые файлы и папки в нужной мне директории(путем помещения их туда или создания в ней), права на эти обьекты должны соответствовать заданным.
Конкретного устройства у меня как бы нет, то есть я не понимаю какое устройство нужно выбирать для монтирования.
Монтирование на папку-это защита от переполнение, это я вроде понимаю.
Сделал так:
# mount -o rw,acl /dev/sda1 /mnt/my
где /dev/sda1 — это у меня устройство на котором расположена корневая файловая система, то есть каталог — «/».
/mnt/my — это каталог на этом устройстве.
После выполнения команды, вижу содержимое «/» в каталоге /mnt/my, то есть, захожу в my и опять попадаю как бы в корневой раздел(если еще раз зайти в /mnt/my — то уже не вижу папок из /). После выполения команды:setfacl -d -m u:den:rwx,g::rwx,o::—,m::rwx /mnt/my, все осталось по старому, разрешения для файлов по шаблону не применяются.
> Зачем монтирование делать? Логика наверно есть, только невнемлю..
Примонтировать нужно один раз. Речь о том, что для функционирования ACL файловая система, на которой эти ACL нужны, должна быть в системе примонтирована с опцией acl. Каждый раз монтировать не надо, конечно ;-)
> После выполения команды:setfacl -d -m u:den:rwx,g::rwx,o::—,m::rwx /mnt/my, все осталось по старому, разрешения для файлов по шаблону не применяются.
Хм. У меня все работает. Правда, фс — xfs.
А вы как проверяете наличие новых прав? Надеюсь, с getfacl, а не «ls -l"? ;-) Потому что в рамках стандартных UNIX-прав остается наибольшая маска (для совместимости), которая совсем необязательно будет соответствовать реальным правам для конкретных пользователей/групп.
Вот как у меня:
Да, для конкретного юзера работает, разрешения появляются по шаблону и на файлы. А вот если просто делать не указывая имя юзера то у меня срабатывает только для каталогов(т.е. у вас:setfacl -m d:u:shurup:rwx testasl/, а я делаю так: setfacl -m d:u::rwx testasl).
Конкретное имя юзера я не хотел бы указывать потому, что представим, что я не хочу (и не знаю) выяснять от имени какого юзера будет работать программа, которая должна будет иметь права к этим файлам. Во вторых принципиально хочу понять, как это работает, как этим управлять, и почему это нельзя или невозможно если это так..почему если не указывать имя юзера это работает только для каталогов..или это опять только у меня(SUSE SLES9 SP3, 2.6.4-7.244-default).
Если вы не указываете имя пользователя и задаете default facl, то это права по умолчанию, которые получит владелец нового созданного файла.
Поясняю:
В вашем случае, как понимаю, требуется задавать:
(здесь «o» — это others, а не owner, как можно подумать)
Почему права разные, если создавать документы разными способами (в графике работал под рутом, в shell тоже)?
Описание ниже..
test10:/777 # setfacl -m d:u::rwx,g::rwx,o::rwx,m::rwx /777
test10:/777 # cat > /777/777
[2]+ Stopped cat >/777/777
test10:/777 # getfacl /777/777
getfacl: Removing leading '/' from absolute path names
# file: 777/777
# owner: root
# group: root
user::rw-
group::rw-
other::rw-
Теперь создал каталог с именем 555 через графику в Линукс(то есть в иксах):
test10:/777 # getfacl /777/555
getfacl: Removing leading '/' from absolute path names
# file: 777/555
# owner: root
# group: root
user::rw-
group::r--
other::r--
Второй файл создавался «через графику» — это как? Графическим файловым менеджером или другой программой? Какой?
Вполне вероятно, что GUI-программа, через которую создавался файл, после создания «насильно» изменила права по своим каким-то соображениям.