Kuulostaa sudotusvirheeltä tai sitten paketoinnissa on vikaa. Jos joku ohjelma kirjoittaa gnupg-asetuksia käyttäjän kotihakemistoon, sitä ei todennäköisesti ole tarkoitus ajaa sudolla.
sudo:n ominaisuus. Jos sudo:n alla ajaa ohjelmia, niiden asetukset tallentuu käyttäjän eikä "rootin" hakemistoon. Jos asetuksia .config ym. kansiossa ei ole se saa rootin oikeudet! Näin käy varsinkin asennuksen alkuvaiheessa. su - on muissa jakeluissa käytäntö ja ohjelmien asetukset tallentuu oikeaan paikkaan.
Tätä juuri tarkoitin sudotusvirheellä, eli sudolla on ajettu joku väärä ohjelma. Sudoa voi käyttää suoraan useimpien peruskomentojen ajamiseen, koska ne eivät tallenna asetuksia mihinkään. Isommat graafiset ohjelmat taas pitää yleensä ajaa sudo -i:llä, jolloin käytössä on root-tunnuksen ympäristömuuttujat ja kotihakemisto. Esimerkiksi:
sudo -i gedit
Aiemmin suositeltiin gksudoa tai gksu:ta, mutta ne eivät enää kuulu Ubuntun oletusasennukseen ja saattavat jossain vaiheessa poistua jakelusta kokonaan.
Monet ylläpitotason graafiset asetusohjelmat käynnistetään ilman sudoa ja ohjelma hankkii tarvittavat oikeudet itse kysymällä käyttäjältä salasanaa.
Yksi omituisuus echo "USB0" > /proc/acpi/wakeup
Ei tunnu onnistuvan edes sudo:lla.
Jos lisäät tuohon eteen sudon, se ajaa komennon
echo USB0 pääkäyttäjän oikeuksin, mutta stdout-tulosteen uudelleenohjaus tiedostoon (
> tiedosto) tapahtuu alkuperäisen käyttäjän oikeuksin. Tämä on komentotulkin ominaisuus.
tee on kätevä komento tällaisissa tapauksissa. Se lukee syötettä esim. putkesta ja tulostaa sen sekä stdoutiin että annettuihin tiedostoihin:
echo "USB0" | sudo tee /proc/acpi/wakeup
Jos jossain tapauksessa merkkijono pitää lisätä vain tiedoston loppuun kirjoittamatta koko tiedoston yli, käytä teen parametria -a