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

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



Ninguém sugere usar setuid? Igual a como o passwd faz para alterar o /etc/passwd e /etc/shadow.

Para usá-lo basta colocar um usuário com permissão deste /dev/tty* como dono do arquivo, usar o chmod para definir essa permissão. Único detalhe é que é necessário cuidar dados para o script não ter falhas de segurança, mas funciona sem pedir permissão.

Blog: https://eduardoklosowski.wordpress.com/
GitLab: https://gitlab.com/u/eduardoklosowski/
GitHub: https://github.com/eduardoklosowski/

Em 01-11-2017 16:04, Marcos Carraro escreveu:
Compila o script com shc.

*--*
Att
Marcos Carraro <http://br.linkedin.com/in/mcarraro>


Em 1 de novembro de 2017 15:57, Paulino Kenji Sato <pksato@gmail.com <mailto:pksato@gmail.com>> escreveu:

    Ola,

    2017-11-01 14:20 GMT-02:00 Luís Cláudio A. Gama <luisgama@gmail.com
    <mailto:luisgama@gmail.com>>:

        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


    Isso e um symlink, link para o dispositivo real. Que eo /dev/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.


    Nos sistemas atuais, o /dev  e montado em memoria ram (devtmpfs),
    tudo e perdido no reboot.

    Se esse for o único dispositivo ttyACM0, re plugar o USB em
    condições normais não deveria trazer problemas.

    A forma correta de lidar com permissões no /dev e colocar o usuário
    no grupo adequado. No caso do ttyACM* e o grupo dialout (assim como
    outros dispositivos seriais)
    # addgroup usuario dialout

    Se for necessário que, ao plugar um dispositivo, seja necessário
    executar alguma ação, esse deve ser realizado pelo udev
    (systemd-udevd.service). O link ttyTS0 inclusive deve estar sendo
    criado por um script disparado pelo udev.

    Não estou familiarizado com systemd, portando não poderei dar
    maiores explicações.

    Lembre-se, se uma programa precisa de permissões de root, algo esta
    errado. Nos que realmente precisam, isso já esta sendo feito de
    forma transparente ao usuário.


-- Paulino Kenji Sato




Reply to: