LINUX.ORG.RU

получить эксклюзив на /dev/ttS0


0

0

Может ли первый процесс заблокировать /dev/ttS0 так, чтобы второй процесс его никак не смог его открыть? Правильно ли я понял, что lockf(fhandle,F_LOCK,0), в первом процессе, будет работать лишь по соглашению для второго процесса (lockf(fhandle,F_TEST,0)). При этом второй процесс все равно сможет открыть и писать/читать в порт?

anonymous

Пользуй лизы. Пока твоё приложение не отдаст порт его не сможет *открыть* даже рут. а также не сможет читать и писать пока приложение его не освободит

man fcntl

cvv ★★★★★
()
Ответ на: комментарий от cvv

>http://tldp.org/HOWTO/Serial-HOWTO-14.html

это ничем не отличается от lockf - ведь эти локфайлы можно и не проверять.

>Пользуй лизы

не работает ( взял от сюда пример http://osdir.com/ml/linux.file-systems/2004-12/msg00010.html для файла (как в примере) работает, для /dev/ttyS0 под юзером: F_SETLEASE, F_WRLCK failed: 13, Permission denied под root: F_SETLEASE, F_WRLCK failed: 22, Invalid argument

suse10.2

anonymous
()
Ответ на: комментарий от anonymous

У меня работало. Подробностей не помню. Система Slackware 10.2

cvv ★★★★★
()
Ответ на: комментарий от anonymous

> >http://tldp.org/HOWTO/Serial-HOWTO-14.html

> это ничем не отличается от lockf - ведь эти локфайлы можно и не проверять.

Можно и 'rm -Rf /' от рута выполнить. Есть правила хорошего тона и программы, не соблюдающие их, отправляются в топку.

P.S. На идейку с изменением прав на устройство обратил внимание? Для нерутовых процессов может и сработать.

anonymous
()
Ответ на: комментарий от anonymous

Как-же мне выкинутть в топку программы у юзера на его компе?
echo тоже в топку? )

Предположим что пользователь не root, но зловреден и туп.
Задача такая: я открыл устройство и с ним работаю, при этом я не хочу чтобы какойто другой процесс от этогоже пользователя смог открыть это же устройство и вмешаться в обмен. Сам от себя я защитился (про это я и не спрашивал), пока так и живу. Но хотелось бы полностью забрать компорт на себя.

Насчет идеи с правами - пользователь ведь тотже(тупой), но запускает другой процесс - тут это не прокатит.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.