Ještě bych chtěl doplnit takový malý postřeh s právy roota.
Juwa2 navrhoval 1. hddtemp vyžaduje root práva. Aby se nemusel přidávat do vyjímek v sudoers, je jednodušší mu práva změnit takto:
Kód: [Vybrat]
sudo chmod u+s /usr/sbin/hddtemp
Takovému řešení je lepší se vyhnout. Ne že by nefungovalo a je příjemně jednoduché. A bude jistě fungovat nějaký čas a možná i pořád. A to je ten kámen úrazu. Může a nemusí. Nevím jak je to u jiných distribucí avšak ubuntu si dost často mění při upgradu práva na ta původní daná systémem. To znamená, že jednoho dne po
sudo apt update
sudo apt upgrade
si systém vrátí práva do defaultu a přestane to fungovat a pak chvilku trvá najít proč to nejde. Při hledání chyby naseká člověk větší paseku. Protože poslední na co by v té chvíli pomyslel, je změna práv do defaultu. Z toho důvodu tu máme soubor /etc/sudoers. No jo, jenže jak jsem psal o příspěvek výše. Chyba se může vloudit a ani pak nemusí systém naskočit. A tak tu máme adresář /etc/sudoers.d. Všimni si toho .d na konci. A ten nám dovoluje si tam ty práva upravit jak potřebujem aniž by to systém přepsal a zároveň to systém musí akceptovat. Pár vyjímečných věcí v tomto adresáři je. A to práva k samotným souborům, ty musí být bezpodmíněčně 0440. Dále název souboru nesmí obsahovat znak . (tečku) a ani znak ~(tilda/vlnovec). Abysme to nemuseli složitě kontrolovat a nastavovat, vymysleli tvůrci příkaz visudo:
sudo visudo -f /etc/sudoers.d/mujers
Zkus si to a uvidíš jak je to vymakané a blbuvzdorné. Funguje to tak, že se tam něco napíše. Soubor se při uložení automaticky uloží s příponou .tmp (v našem případě mujers.temp) a proběhne syntaktická kontrola souboru. Pokud je vše ok soubor se automaticky přejmenuje na původně zadané jméno a je to. Pokud se tam vyskytne chyba, uživatel je upozorněn na jakém řádku má chybu a musí zvolit jak to vyřešit. Ještě jedna věc je tam důležitá a trochu matoucí. Znak # na začátku řádku tradičně znamená komentář. Avšak ve spojení se slovem include #include se jedná o céčkovou "funkci". Zpět k našemu příkladu. Spustíme sudo visudo -f /etc/sudoers.d/mujers a přidáme tam řádek pepan ALL=NOPASSWD: /usr/sbin/hddtemp, /usr/sbin/smartctl kde pepan je uživatel kterého se mají ty práva týkat. ALL na jakém stroji to platí, v tomto případě všude. NOPASSWD: znamená nechtít heslo. A za dvojtečkou následují programy/skripty s jejich absolutní cestou oddělené čárkou. Od teď se dá smartctl a hddtemp spustit příkazem sudo smartctl a sudo hddtemp a nebude to chtít heslo. Což se nemusí někomu zrovna dvakrát líbit, přece jen bez toho sudo je to komfortnější. No, tak tu máme starý dobrý soubor .bashrc v domovském adresáři. Do něho přidáme řádek alias smartctl='sudo smartctl' a pak už jen napíšem do terminálu
source .bashrc
a funguje to. A protože *nixy mají i jiné možnosti, nemusí se otvírat textový editor. Stačí zadat do terminálu tuto posloupnost:
echo "alias smartctl='sudo smartctl'" >> ~/.bashrc
echo "alias hddtemp='sudo hddtemp'" >> ~/.bashrc
source ~/.bashrc
a ono to žije tak jak bylo zamýšleno A bude to žít i po všemožných upgradech. Od teď uživatel spouští programy smartctl a hddtemp tak jak je napíše s právy roota.
Trochu rozeberu echo "alias smartctl='sudo smartctl'" >> ~/.bashrc:
echo nemusím představovat. V tomto případě vyhodí na standardní výstup co máme v dvojitých uvozovkách. Pak tu máme počin >>. To je přesměrování výstupu do souboru. Jedno "většítko" > znamená co je před vlož do názvu souboru co je za. Pokud soubor neexistuje vytvoří se automaticky. Pokud existuje, je přepsán novým. Což není to pravé ořechové. A tak máme "zdvojené většítko" >>. Jeho úkol je co přijme (co je před ním) to zapíše na konec souboru jehož název je za ním. V našem případě výstup z echa alias smartctl='sudo smartctl' připojí na konec souboru ~/.bashrc. Příkaz source ~/.bashrc udělá, že bez restartu či odhlášení a opětovného přihlášení uživatele, načte náš upravený soubor do systému a od teď se všechny změny v něm uplatní.
Ještě malý dodatek. Než začneš přidávat žádaný program do souboru v sudoers.d nejdříve si zjisti jaká je jeho absolutní cesta. Na to máme nástroj which. Zadáme třeba
which smartctl
a máme jasno. Oni totiž ne všechny programy, které potřebují práva roota, se nachází v /usr/sbin/. Například mount se nachází v obyčejném /usr/bin/.
Hm.. To všechno je sice pravda, ale je to už takové to "s kanónem na vrabce".....
Mě se práva hddtemp nezměnily několik let, přežily i povýšení systému. A pokud by ke změně přeci jen došlo, zjistím to okamžitě: Conky přestane zobrazovat teplotu disků. Pak není problém si ten příkaz debugnout a je to.
Momentálně jedu na jádru 5.4 (bionic-hwe), tudíž příkaz pro načtení modulu drivetemp (sudo modprobe drivetemp) skončí pochopitelně chybou.
Jinak teploty disků je vhodné sledovat. Měl jsem tu uživatele který si do obyčejného NTB dal větší HDD (1TB Seagate). Ano, byl levný, ale bohužel SMR. Tudíž na systém nevhodný, topil jako kráva (ve smartu je 68 C). Už údaj na štítku byl varovný (5V/1.2A) - původní HDD měl 5V/0.45A....
Takže šel pouze "na data" místo DVD mechaniky - tam slouží dobře, moc nehřeje. A na systém se dal 250GB SSD.