Como você define ReadOnlyDirectories com systemd-run?

3

Estou tentando impedir que o Juniper Network Connect (um cliente vpn) modifique /etc/resovl.conf , o que eu esperava fazer com o systemd-run. Eu tentei:

systemd-run --property=ReadOnlyDirectories=/etc ./ncsvc -h <redacted> -u <redacted> -p <redacted> -f <redacted>.der -L 2

Recebo a seguinte mensagem de erro:

Unknown assignment ReadOnlyDirectories=/etc.
Failed to create bus message: No such device or address

Eu também recebo a mesma mensagem executando um exemplo simples:

systemd-run --property=ReadOnlyDirectories=/etc env 

Como posso executar um processo com o systemd-run e ter o ReadOnlyDirectories definido?

    
por Gary van der Merwe 21.05.2015 / 13:47

3 respostas

1

Você pode executar um processo com systemd-run e ter ReadOnlyDirectories definido desde v228 :

A number of properties previously only settable in unit files are now also available as properties to set when creating transient units programmatically via the bus, as it is exposed with systemd-run's --property= setting. Specifically, these are: SyslogIdentifier=, SyslogLevelPrefix=, TimerSlackNSec=, OOMScoreAdjust=, EnvironmentFile=, ReadWriteDirectories=, ReadOnlyDirectories=, InaccessibleDirectories=, ProtectSystem=, ProtectHome=, RuntimeDirectory=.

    
por 19.11.2015 / 05:56
3

Você atualmente não pode, nem todas as propriedades são configuráveis, mas está na lista TODO para corrigir isso.

aqui:

* allow implementation of InaccessibleDirectories=/ plus
  ReadOnlyDirectories=... for whitelisting files for a service.

e aqui:

* document:

...

  - document in wiki how to map ical recurrence events to systemd timer
    unit calendar specifications
  - add a man page containing packaging guidelines and recommending 
    usage of things like Documentation=, PrivateTmp=, PrivateNetwork= 
    and ReadOnlyDirectories=/etc /usr.
  - document systemd-journal-flush.service properly

...

Referência

por 21.05.2015 / 15:26
2

Não tenho certeza se essa é uma solução adequada para você, mas chattr +i /etc/resolv.conf torna o arquivo imutável, impedindo, portanto, que alguém o modifique - até mesmo o root.

    
por 21.05.2015 / 17:13

Tags