Ler / gravar em uma porta serial sem raiz?

25

Estou escrevendo um aplicativo para ler / gravar de / para uma porta serial no Fedora14, e funciona muito bem quando eu o executo como root. Mas quando eu o executo como um usuário normal, não consigo obter os privilégios necessários para acessar o dispositivo (/ dev / ttySx). Isso é meio ruim porque agora eu não posso realmente depurar a maldita coisa usando o Eclipse.

Eu tentei rodar o Eclipse com o sudo, mas isso corrompe meu espaço de trabalho e eu nem consigo abrir o projeto. Então, eu gostaria de saber se é possível diminuir os requisitos de acesso para gravar em / dev / ttySx para que qualquer usuário normal possa acessá-lo. Isso é possível?

    
por iegod 03.06.2011 / 20:41

4 respostas

36

O direito de acessar uma porta serial é determinado pelas permissões do arquivo do dispositivo (por exemplo, /dev/ttyS0 ). Então, tudo que você precisa fazer é providenciar que o dispositivo seja de sua propriedade, ou (melhor) se colocar no grupo que possui o dispositivo, ou (se o Fedora suportar isso, o que eu acho que faz) providenciar para o dispositivo pertencem ao usuário que está logado no console.

Por exemplo, no meu sistema (não no Fedora), /dev/ttyS0 é de propriedade do usuário root e o grupo dialout , então para poder acessar o dispositivo serial, eu adicionaria o dialout group:

usermod -a -G dialout MY_USER_NAME
    
por 03.06.2011 / 21:36
0

Muitas distribuições usam associações de grupo para permitir o acesso a portas seriais. Eu não sei detalhes do Fedora de improviso, no entanto.

    
por 03.06.2011 / 20:42
0

Eu acho que você pode adicionar-se ao arquivo sudoers, o que permitirá que você especifique um conjunto de comandos como alias de comando que você seria capaz de executar sem senha. Você pode encontrar um excelente tutorial sobre o arquivo sudoers em documentos do Ubuntu .

Você pode então executar o eclipse normalmente e ele poderá executar esses comandos específicos sem permissões de root.

    
por 03.06.2011 / 21:09
0

Eu tive esse problema também no passado, além de adicionar o usuário a um grupo dialout , você também precisa dar a permissão para esse usuário acessar / dev. simplesmente su - > insira a senha do root - > chmod -R 777 / dev -R, significa modo recursivo, tudo dentro dessa pasta terá a mesma permissão

o problema é este, você precisa fazer isso toda vez que você reiniciar o seu computador ou conectar e desconectar o seu dispositivo huh !!!

    
por 11.10.2018 / 14:50