Есть программа которая работает с некоторым устройством по компорту. При выполнении этой программы от пользователя не возможно установить связь по ком порту. Нед доступа. Приходиться сначало под рутом устанавливать соответствующие права для порта, например для /dev/ttyM7, потом только можно пользователю открывать компорт. Можно ли настроить Linux так, чтоб все ком компорты всегда были открыты для записи и чтения для всех пользователей?
Как разрешить пользователю работать с компортами?
Можно ли настроить Linux так, чтоб все ком компорты всегда были открыты для записи и чтения для всех пользователей?
да. включите пользователя в группу.
[console]$ ls -l /dev/ttyS0
crw-rw---- 1 root dialout 4, 64 Апр 18 17:09 /dev/ttyS0
[/console]
man usermod
ls -l /dev/ttyM7
посмотрите к какой группе принадлежит девайс и добавьте своего юзера в эту группу
ну толи у меня руки кривые, в группу добавить не могу, толи что-то не так....
ls -l /dev/ttyM7
crw-r--r-- 1 root root 30, 7 Mar 30 15:37 /dev/ttyM7в файле /etc/group добавил
root:x:0:root,juvfне помогает. может я пользователя juvf не так в группу добавляю?
udev используете? и какой дистр? тогда создайте группу для com-порта и потом что-то вроде: "chown root:dialout /dev/ttyM7 && chmod g+w /dev/ttyM7" и себя в эту группу...
если используете udev, то это будет до перезагрузки... и надо в правилах создания девайсов искать, собака где-то там будет зарыта...
Да, и вы уверены, что это com-порт? они обычно /dev/ttyS? и номера у них 4:64,65 итд
ЗЫ: добавлять юзера в группу root по крайней мере странно
что-то вроде: "chown root:dialout /dev/ttyM7 && chmod g+w /dev/ttyM7"
спасибо, помогло. Проблема решена.
ps это встраеваемый идустриальный комп MOXA UC-8410. Линукс в нем изкаропки, не знаю какой дистрибутив.
Да, /dev/ttyM7 это компорт.
на будущее: указывайте, что речь идёт о необычной железяке/софте
Проблема решена.
я надеюсь вы себя вычеркнули из группы root? если нет, то у вас - РЕШЕТО.
[quote=juvf]Проблема решена.
я надеюсь вы себя вычеркнули из группы root? если нет, то у вас - РЕШЕТО.[/quote]
вычеркнул. Но в MOXA практически все файлы с правами root:root. Вычеркнул себя из рута.... мс перестал работать. Пришлось менять группу на wheel всяким прогам типа мс и либам /usr/local/lib и т.п. Иначе ни одна прога под юзером не работает.
до кучи еще вопрос...... пишу под пользователем команду su. Просит пароль. Ввожу. в ответ
su: cannot set groups: Operation not permittedпользователь вхож в группы wheel, users и dialout. почему su не работает? Забыл, как позволить пользователю su использовать.
вычеркнул. Но в MOXA практически все файлы с правами root:root. Вычеркнул себя из рута.... мс перестал работать. Пришлось менять группу на wheel всяким прогам типа мс и либам /usr/local/lib и т.п. Иначе ни одна прога под юзером не работает.
это везде так, но практически на все программы у всех должны быть права на чтение/запуск... покажите что ли ls -l /bin для разнообразия
Пришлось менять группу на wheel всяким прогам типа мс и либам /usr/local/lib и т.п. Иначе ни одна прога под юзером не работает.
надо было не группу менять в этом случае, а права. Т.е. дать кому угодно право исполнения, и только руту - модификации.
cannot set groups
вот этого - не знаю. от дистрибутива зависит сильно. А я вашего не видел.
это везде так, но практически на все программы у всех должны быть права на чтение/запуск
для программ достаточно только запуска. для скриптов необходимо чтение и запуск.
надо было не группу менять в этом случае, а права.Да, наверно я поторопился
Да, наверно я поторопился
всегда можно найти и поменять
-gid n File's numeric group ID is n.
-group gname
File belongs to group gname (numeric group ID allowed).
NAME
chgrp - change group ownership
SYNOPSIS
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
DESCRIPTION
Change the group of each FILE to GROUP. With --reference, change the group of each FILE to that of RFILE.