Автор Тема: setfacl -M не работает  (Прочитано 370 раз)

Оффлайн Den_Sib

  • Завсегдатай
  • *
  • Сообщений: 8
    • Email
setfacl -M не работает
« : 18.03.2021 11:31:29 »
Добрый день!

Подскажите пожалуйста утилита setfacl не работает с ключом -M

При попытке воспользоваться этим ключом выдает:

Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
Try `setfacl --help' for more information.

Вариант с "длинным" ключом тоже не проходит

setfacl --modify-file=testfile
Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
Try `setfacl --help' for more information.

На вход подаю в качестве параметров файл которому надо изменить ACL и файл с которого ACL надо брать.
Может есть какой-то секрет использования?

ALT Workstation 9.1 (Laertes)
ALT Workstation 9.1 (Laertes)
NAME="ALT Workstation"
VERSION="9.1"
ID=altlinux
VERSION_ID=9.1
PRETTY_NAME="ALT Workstation 9.1 (Laertes)"
ANSI_COLOR="1;33"
CPE_NAME="cpe:/o:alt:workstation:9.1"
HOME_URL="https://basealt.ru/"
BUG_REPORT_URL="https://bugs.altlinux.org/"
ALT Workstation 9.1 (Laertes)
ALT Workstation 9.1 (Laertes)

Оффлайн rabochyITs

  • Давно тут
  • **
  • Сообщений: 669
  • Евгений
Re: setfacl -M не работает
« Ответ #1 : 18.03.2021 21:27:05 »
Для начала, добавить опцию монтирования acl к файловой системе в fstab
# cat /etc/fstab
UUID=c49f8dac-... /mnt/smb/documents ext4 rw,relatime,acl 1 2
после man setfacl
Может, эта фраза, несет какую то смысловую нагрузку?
...При чтении из файлов с использованием параметров -M и -X setfacl принимает выходные данные, которые производит getfacl. В каждой строке может быть не более одной записи ACL...
EXAMPLES
       Granting an additional user read access
              setfacl -m u:lisa:r file

       Revoking write access from all groups and all named users (using the effective rights mask)
              setfacl -m m::rx file

       Removing a named group entry from a file's ACL
              setfacl -x g:staff file

       Copying the ACL of one file to another
              getfacl file1 | setfacl --set-file=- file2
Copying the access ACL into the Default ACL
              getfacl --access dir | setfacl -d -M- dir
« Последнее редактирование: 18.03.2021 21:36:01 от rabochyITs »

Оффлайн Den_Sib

  • Завсегдатай
  • *
  • Сообщений: 8
    • Email
Re: setfacl -M не работает
« Ответ #2 : 19.03.2021 10:53:15 »
UUID=c49f8dac-...   /mnt/smb/documents   ext4   rw,relatime,acl      1   2

У меня вот так в fstab если я правильно понимаю то опция монтирования есть и она на весь / установлена

cat /etc/fstab
proc            /proc                   proc    nosuid,noexec,gid=proc              0 0
devpts          /dev/pts                devpts  nosuid,noexec,gid=tty,mode=620      0 0
tmpfs           /tmp                    tmpfs   nosuid                              0 0
UUID=6a20eec4-2db1-419b-acd1-8982ad2a150b       /  ext4     relatime,acl    1       1
UUID=9cedc187-385f-4ea8-b6ea-6f44d962669d       swaswap     defaults        0       0

В примере из man назначение на директорию. У меня на файл, но также в двух вариантах не работает.

getfacl template | setfacl -М- testfile
Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
Try `setfacl --help' for more information.

setfacl -М testfile template
Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
Try `setfacl --help' for more information.

Хотя в help от нее указано как раз что этот клю должен изменить файл в соответствии с параметрами от файла.

  -M, --modify-file=file  read ACL entries to modify from file

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 18 352
    • Домашняя страница
    • Email
Re: setfacl -M не работает
« Ответ #3 : 20.03.2021 10:54:45 »
Эта опция поддерживается текущей версией программы?
Андрей Черепанов (cas@)

Оффлайн Den_Sib

  • Завсегдатай
  • *
  • Сообщений: 8
    • Email
Re: setfacl -M не работает
« Ответ #4 : 22.03.2021 19:23:37 »
Эта опция поддерживается текущей версией программы?
Ну в help она присутствует если вы об этом)

Оффлайн Den_Sib

  • Завсегдатай
  • *
  • Сообщений: 8
    • Email
Re: setfacl -M не работает
« Ответ #5 : 26.03.2021 12:39:37 »
Апну тему, надеюсь это не запрещено)
Может у кого есть под рукой машина с этой версией и может проверить у себя?

Оффлайн Александр Ерещенко

  • Давно тут
  • **
  • Сообщений: 522
Re: setfacl -M не работает
« Ответ #6 : 27.03.2021 08:51:33 »
Кажется, Вы не разобрались в параметрах утилиты.

getfacl template | setfacl -М- testfile
Здесь у Вас берутся значения ACL, которые назначены файлу template, и применяются к файлу testfile
(берётся вывод из команды getfacl и подаётся на вход команде setfacl, этот поток перехватывается, т.к. у ключа -M вместо имени файла указан "-")

setfacl -М testfile template
А здесь у Вас берутся значения ACL из файла testfile (ACL записи в нем должны быть указаны по одной в строке) и применяются к файлу template

Вот так отрабатываются у Вас те команды, которые Вы указали. Так ли Вы хотели? :)
« Последнее редактирование: 27.03.2021 08:53:05 от Александр Ерещенко »

Оффлайн Den_Sib

  • Завсегдатай
  • *
  • Сообщений: 8
    • Email
Re: setfacl -M не работает
« Ответ #7 : 29.03.2021 11:25:40 »
у ключа -M вместо имени файла указан "-"
Если убрать "-" после M то ничего не меняется.

А здесь у Вас берутся значения ACL из файла testfile
Если поменять местами тоже ничего не меняется.

Вообще вывод при любом использовании такой что складывается впечатление будто утилита просто не знает что делать с ключом -M
вывод:
Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
Try `setfacl --help' for more information.
Даже если просто указать setfacl -M
Поэтому и хотелось бы увидеть реальный, живой и рабочий пример работы этой утилиты с этим ключом.
Все статьи на которые натыкаюсь в интернете по работе с этой утилитой избегают примеров с ключом -M как будто.
Единственный пока что нашел был указан такой вариант:
getfacl -a dir | setfacl -M - dir