Como as regras do udev são estruturadas
Para dispositivos que caem no subsistema tty, você pode definir o grupo deles da seguinte maneira:
SUBSYSTEM=="tty", GROUP="dialout"
Observe que, assim como na programação comum, ==
é um teste para igualdade, enquanto =
é uma atribuição. Assim, a declaração acima se traduz em "se SUBSYSTEM=="tty"
, em seguida, atribuir GROUP="dialout"
. Uma instrução pode ter vários testes, que são juntos, e várias atribuições.
Se você quiser alterar as permissões de execução de leitura e gravação, atribua MODE em vez de GROUP, em que MODE segue a notação octal Unix usual, por exemplo, MODE="0660"
concede ao proprietário e ao grupo permissões de leitura e gravação. man udev
tem todos os detalhes.
Você pode encontrar muitos exemplos de tais regras em /lib/udev/rules.d/91-permissions.rules
Como adicionar uma regra do udev ao seu sistema
Depois de decidir o que você quer que sua regra seja, basta adicioná-la. Em um sistema derivado do debian, vá para o diretório /etc/udev/rules.d
e crie um arquivo. Os arquivos são executados em ordem de classificação. Portanto, para tornar o arquivo de regras o último a ser lido, substituindo os anteriores, tente um nome como 99-instruments.rules
. Em seguida, coloque suas regras nesse arquivo, uma por linha. (Se necessário, as linhas podem ser estendidas colocando uma barra invertida no final da linha, assim como no shell).
Portanto, se você quiser alterar o grupo e as permissões em dispositivos tty, seu arquivo /etc/udev/rules.d/99-instruments.rules
poderá consistir na única linha:
SUBSYSTEM=="tty", GROUP="dialout", MODE="0660"
Para garantir que o seu novo arquivo tenha as permissões usuais:
sudo chown root:root /etc/udev/rules.d/99-instruments.rules
sudo chmod 0644 /etc/udev/rules.d/99-instruments.rules
Depois de criar seu arquivo, o udevd poderá lê-lo automaticamente. Se não, você pode forçá-lo a reler seus arquivos com:
udevadm control --reload-rules
Mais sobre como o udev classifica os dispositivos
Se você deseja obter um controle mais preciso sobre quais dispositivos respondem a quais regras, saiba mais sobre como o udev vê seus dispositivos analisando / sys /. Neste momento, eu não tenho acesso a uma máquina com um ttyUSB ou um HPIB, então vamos fazer um exemplo de sda de disco. Executar:
udevadm info --attribute-walk --path=/sys/block/sda
Isso fornece muitas informações que parecem:
. . . .
KERNEL=="sda"
SUBSYSTEM=="block"
DRIVER==""
ATTR{range}=="16"
ATTR{ext_range}=="256"
ATTR{removable}=="0"
. . . .
Essas linhas estão todas no formato adequado para usar como cláusulas if
nas regras. Por exemplo, para alterar a propriedade de todos os dispositivos de bloco marcados como não removíveis, usaríamos a regra:
SUBSYSTEM=="block", ATTR{removable}=="0", OWNER=john1024
Com informações de udevadm
, é possível desenvolver regras que podem segmentar especificamente os dispositivos de interesse.