[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: como executar script em user normal com "poderes" de root



Pode-se também utilizar o sudo.

Em 1 de novembro de 2017 13:44, Linux - Junior Polegato <linux@juniorpolegato.com.br> escreveu:
Em 01-11-2017 14:20, Luís Cláudio A. Gama escreveu:
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?


Olá!

        Pelo que pude ver, /dev/ttyTS0 é uma ligação simbólica para ttyACM0, o que significa que tudo que fizer sobre /dev/ttyTS0, exceto excluir, reflete diretamente em ttyACM0. Dessa forma, o que você está tentando alterar é o arquivo destino e não a ligação simbólica. Qual a saída de "ls -al /dev/ttyACM0"?

        Lendo seu script initsat.sh, o que ele está tentando fazer? Qual a linha do chmod?

        Na minha humilde opinião, o mais sensato seria adicionar o usuário ao grupo que tem acesso ao /dev/ttyACM0.

-- 

[]'s

Junior Polegato


Reply to: