Então eu tenho um caso um pouco especial.
Depois que a máquina inicializar, preciso que uma das unidades da máquina tenha uma partição não formatada que seja gravável por todos.
O motivo: um aplicativo está criando seu próprio sistema de arquivos nessa partição.
O problema:
Eu montei um script systemd que faz umchmod a+rw /dev/$partition_name
Se eu verificar as permissões via stat
ou ls -l
, a permissão gravável "outra" parece boa
por exemplo ébrw-rw-rw-
NO ENTANTO, depois que a máquina inicializou, as permissões foram alteradas para:
brw-rw---
.
Então as perguntas:
- por que as permissões continuam mudando?
- qual é a maneira correta de fazer isso?
Provavelmente é o udev aplicando permissões padrão após seu processamento de regras. Em outras palavras, seu serviço roda muito cedo , pois não declarou as dependências corretas, então ele corre contra outros serviços.
Os dispositivos não são criados em um instante – há uma quantidade de tempo diferente de zero durante a qual o dispositivo está sendo configurado pelo udev (seja para alterar as permissões do nó /dev ou alterar a configuração do hardware ou carregar o firmware), e os programas que desejam usar esse dispositivo durante a inicialização devem esperar pelo evento 'ready'. Por exemplo, seu serviço deve ter
After=dev-sdc3.device
se usar /dev/sdc3.Use uma regra udev para definir permissões em nós de dispositivos.
(Tenho certeza de que seu aplicativo não precisa ser legível e gravável por todos.)