Я уверен, что мне не хватает простого способа сделать это. Использование 'mount -o remount, noexec / tmp' не записывает в / etc / fstab, поэтому я думаю, что единственный способ сделать изменения постоянными - это отредактировать / etc / fstab напрямую?
Естьнет специального CLI для изменения записей монтирования в / etc / fstab, если вы это имеете в виду. Редактирование файла вручную с помощью текстового редактора является традиционным способом.
Как я уже упоминал в комментариях, стандартный подход Puppet для работы с записями монтирования заключается в использовании ресурсов Mount
. Пока я пишу ответ, я повторяю, что с их помощью вы должны выполнять свою работу.
Вы возразили в комментариях, что
проблема в том, чтопервая строка (fsname) может быть чем угодно, как и fstype. Я также хочу сохранить существующие функции, которые не конфликтуют с новыми желаемыми настройками.
Это является проблемой, но не так, как я думаю, вы имеете в виду. Вы находитесь в затруднительном положении, потому что вы пытаетесь приспособить несколько авторитетов к этому аспекту конфигураций ваших узлов. Лучшей практикой было бы возложить ответственность за горы интереса на Марионетку. У него более чем достаточно гибкости для обеспечения различных конфигураций монтирования на разных машинах.
Однако, если вы решили использовать Puppet таким образом, это можно сделать. Но хотя задачу относительно легко описать, подробности делают ее относительно сложной. Подход, основанный на sed
, возможен, но будет сравнительно длинным и крайне загадочным. Лучшим инструментом командной строки для основного задания будет awk
, и, в частности, этот сценарий awk
выполнит работу для представленного вами случая:
$1 ~ /^#.*/ || $2 != "/tmp" {print; next}
$4 ~ /.*nosuid.*/ && $4 ~ /.*noexec.*/ {print; next}
{
split($4, opts, ",")
printf "%s %s %s ", $1, $2, $3
for (i in opts) {
if (opts[i] !~ /(no)?(exec|suid)/) {
printf "%s,", opts[i]
}
}
printf "noexec,nosuid %s %s\n", $5, $6
}
Оборачивая это вExec
Ресурс и любые другие приспособления к вашим конкретным требованиям оставлены в качестве упражнения.