Сопоставление по PID было удалено в 2005 году. Если в вашей документации упоминаются параметры pid/sid, они устарели.
Однако вы можете сопоставлять пользователей/группы для фильтрации (удаления )пакетов:
iptables -A OUTPUT -m owner --uid $USER -j DROP
и аналогично для группы, использующей опцию --gid
. Группа соответствует первичной группе процесса.
Обратите внимание, что правила применяются при первом совпадении, если вы ранее нашли совпадение для правила, последующие правила не будут оцениваться.
Обычная замена оболочки >
с более высокими/другими привилегиями::
echo "replace file content with this line" | sudo tee protectedFile >/dev/null
И если вы хотите добавить, используйте-a
:
echo "append this line to file" | sudo tee -a protectedFile >/dev/null
Безecho
:
string=$'"<VirtualHost *:443> \
... \
</VirtualHost>"'
sudo sed -i '$a\'"${string}"'' file
Опция -i
указывает sed
обрабатывать файлы в -месте (с необязательным добавлением суффикса к исходной версии ).
Скрипт sed:
$
соответствует последней строке a\
добавить текст после соответствующей строки Однако он не будет работать с пустым файлом (, так как не будет строк ввода, соответствующих последней строке ).
Для полноты картины, если у вас есть ed
под рукой:
echo "$
a
<VirtualHost *:80>
...
</VirtualHost>
.
w" | sudo ed protectedFile
$
перейти к последней строке a
добавление, за которым следуют данные, которые вы хотите добавить, заканчивающиеся строкой, содержащей одну точку w
означает запись (файл)Первые две команды могут быть объединены (в результат $a
), но это не будет работать с пустым файлом — будет работать по отдельности,поскольку это означает «перейти к последней строке» (, что не является -операцией ), за которой следует «добавить» , а не «добавить к последней строке» , которого на самом деле не существует.