Bom dia,
Em primeiro lugar, gostaria de agradecer todas as sugestões....estou
tentando entender tudo e aprender mais com isso.
Na inicialização da máquina, eu coloquei em /etc/rc.local
chmod 777 /dev/tty/TS0
e isso faz que na inicialização da máquina tudo esteja funcionando, já que
o Linux cria o /dev/ACM0 e também é criado o link para TS0.
Porém minha preocupação é com algum funcionário ( usuário normal não root
)xereta, dê uma fuçada na máquina e desplugue o SAT e replugue
novamente...aí o sistema deixa de funcionar, pois o Linux cria um novo ACM1
apontando para TS0.
Seguem minhas observações com suas sugestões:
*Junior Polegato:*
O conteúdo do script initsat contém somente a linha chmod
script initsat.sh
*******
#!/bin/bash
chmod 777 /dev/ttyTS0
*****
De acordo com sua sugestão, coloquei o grupo tty para o meu usuário e diz:
luis@hal9000:/mnt/midia4/prj/qt/scripts$ ./initsat.sh
chmod: alterando permissões de “/dev/ttyTS0”: Operação não permitida
luis@hal9000:/mnt/midia4/prj/qt/scripts$
*Paulo K. Sato:*
Coloquei o grupo dialout pra esse usuário...o tty já estava ( seguindo a
sugestão anterior ) e ainda não permite essa operação.
Sim, o dispositivo TS0 é criado por udev.... pois de acordo com o
fabricante do sat, eu coloquei o arquivo que eles forneceram
em /etc/udev/rules
instruções recebidas do fabricante:
********
2. Arquivo de configuração para o serviço udev do Linux:
99-SAT.rules
Conteúdo:
*SUBSYSTEM=="tty", ACTION=="add", KERNEL=="ttyACM[0-9]*",
ATTRS{idVendor}=="0525", SYMLINK+="ttyTS0" *
*SUBSYSTEM=="tty", ACTION=="remove", KERNEL=="ttyACM[0-9]*",
ATTRS{idVendor}=="0525", SYMLINK-="ttyTS0"*
Deve ser copiado no diretório: /etc/udev/rules
A função desta configuração é alterar o nome do dispositivo reconhecido
pelo Linux pela
presença do SAT TANCA, que é /dev/ttyACMx, para /dev/ttyTSx.
Recomendamos esta alteração para previnir conflitos com outros
dispositivos.
********
Eu fiz algumas testes sem essa regra udev...o device criado na
inicialização é o ACM0, sendo incrementado a cada replugue de USB.
Com essa regra udev, mesmo incrementando o ACMx, permanece o link simbólico
ttyTS0, por isso estou mirando alterar as permissões nesse link simbólico.
*Eduardo Klosowski*
O setuid foi minha primeira tentativa, tanto é que mudei o user e grupo
do script para root
chown root:root initsat.sh
e
chmod +s initsat.sh
Mas continua dizendo "operação não permitida"
saída do script
chmod: alterando permissões de “/dev/ttyTS0”: Operação não permitida
*Antonio Terceiro*
Também mudei a regra 777 para 660 e cessou a comunicação com o SAT.
Agradeço fortemente a ajuda de todos.
Luís Cláudio A. Gama
Fones: TIM: 11 9 7765-1735 Res: 11-4602-3400
Skype: luisclaudiogama http://luisgama.googlepages.com
br.linkedin.com/in/luisclaudiogama
|""""""""""""""""""""""""""""|\|_
| Voto Distrital ! |||"'|""\__
|______________________|||_|____|)
!(@)'(@)""""*********!(@)(@)*****!(@)
Em 1 de novembro de 2017 16:21, Antonio Terceiro <[email protected]>
escreveu:
> On Wed, Nov 01, 2017 at 02:20:18PM -0200, Luís Cláudio A. Gama wrote:
> > Boa tarde a todos,
> >
> > Vou instalar um SAT fiscal plugado em USB na máquina.
> >
> > Esse SAT cria:
> >
> > lrwxrwxrwx 1 root root 7 Nov 1 13:52 */dev/ttyTS0* -> ttyACM0
> >
> > E eu preciso dar permissões nesse ttyTS0 para que o usuário possa
> executar
> > minha aplicacaçao e acessar o SAT.
> >
> > já coloquei em /etc/rc.local
> > chmod 777 /dev/TS0
> >
> > Ao inicializar a máquina tudo funciona ok.
> >
> > Porém estou pensando numa situação em que o SAT é desplugado da USB e
> > replugado novamente, e isso irá fazer com que as permissões sejam
> perdidas.
> >
> > Para não ter que reiniciar a máquina nessa situação, pesquisei a respeito
> > de executar um script para essas permissões como root.
> >
> > Criei o scritp initsat.sh
> > #!/bin/bash
> > chmod 777 /dev/ttyTS0
> >
> > Aí dei os comandos:
> >
> > chown root:root initsat.sh
> >
> > chmod 777 initsat.sh
> >
> > e também chmod +s initsat.sh
> >
> >
> > As permissões ficaram assim:
> >
> > -rwsrwsrwx 1 root root 34 Nov 1 14:00 initsat.sh
> >
> >
> > porém ao executar o script com meu user:
> >
> >
> > luis@hal9000:/mnt/midia4/prj/qt/scripts$ ./initsat.sh
> >
> > chmod: alterando permissões de “/dev/ttyTS0”: Operação não permitida
> >
> > luis@hal9000:/mnt/midia4/prj/qt/scripts$
> >
> > Alguém pode me dar uma sugestão?
>
> se tudo que que você precisa é configurar as permissões do dispositivo
> quando ele for plugado, sugiro escrever e instalar uma regra do udev.
> tem documentação disso na internet.
>
> e ao invés de usar 777, eu sugiro usar 660 e configurar o dono/grupo do
> dispositivo pra o usuario/grupo que roda a sua aplicação.
>
<https://mailtrack.io/> Sent with Mailtrack
<https://chrome.google.com/webstore/detail/mailtrack-for-gmail-inbox/ndnaehgpjlnokgebbaldlmgkapkpjkkb?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality>