FEATURE REQUEST: Add possibility to change ownership of coppied by role files to destination location
Opis sytuacji w której to jest przydatne
- Mam sobie środowisko w którym certyfikaty muszą być możliwe do odczytania przez określonego użytkownika w systemie
- Rola certbot po wygenerowaniu certyfikatów umożliwie skopiowanie poszczególnych plików do określonych lokalizacji w filesystemie, i teraz są dwie możliwości:
- plik docelowy nie istnieje, kopiowany jest plik z pełnymi uprawnieniami i ownerem tak jak został wygenerowany (owner root, uprawnienia (
-rw-r--r--
, klucz chyba nie ma prawa do czytania przez innych?) - plik docelowy istnieje, uprawneinia i owner tych plików podczas kopiowania nie zmeinia się
- plik docelowy nie istnieje, kopiowany jest plik z pełnymi uprawnieniami i ownerem tak jak został wygenerowany (owner root, uprawnienia (
Tak więc używając tej roli na środowisku gdzie działa już jakaś aplikacja serwis gdzie były certtyfikaty nic się nie będzie zmeiniać, jeśli jednak usuniemy te pliki (lub zaoramy po prostu środowisko i odtworzymy) to uprawnienia mogą konfliktowac z tymi oczekiwanymi.
Propozycja
Dodajmy możliwość definiowania dla każdego z plików jaki ma być owner i może przy okazji też mode takiego pliku.
Aktualne api roli w tym zakresie
certbot_certificate:
- domain: "some.domain.com"
on_renewal:
copy_files:
certificate:
- "/etc/custom_service/certificate"
- "/etc/custom_service/certificate_copy/copy_cert.pem"
chain:
- "/etc/custom_service/certificate"
- "/etc/custom_service/certificate_copy/copy_chain.pem"
full_chain:
- "/etc/custom_service/certificate"
- "/etc/custom_service/certificate_copy/copy_fullchain.pem"
private_key:
- "/etc/custom_service/certificate"
- "/etc/custom_service/certificate_copy/copy_key.pem"
Przykładowa zmiana API roli w tym zakresie
certbot_certificate:
- domain: "some.domain.com"
on_renewal:
copy_files:
certificate:
- path: "/etc/custom_service/certificate"
mode: "u=rw,g=,o=" # default "u=r,g=,o=" ??
uid: 999 # default root
gid: 999 # default root
- path: "/etc/custom_service/certificate_copy/copy_cert.pem"
mode: "u=rw,g=r,o=" # default "u=r,g=,o=" ??
uid: 1058 # default root
gid: 1058 # default root
chain:
- path: "/etc/custom_service/certificate"
mode: "u=rw,g=r,o=" # default "u=r,g=,o=" ??
- path: "/etc/custom_service/certificate_copy/copy_chain.pem"
mode: "u=rw,g=r,o=" # default "u=r,g=,o=" ??
full_chain:
- path: "/etc/custom_service/certificate"
uid: 1058 # default root
- path: "/etc/custom_service/certificate_copy/copy_fullchain.pem"
uid: 1058 # default root
private_key:
- path: "/etc/custom_service/certificate"
uid: 1058 # default root
- path: "/etc/custom_service/certificate_copy/copy_key.pem"
uid: 1058 # default root
Motywacje
Generlanie potrzebne mi to było w jednym miejscu i na ten moment poradziłem sobie w taki sposób że zmieniam ownera w dostarczanym skrypcie relodującym, jednak wydaje mi się to nie fajną rzeczą że rola zostawia inny stan w zależności czy pliki istnieją i mają innego ownera/mode czy nie istnieją i chyba warto byłoby to zmienić.
Edited by Krzysztof Szymański