Как заставить матричный принтер распечатать каждую строку 'хвоста-f'

Существует другой способ заключить в тюрьму его вниз: iptables использование владельца соответствует расширению!

С iptables это возможно к блоку, исходящему (ВЫВОД) сетевой трафик всеми процессами ведомого пользователя. Это очень легко установить, т.е. это удобно.

Это означает, что с этой легкой установкой можно заключить в тюрьму ведомый процесс от местоположений файловой системы и сети.

$ iptables -N slave_chain
$ iptables -A slave_chain -m owner --uid-owner 10004 -p tcp --dport 1:1024 -j REJECT
$ iptables -A slave_chain -m owner --uid-owner 10004 -p tcp -d 127.0.0.1 -j ACCEPT
$ iptables -A slave_chain -m owner --uid-owner 10004 -j REJECT
$ iptables -A OUTPUT -j slave_chain

Где 10004 uid ведомого пользователя. Ведомое устройство должно только ответить на проксированные запросы веб-сервера. Все остальное отклоняется, например, попытка подключения к MTA в localhost порте 25 для отправки СПАМА.

Обратите внимание, что ведомое устройство могло отправить, почте через команды нравится mail или sendmail, если они - доступное, т.е. дальнейшее заключение в тюрьму местоположений фс (например, chroot/cgroups) необходимо, или нужно настроить MTA для запрещения исходящей почты ведомым пользователем.

5
14.12.2011, 21:44
4 ответа

Я отчасти работал вокруг той проблемы с этим:

tail -n2 -f file | while read line
do
echo $line | lpr -l -h -P Epson-LQ-500
done

но я не уверен, является ли это лучшей практикой.

1
27.01.2020, 20:37

Система CUPS является спулером принтера (т.е. она предполагает, что принтер совместно используется; это собирает материал, который будет распечатан, и отправляет его на принтер только, когда это закончено для не задержки распечаток других людей, когда Вы отправляете верхний колонтитул страницы, сделайте 1/2 час, вычисляя и затем распечатайте остальных).

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

3
27.01.2020, 20:37
tail -f file > /dev/lp0

при принятии параллельного принтера и соответствующих полномочий, и Вы не можете совместно использовать принтер.

3
27.01.2020, 20:37
tail -n2 -f file | while read line
do
    echo $line | lpr -l -h -P Epson-LQ-500
done

Линейные принтеры старой -школы хороши своей оперативностью; когда персонаж выгружается /dev/lp0 , он попадает прямо на бумагу, которую невозможно взломать.

Если вы отслеживали этот файл, чтобы обнаружить вторжение (или сбой системы ), вы добавили задержку и небезопасность строк, проходящих через все больше и больше программных шагов -оболочки, lpr, фильтры принтера -, прежде чем они будут добавлены на страницу.

Если компьютер выйдет из строя, отключится питание или кто-то взломает lpr, принтер не сможет правильно зарегистрировать событие.

Для некритичных -вещей это здорово, если предоставляет другие удобства; Я использую старые линейные принтеры для печати этикеток по одной -в -в -раз (лазерные принтеры требуют печати целого листа ).

Если время или важные для безопасности материалы отправляются на принтер, используйте

tail -f file > /dev/lp0

(хотя, если это действительно критическая информация, которую вам нужно записать на бумагу, вы можете полностью обойти оболочку и файловую систему в ядре.)

Старые -школьные построчные принтеры не требуют каких-либо драйверов для печати обычного текста в реальном времени.

1
27.01.2020, 20:37

Теги

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