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>

Responder a