Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

последоательный порт

0 views
Skip to first unread message

Eugene Markov

unread,
May 31, 2006, 9:54:02 AM5/31/06
to
Hi!

Как в скрипте, который запускется от обычного пользователя,
получить доступ к последовтельному порту?

--
EM

Victor Wagner

unread,
May 31, 2006, 11:06:48 AM5/31/06
to
Eugene Markov <rtf...@mail.ru> wrote:
EM>Hi!
EM>Как в скрипте, который запускется от обычного пользователя,
EM>получить доступ к последовтельному порту?

Средствами, типичными для администрирования данной системы, дать
пользователю доступ к оному порту. В *nix может, например, потребоваться
включить пользователя в группу dialout.

Когда-то давно я делал расширение (вернее custom интерпретатор), который
был предназначен для решения ровно этой задачи - обеспечить доступ к
последовательному порту с более высокими правами, чем те, с которыми
выполняется весь скрипт. Оно у меня еще и uucp-style locking делало

http://www.45.free.net/~vitus/software/tcl/modemtcl.html

Disclaimer. Компилировать это дело я не проболал по-моему со времен tcl
8.0.x

--

Artem Chuprina

unread,
May 31, 2006, 11:42:13 AM5/31/06
to
Eugene Markov -> All @ Wed, 31 May 2006 17:54:02 +0400:

EM> Как в скрипте, который запускется от обычного пользователя,
EM> получить доступ к последовтельному порту?

Дать этому пользователю права чтения и записи на этот порт, и дальше
точно так же, как от рута.

--
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: r...@jabber.ran.pp.ru

Если ты не боишься синего экрана, то почему боишься черного?
(c) Д.Белявский

Eugene Markov

unread,
May 31, 2006, 7:48:37 PM5/31/06
to
Xref: news.cca.usart.ru fido7.ru.tcl:174

Victor Wagner wrote:
> Средствами, типичными для администрирования данной системы, дать
> пользователю доступ к оному порту. В *nix может, например, потребоваться
> включить пользователя в группу dialout.

У меня (Gentoo) для /dev/ttySx (tts/x) определена группа tty, а к dialout
тносятся всякие isdn и ippp. К группе tty относится довольно много всяких
устройств.
Хорошо ли разрешать обычному пользователю доступ к этим устроствам?

> Когда-то давно я делал расширение (вернее custom интерпретатор), который
> был предназначен для решения ровно этой задачи - обеспечить доступ к
> последовательному порту с более высокими правами, чем те, с которыми
> выполняется весь скрипт. Оно у меня еще и uucp-style locking делало

http://www.45.free.net/~vitus/software/tcl/modemtcl.html

Кстати :)

The requested URL /pub/tcl/modemtcl-0.1.tar.gz was not found on this server.

Но мне это, наверно не понадобится.

Victor Wagner

unread,
Jun 1, 2006, 2:47:04 AM6/1/06
to
Eugene Markov <rtf...@mail.ru> wrote:
>> скрипт. Оно у меня еще и uucp-style locking делало
EM> http://www.45.free.net/~vitus/software/tcl/modemtcl.html
EM> Кстати :)
EM> The requested URL /pub/tcl/modemtcl-0.1.tar.gz was not
Спасибо, поправил.

--

Kirill Frolov

unread,
Jun 1, 2006, 4:19:36 AM6/1/06
to
On Wed, 31 May 2006 17:54:02 +0400, Eugene Markov wrote:

> Как в скрипте, который запускется от обычного пользователя,
> получить доступ к последовтельному порту?

open /dev/ttyN {NONBLOCK RDWR} ?

Только пользователя зачислить в группу, для которой запись в порты
разрешена (в Debian, например, это dialout). И ещё ВЕСЬМА ЖЕЛАТЕЛЬНО
создать lock-файл для данного порта, в /var/lock обычно, где (в файле)
записан PID твой. Это чтоб две программы за один порт не передрались.

Eugene Markov

unread,
Jun 1, 2006, 7:46:07 AM6/1/06
to
Hi!

Kirill Frolov wrote:
> open /dev/ttyN {NONBLOCK RDWR} ?

Это-то понятно.

> Только пользователя зачислить в группу, для которой запись в порты
> разрешена (в Debian, например, это dialout).

Как я уже писал, у меня это группа tty. К ней относится довольно много
устройсв,
а я по своей неопытности в nix, не знаю хорошо ли помещать в эту группу
обычного
пользователя.

В принципе, потом этот скрипт можно пускать из под sudo (это программатор
для атмеловских микроконтроллеров at89c51rd/ed). Но вот на время отладки
хотелось
бы больше удобств. В емаксовом соминте я его тоже запускаю через sudo вот так
-----------------
#!/bin/sh
# The next line is executed by /bin/sh, but not tcl \
exec sudo /usr/bin/tclsh "$0" ${1+"$@"}
....
------------

но если что внем пошло не так, то его хрен прибьешь через C-c C-c.
только через root-вый терминал. А это неудобно :(


> И ещё ВЕСЬМА ЖЕЛАТЕЛЬHО


> создать lock-файл для данного порта, в /var/lock обычно, где (в файле)
> записан PID твой. Это чтоб две программы за один порт не передрались.

Кстати...

--
EM

Artem Chuprina

unread,
Jun 1, 2006, 12:17:40 PM6/1/06
to
Eugene Markov -> Kirill Frolov @ Thu, 01 Jun 2006 15:46:07 +0400:

>> Только пользователя зачислить в группу, для которой запись в порты
>> разрешена (в Debian, например, это dialout).

EM> Как я уже писал, у меня это группа tty. К ней относится довольно много
EM> устройсв,
EM> а я по своей неопытности в nix, не знаю хорошо ли помещать в эту группу
EM> обычного
EM> пользователя.

Обычно в таких случаях нужному устройству присваивают другую группу.

--
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: r...@jabber.ran.pp.ru

/dev/null-транспортировка

0 new messages