Несколько каталогов обновляют с изменяющимся пользователем permissons

define blah($ensure = present) {
    if $ensure == "present" {
        exec { do_something_to_make_it_be_here: }
    } else {
        exec { do_something_to_make_it_not_be_here: }
    }
}

Для больше, чем просто удостоверяются существующий/отсутствующий, можно переключиться на случай в том же духе. Не переходите к подклассам, потому что, поскольку Вы говорите, что они теряют информацию о зависимостях.

1
задан 28 July 2010 в 22:48
1 ответ

Вот быстрый отрывок удара, который должен добиться цели для Вас.

Я делаю предположение что все в /home это - каталог и соответствия *\.com сайт, где Вы хотите заменить index.php и includes/system.php. Если эта логика не подходит, Вам, возможно, придется сделать некоторые модификации самим.

Я протестировал его в рамках ограниченных ограничений. Удостоверьтесь что ls -ld вывод в FreeBSD имеет пользователя в третьем поле и группу в дальше поле. Кроме того, --reply=yes GNUism. Вам, возможно, придется использовать -f или эквивалент BSD для принуждения замены существующего файла без взаимодействия.

for D in `find /home -type d -name '*\.com'`
   do
     myuser=`ls -ld $D | awk '{print $3}'`
     mygroup=`ls -ld $D | awk '{print $4}'`

     echo "Updating ${D}..."
     cp ${D}/index.php ${D}/index.php.ORIG
     cp ${D}/includes/system.php ${D}/includes/system.php.ORIG
     cp --reply=yes /path/to/temp/patch/www/index.php ${D}
     cp --reply=yes /path/to/temp/patch/www/includes/system.php ${D}/includes
     chown $myuser:$mygroup ${D}/index.php
     chown $myuser:$mygroup ${D}/includes/system.php
     echo "--------------------------------"
     echo ""
done
2
ответ дан 3 December 2019 в 22:29

Теги

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