Ola, Continuo insistindo que o local correto de tratar os dispositivos e pelo udev. Pode ser que o /dev/ttyACMx não pertença ao grupo dialout, confira qual o grupo pertence esse dev (ls -l /dev/ttyACM0). O fabricante forneceu as regras do udev, então basta melhorar-lo, por exemplo acrescentando o modo.
SUBSYSTEM=="tty", ACTION=="add", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="0525", SYMLINK+="ttyTS0",MODE="0660" Ou um modo mais permissivo, como 0666. Verifique qual e o grupo do device, inclua os usuários nesse grupo (precisa fazer o login para validar as mudanças, existe um comando que recerrega, mas não lembro) # adduser fulano grupo_do_dev Verifiquei que o dialout e um dos grupos em que um usuário novo e adicionado ao criar-lo. Caso necessite adicionar um novo grupo ao criar um usuário, modique o arquivo /etc/adduser.conf. (pode ser que isso tenha mudado) Talvez, o ttyACM* não esteja sendo associado a nenhum grupo, então podemos mudar a regrar para: SUBSYSTEM=="tty", ACTION=="add", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="0525", SYMLINK+="ttyTS0",MODE="0660",GROUP="dialout" Depois de modificar as regras do udev e necessario reinicar os serviços relacionados # udevadm control --reload-rules && service udev restart && udevadm trigger Dependendo o tipo de aplicação, o ideal seria impedir o usuário de ter acesso físico as conexão usb, e outros. 2017-11-02 9:56 GMT-02:00 Luís Cláudio A. Gama <luisg...@gmail.com>: > 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 <terce...@debian.org> > 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> > -- Paulino Kenji Sato