В зависимости от вашей версии DHCP путь может измениться. В вашем случае конфигурация DHCP может быть в /etc/dhcp/dhcpd.conf
. Конфигурация службы будет в / etc / default / isc-dhcp-server
.
Если в вашей системе нет устройства eth0
, тогда, очевидно, вам следует выбрать какое-нибудь устройство, которое у вас есть локально (вероятно, eno1
).
Существует небольшая проблема с sed
в режиме редактирования на месте -i
. sed
создает временный файл в том же каталоге под названием sedy08qMA
, где y08qMA
- случайно сгенерированная строка. Этот файл заполняется измененным содержимым исходного файла. После выполнения операции sed
удаляет исходный файл и переименовывает временный файл с исходным именем. Таким образом, это не настоящее inplace edit. Он создает новый файл с правами вызывающего пользователя и новым номером inode. Такое поведение в основном не плохо, но, например, жесткие ссылки могут быть нарушены.
Однако, если вы хотите true inplace edit, вам следует использовать ed
. Он читает команды из stdin и редактирует файл напрямую, без временного файла (это делается через буфер памяти ed
). Обычно для создания списка команд используется printf
:
printf "%s\n" '1,$s/search/replace/g' wq | ed -s file
Команда printf
выдает следующий результат:
1,$s/search/replace/g
wq
Эти две строки - команды ed
. Первая ищет строку search
и заменяет ее на replace
. Вторая записывает (w
) изменения в файл и завершает работу (q
). -s
подавляет диагностический вывод.
Параметр -i
в sed
работает, создавая временный файл во время работы, а затем перезаписывая фактический файл временным файлом в конце. Это наиболее вероятная причина проблемы, поскольку при создании владельца временного файла по умолчанию используется myuser: myuser
. Вы можете установить бит setgid
в родительском каталоге (только если родительский каталог принадлежит группе www-data
), поэтому файлы, созданные в этом каталоге, наследуют ту же группу.
для этого:
chmod g+s parent-dir-of-your-file
Я думаю, что это очень типичное использование бита setgid
.
Использование ed
вместо sed
кажется для этого довольно излишним, учитывая, что вам нужно передать дополнительный ввод. В дистрибутиве, над которым я сейчас работаю, (CentOS 5.10 )есть опция -c
для sed
, которая использует «копирование» временного файла, а не просто переименовывает его при использовании с опцией -i
. Я протестировал его, и он отлично работал, сохраняя первоначального владельца и группу при встроенном редактировании. Это НЕ сохраняет время модификации.
например,sed -ci -e '3,5d' file.txt
-c
вместо переименования используется копирование (, т.е.сохраняет собственность/группу)-i
встроенное редактирование -e
скрипт/выражение для выполнения Не уверен, насколько распространен этот параметр для sed
в других дистрибутивах. В Solaris 10 этого не было, но в Solaris нет многих вещей, которые мне нужны.