Które możliwości systemu Linux są potrzebne do zapisu na urządzeniu?

0

Ustawiłem Home Assistant w pojemniku Kubernetes. Potrzebuje dostępu do zapisu do urządzenia / dev / ttyACM0 na komputerze hosta (tj. Na komputerze, na którym działa kontener). Działa, jeśli sprawię, że kontener „uprzywilejowany” w Docker będzie mówił. Kubernetes nie daje bezpośredniego dostępu do silnika Docker, ale „uprzywilejowany” jest możliwy także z Kubernetes.

Problem polega na tym, że uprzywilejowanie kontenera jest środkiem ostatecznym. Kubernetes pozwala także na ustawienie możliwości Linuksa. Teraz zastanawiam się, czy możliwe jest udzielenie prawa zapisu do / dev / ttyACM0 tylko (zestawem) możliwości Linuksa?

Za to, co jest warte, SYS_RAWIO+ SYS_ADMINnie wystarczyło.

Torsten Bronger
źródło

Odpowiedzi:

0

FOWNERpowinien to zrobić. Chyba że oprogramowanie jest o kwestie wydawania ioctl do konfigurowania łącza (w tym przypadku prawdopodobnie trzeba albo SYS_ADMINalbo TTY_CONFIG), problem jest tylko jednym z uprawnieniami plików.

To powiedziawszy, FOWNERto BARDZO niebezpieczna zdolność do rozdawania. Wszystko, co ma taką możliwość, może obejść WSZYSTKIE sprawdzanie uprawnień systemu plików.

Alternatywnie, rozważ jeden z następujących sposobów, jeśli możesz uruchomić ten kontener pod własnym użytkownikiem:

  • Dodaj tego użytkownika do dowolnej grupy /dev/ttyACM0. Zazwyczaj ta grupa będzie się nazywać coś takiego tty, serialalbo console, chociaż to może zamiast być usbalbo hotplug. Jest to najłatwiejsza opcja, ale jest ona tylko trochę bezpieczniejsza niż korzystanie z możliwości, ponieważ ta grupa zazwyczaj ma własność węzłów urządzeń dla wszystkich urządzeń szeregowych i może dodatkowo posiadać wszystkie węzły urządzeń terminali wirtualnych.
  • Napisz regułę udev, aby dopasować dane urządzenie i dodać do niego listę ACL, aby umożliwić użytkownikowi kontenerowi dostęp do niego. Jest to najbezpieczniejsza dostępna metoda, ponieważ oznacza, że ​​kontener może uzyskać dostęp tylko do tego konkretnego węzła urządzenia. Jeśli masz więcej niż jedno urządzenie USB ACM, upewnij się, że pasuje do kombinacji różnych identyfikatorów sprzętowych, ponieważ kolejność wyliczania urządzeń USB nie jest stabilna i zwykle zmienia się od jednego rozruchu do następnego.
Austin Hemmelgarn
źródło