Hlavní navigace

Názor ke zprávičce Bizarní chyba v systemd od Filip Jirsák - Položka User v unit souboru není povinná. Pokud...

  • Aktualita je stará, nové názory již nelze přidávat.
  • 3. 7. 2017 10:23

    Filip Jirsák

    Položka User v unit souboru není povinná. Pokud není uvedena nebo má chybný formát a jde o systémový unit file, použije se uživatel root. (Kdyby to tak nebylo a User bylo povinné, budou si ti samí lidé stěžovat, že je to nesmysl, že je přece logické, že chci systémovou službu spouštět jako root.) To, že je nevalidní uživatelské jméno s nulou na začátku, je jen jeden z mnoha případů. Když jako uživatele zadáte třeba @"#!, bude to také vyhodnoceno jako syntakticky chybné uživatelské jméno a řádek bude ignorován. A systemd se chová tak, že pokud narazí na neznámou volbu nebo volbu s chybnou syntaxí, vypíše varování do logu a volbu ignoruje. To zajišťuje zpětnou kompatibilitu, protože jednotku s novou volbou nebo novým formátem volby spustíte i pod starším systemd. Jediným řešením by tedy bylo vybrat některé volby, a v jejich případě chybnou syntaxi nevyhodnocovat jako varování ale jako chybu. Jenže které volby byste do takového seznam u vybral a proč? Není lepší, když jsou pravidla pro všechny volby stejná?

    Zkrátka se předpokládá, že správce systému má jednotky napsané správně. Když správce v jednotce uvede jiného uživatele, než chtěl, nebo jiný příkaz, taky se provede něco jiného, než správce zamýšlel.