Пользователь не имеет эффективного доступа при использовании setfacl -d

Предполагая, что реализация findв вашей Unix имеет предикат -maxdepth(не является стандартом -, но часто доступен ), следующая команда findсделает это:

find. -maxdepth 1 -type f -mtime +0

Это напечатает имена обычных файлов (, т. е. не каталогов, сокетов, именованных каналов и т. д. ), чья метка времени модификации была более 24 часов назад на терминале.

Если -maxdepthнельзя использовать, рассмотрите

find. ! -name. -prune -type f -mtime +0 -print

Это означает:

  1. Если текущая вещь, на которую findсмотрит, это , а не .(! -name.), текущий каталог, тогда
  2. Удалите этот путь из пути поискаfind(-prune). Это останавливает findдаже от рассмотрения входа в какие-либо подкаталоги.
  3. Если это обычный файл (-type f), и
  4. Если отметка времени модификации старше 24 часов (-mtime +0), то
  5. Выведите название того, что мы нашли(-print).

Относительно-mtime +0:В вашей системе AIX см. примечание о семантике -mtime, чтобы определить, следует ли использовать -mtime +0или -mtime +1. Если вам нужно поведение UNIX03, вы должны использовать -mtime +0для поиска файлов с отметкой времени модификации более 24 часов назад (и установить переменные среды XPG_SUS_ENVна ONи XPG_UNIX98на OFF., в соответствии с примечанием в руководстве ).

По умолчанию findвыводит пути найденных файлов. Это означает, что вы получите имена файлов с префиксом ./из приведенной выше команды. Если вы этого не хотите, вам придется вызывать утилиту basenameдля каждого найденного имени файла.

Вы можете сделать это вот так:

find. ! -name. -prune -type f -mtime +0 -exec basename {} \;

В комментариях вы упомянули, что хотели бы сжать эти файлы. Для этого нет необходимости вызывать утилиту basename.Просто вызовитеgzip(или любую другую утилиту сжатия, которую вы хотели бы использовать вместо ):

find. ! -name. -prune -type f -mtime +0 -exec gzip {} +

В зависимости от того, хотите ли вы что-то сделать с этими файлами, вы можете поискать аналогичный вопрос на этом сайте, например. Почему зацикливание вывода find является плохой практикой?

Также связанные:

1
30.06.2020, 19:10
1 ответ

Что-то изменило маску ACL файла после его создания. Этого не должно быть. Я не могу сказать, как это могло произойти, но известно, что это происходит.

Любой вызов setfaclдля этого файла должен исправить это (, если --no-maskне задано ). Вы также можете установить маску явно:

setfacl -m m:rw filename
0
18.03.2021, 23:23

Теги

Похожие вопросы