Meu script precisa de acesso de gravação para / dev / sdX. Como evitar runnig-lo como root?

1

Estou desenvolvendo um script Bash que lida com formatação e testes (com f3 ) de enormes quantidades de drives USB, como este:

mkntfs -QF /dev/sdX

Eu costumava simplesmente executar esse script como root:

sudo MyScript.sh

No entanto, hoje, enquanto reformulamos essa ferramenta para nos tornarmos modulares, eu consegui acidentalmente fazer algo que explodiu meu SO toda vez que eu executava esse script. Várias aplicações fecham ou quebram, e não posso mais executar tarefas básicas de linha de comando. Felizmente, uma reinicialização corrige tudo, mas isso me fez pensar novamente - talvez eu realmente não execute este script como root?

O problema é - eu preciso executar algumas ações que são restritas de usuários normais (como acesso de gravação a arquivos de caractere de dispositivo em / dev /).

O que posso fazer para conceder permissões precisas ao meu script e evitar a possibilidade de que um erro de digitação desajeitado limpe meu disco rígido ou destrua meu /dev/null ?

    
por unfa 18.07.2018 / 17:13

1 resposta

5

Você pode adicionar uma regra udev para corresponder às unidades USB e torná-las graváveis por um grupo de sua escolha e executar o script nesse grupo.

As seguintes correspondências devem identificar unidades USB removíveis:

KERNEL=="sd*[!0-9]", ATTR{removable}=="1", SUBSYSTEMS=="usb"
    
por 18.07.2018 / 17:19