Boas,
Eu ainda acho que a melhor opção até agora seria a de usar o sudoers
como o Fred Maranhão recomendou. Você já tentou essa opção?
eu teria receio de fazer isto:
fulano ALL=(ALL) NOPASSWD: ALL
mas não isto:
fulano ALL=(ALL) NOPASSWD: /usr/local/bin/initsat.sh
Abraço
Em qui, 2 de nov de 2017 às 11:56, Luís Cláudio A. Gama
<luisg...@gmail.com> escreveu:
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.
Sent with Mailtrack