realmd - Разрешить группу AD

-f указывает rm никогда не запрашивать (например, при обнаружении файлов только для чтения) и игнорировать отсутствующие файлы его просят удалить (вместо указания на ошибку). Он также не будет жаловаться, если не передан какой-либо файл для удаления.

Здесь, в зависимости от реализации xargs, стандартным вводом rm будет либо канал из find, либо /dev/null , так что без -f find может прочитать ответ на эти подсказки из вывода find!

-print — это действие по умолчанию для find в дистрибутивах Linux и POSIX-совместимых системах, но может потребоваться явное указание в очень старых Unix или Unix-подобные системы.

Таким образом, его целью, вероятно, было сделать команду более надежной и переносимой. Вы могли бы добиться большего успеха с некоторыми вариантами find (выходя за рамки POSIX):

find /dir/prd/log -mtime +90 -print0 | xargs -0 rm -f

позволяет избежать проблем с именами файлов, содержащими «специальные» символы (включая пробел, новую строку, табуляцию, одинарную кавычку, двойную кавычку, обратную косую черту), и если ваш find поддерживает действие -delete,

find /dir/prd/log -mtime +90 -delete

позволяет избежать порождения других процессов для выполнения удаления (а также позволяет избежать некоторых проблем с состоянием гонки). (Обратите внимание, что я указываю здесь /dir/prd/log, чтобы соответствовать вашему заявленному требованию из первого предложения вашего вопроса, как подтверждено в комментариях.)

С POSIX find вы по-прежнему можете избежать xargs и синтаксического анализа имен файлов, попросив find запустить сам rm:

find /dir/prd/log -mtime +90 -exec rm -f '{}' +

Помимо того, что он более портативный и надежный, он также позволяет избежать проблемы с rm чтением подсказок из вывода find, упомянутого выше (он также позволяет избежать запуска rm в все, если файл не найден).

Если /dir/prod/log содержит подкаталоги, вы можете отфильтровать их, чтобы избежать сообщений об ошибках, поскольку rm не может их удалить:

find /dir/prd/log ! -type d -mtime +90 -exec rm -f '{}' +

1
20.02.2017, 14:32
2 ответа

Проблема обнаружена. Используя ad_access_filter в sssl.conf, компьютер Linux должен иметь разрешения на чтение объекта пользователя в AD. После разговора с нашим системным администратором он дал разрешение, и теперь оно работает ... :)

0
28.01.2020, 01:00

Я добился этого, отредактировав /etc/security/pam_winbind.conf

require_membership_of = S-1-5-21-361205316-2009527927-3895120483-1111,localgroup1

, вы можете вычислить строку S-1 -... с помощью wbinfo -G "User all"

0
28.01.2020, 01:00

Теги

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