Ich antworte nun mal auf alle Fragen, auch wenn einiges mittlerweile vielleicht schon geklärt ist:
Max-Ulrich Farber schrieb:
gksudo hat dies jedenfalls eine zeitlang nicht unterstüzt
Das ist wohl schon länger vorbei.
Der Bugreport ist noch offen. Auch unter 12.04 konnte ich es immer noch nachvollziehen. Wohlgemerkt: Das Problem bezieht sich nur auf graphische Programme. Wenn user X Admin ist, dann kann er zwar
X $ gksudo -u Y vi
aber leider nicht
X $ gksudo -u Y gedit
. Ist aber im Artikel derzeit so beschrieben.
Die Unterschiede mit gksudo, kdesudo, su vor allem hinsichtlich der Ablage temporärer Dateien usw. werden nicht klar herausgestellt
Die sind mir leider nicht ganz klar geworden. Siehe Beispiel unten.
Ok. Ich dachte, es ging dir um temporäre Dateien. Du meinst aber wohl eher $HOME?
Es steht zwar drin, dass die Option -H empfohlen sei, weil sonst Ungedeih passieren kann. Auf welche Art von Programmen bzw. auf welches Vorgehen (den ersten Programmstart mit Root-Rechten ausführen) sich dies beschränkt, ist aber nicht klar erkennbar.
Das Problem ist, dass man die Art von Programme nicht gut beschreiben kann. Es betrifft alle Programme, die eben Dateien unterhalb von $HOME anlegen. Ob ein Problem daraus entsteht, hängt dann aber eben stark vom Programm ab.
Es muss wohl auch etwas gegen die Option -H sprechen, sonst wäre diese wohl in Ubuntu und Debian Default-Einstellung (?). Die Thematik ist für mich nicht ganz durchsichtig geworden.
Dagegen spricht, dass sudo eben auch tief im System verwendet wird und dort u. U. gerade darauf baut, dass $HOME NICHT verändert wird. Eine Änderung des Defaults wäre aus User-Sicht also zu begrüßen. Aus System-Sicht wird es nicht gewagt, da die negativen Seiteneffekte so einer Änderung nicht überschaubar sind. Jedenfalls will sich niemand darum kümmern.
Die graphischen "Sudos" verwenden implizit -H.
Auch das Home von Root wird meistens verwendet
Doch nur mit den Optionen -H und -i, also standardmäßig eben nicht.
Richtig. Aber von (gk|kde)su[do] wird es immer verwendet. Daher meistens
farber@Desktop-PC:~$ sudo -H echo $HOME
[sudo] password for farber:
/home/farber
Das ist kein Problem von sudo -H: Shellvariablen werden von der aktuellen Shell grundsätzlich aufgelöst, bevor überhaupt ein Kommando ausgeführt wird. Es heisst also bereits
farber@Desktop-PC:~$ sudo -H echo /home/farber
. bevor sudo ausgeführt wird.
Ein korrekter Test wäre
Aber das versteht keiner.
Du bist nicht der erste, der in diese Falle getappt ist
. Ist aber eben ein Shell-Problem und hat mit sudo nichts zu tun!
Möchte man einfach sudo dauerhaft anwenden, geschieht dies doch mit sudo -s [...] Doch von sudo -s ist in dem Artikel überhaupt nicht die Rede.
Im Artikel wird das "bessere" sudo -i erwähnt (z.B. beinhaltet -i auch das Umstellen von HOME, was von -s nicht gemacht wird...)
Ich empfinde es so, wie wenn hier mit der Option -H und der Shell-Initialisierung mittels sudo -i aus welchen Gründen auch immer etwas zum Standard gemacht werden sollte, was eben nicht der Ubuntu-Standard ist. Die Verwendung des Heimverzeichnisses /root ist in Ubuntu zwar möglich, aber nicht Standard.
Nicht Standard? (gk|kde)su[do] machen es genau so. Nur "sudo" tritt hier aus der Reihe. Es gibt gar keinen Standard.
Ich habe nichts dagegen, wenn etwas, was vom Standard abweicht, trotzdem beschrieben wird. Aber so, wie es hier geschehen ist, empfinde ich es für Newcomers (und nebenbei auch für mich selbst) eher als verwirrend. Tut mir Leid, wenn das jetzt etwas hart klingt.
Braucht Dir nicht Leid tun. Kritik ist immer gut. Das Problem ist, dass es anders eben auch verwirrend ist. sudo, kdesudo, gksudo, kdesu, gksu haben leider einige Ungereimtheiten. Wir haben versucht, diese zu beschreiben. Dabei ist der Artikel so gedacht, dass er einfach beginnt, dann immer spezieller wird. Bestimmt kann man das noch besser herausarbeiten.
Der Artikel gibt die Empfehlung, bei "sudo" einfach immer die Option -H anzugeben. Das muss man nicht unbedingt verstehen, die Empfehlung sollte reichen. Wer die Hintergründe dafür wissen will, muss einfach weiter lesen und erfährt über das HOME-Problem.
und zwar darf admin damit mit Root-Rechten arbeiten, und sudo mit den Rechten eines beliebigen Benutzers incl. Root.
Das ist nicht richtig. admin erlaubt wie sudo den beliebigen Wechsel des User (sudo-Option -u). sudo erlaubt zusätzlich noch die freie Wahl der Gruppe (sudo-Option -g). Das ist aber nur eine sehr geringe Einschränkung: Da ich als Mitglied der Gruppe 'admin' ja root werden kann. kann ich in einem zweiten Schritt natrülich auch die Gruppe beeinflussen. Der Unterschied zwischen "admin" und "sudo" ist also wirklich minimal. Ich behaupte mal ganz frech, dass er wahrscheinlich nicht einmal beabsichtigt ist. Für den Artikel halte ich diesen Unterschied nicht relevant. Vielleicht "admin und sudo sind im Grunde gleichbedeutend". (Hintergrundinfo: admin ist definiert als "... (ALL) ...", sudo ist definiert als "... (ALL : ALL) ...")
Max-Ulrich Farber schrieb:
Ich halte es nach wie vor für den "normalen User" (also nicht für Experten, die etwas Besonderes vor haben) für richtig, in der Homepage des Ausgangs-Users (also nicht des Ziel-Users) zu arbeiten, also ohne die Option -H und mit -s statt -i, weil dies leichter verständlich ist und für den "Normalfall" genügt.
Mit "Homepage" meinst Du wahrscheinlich "Homeverzeichniss" oder? Ich möchte nur anmerken, dass das "current working directory" durch "-H" nicht verändert wird - nur der Inhalt von "$HOME". Durch ein
cd /home/normaluser
sudo -H vi .confdat
wird also natürlich die Datei /home/normaluser/.confdat editiert. VI schreibt seine internen Daten aber nach /root/...
Anders sieht dies tatsächlich beim Einsatz von "sudo -i" aus: Hier wird in das HOME gewechselt, also meistens nach /root. Eine Alternative wäre "sudo -Hs".
Außerdem ist dies eben in Ubuntu Standard.
Leider kann ich hier kaum einen sinnvollen Standard erkennen. Auf der einen Seite "sudo" mit seinen Besonderheiten, auf der anderen Seite KDE und GNOME, die mit ihren Implementierungen auch oft auseinanderliegen.
Den (meines Erachtens seltenen) Problemen, auf die DrScott zu Recht hinweist, könnte man IMHO einfach mit einem Hinweis folgender Art begegnen:
Hinweis:
Es empfiehlt sich, beim ersten Start von Programmen, die man danach auch ohne Root-Rechte starten möchte, kein sudo zu verwenden, da es sonst geschehen kann, dass dann beim Start als gewöhnlicher User die beim ersten Start angelegten Initialisierungs-Dateien nicht gelesen werden können.
Da finde ich die Formulierung "Nimm einfach immer -H" - gerade für Einsteiger - verständlicher 
Der ganze Rest, vor allem das "simulate initial login" bei -i, wäre dann eine Angelegenheit für Experten (oder, sagen wir mal, Fortgeschrittene).
Dem Nicht-Experten ist es egal, ob er "sudo -s" oder "sudo -i" eintippt. Der Experte wird wissen, was genau die Unterschiede sind. Da "-i" aber eben mindestens einen entscheidenden Vorteil hat, finde ich es richtig, diese Option im Artikel zu empfehlen.