Admin-Rechte temporär für eingeschränktes Konto auf GNU/Linux

RedBaron

Admiral Special
Mitglied seit
23.08.2006
Beiträge
1.634
Renomée
115
Hallo
Ich suche eine Möglichkeit,ein Programm wie der Befehl "Als Administrator ausführen"
auf Microsoft Windows zu starten.

Als Distribution verwende ich Ubuntu 12.10 64 Bit.
Mit den Befehlen
gksu -w -u Benutzername Anwendungsname
oder
su Benutzername Anwendungsname
bekomme ich von einem
Konto mit eingeschränkten Rechten nicht alle Programme im
Administratorkonto gestartet, obwohl ich das entsprechende Kennwort eingebe.

In der Datei /etc/sudoers kann ich zwar die Rechte für die einzelnen Gruppen
und Benutzer festlegen, jedoch habe ich da Bedenken wegen der Sicherheit,
zu dem wäre diese Lösung nicht so flexibel.

MfG
RedBaron
 
Zuletzt bearbeitet:
Um welche Programme geht's? Konsolenprogramme oder welche mit GUI? Schon ins UU-Wiki geschaut?

Übrigens macht ein su etwas anderes als ein sudo (und analog ein gksu etwas anderes als gksudo); IMO willst du aber nur einen einzelnen Befehl ausführen, brauchst also (gk)sudo.

MfG Dalai
 
Übrigens macht ein su etwas anderes als ein sudo (und analog ein gksu etwas anderes als gksudo); IMO willst du aber nur einen einzelnen Befehl ausführen, brauchst also (gk)sudo.
Naja, der einzige wirkliche Unterschied ist, dass du im einen Fall das Passwort des Zielkontos eingeben musst im anderen Fall dein eigenes.
 
Naja, der einzige wirkliche Unterschied ist, dass du im einen Fall das Passwort des Zielkontos eingeben musst im anderen Fall dein eigenes.
Nein, nicht wirklich, die Syntax ist unterschiedlich. Mit su kann man zwar auch ein Kommando absetzen, aber dafür braucht man den Schalter -c, wohingegen sudo das Kommando direkt als Parameter annimmt. Bei su ist wahrscheinlich noch entsprechendes Quoting nötig, wenn der Befehl seinerseits noch Parameter bekommen soll. Bei der grafischen Variante wird das ähnlich sein, aber mangels GUI auf meinen derzeit verfügbaren Linux-Kisten kann ich das nicht nachvollziehen.

Mal anschaulich:
Code:
su -c 'Befehl befehlsparameter'
sudo [-u username] Befehl befehlsparameter

MfG Dalai
 
Man hat auch verschiedene Environment-Zustände, je nachdem ob man mit "su", "su -" oder "sudo" etwas ausführt. In manchen Fällen kann das wichtig werden.

Aber für die ursprüngliche Frage hört sich "sudo" eigentlich als die Antwort der Wahl an.
 
Von /etc/sudoers lässt lieber erstmal die Finger! Konkretisier mal dein Anliegen, aber sudo + Befehl dürfte IMHO das Mittel der Wahl sein...
 
Hallo

@ Dalai :
Schon ins UU-Wiki geschaut?
Ja da habe ich die Informationen her.
Um welche Programme geht's? Konsolenprogramme oder welche mit GUI?
Meistens um Programme mit GUI, weniger Programme auf der Konsole.
Übrigens macht ein su etwas anderes als ein sudo
Ja das habe ich auch herausgefunden ;)

@ boidsen :
Von /etc/sudoers lässt lieber erstmal die Finger! Konkretisier mal dein Anliegen, aber sudo + Befehl dürfte IMHO das Mittel der Wahl sein...
Von den Dateien im etc VVerzeichnis möchte ich keine verändern.

Ein Befehl zum starten von Programmen mit GUI wie es
z.B. "Als Administrator ausführen" auf MS Windows es ermöglicht ist das
was ich suche.
Soll der Befehl sudo mit dem Parameter -H ausgeführt werden, damit die
Veränderungen im Homeverzeichnis übernommen werden ?

MfG
RedBaron
 
Ein Befehl zum starten von Programmen mit GUI wie es
z.B. "Als Administrator ausführen" auf MS Windows es ermöglicht ist das
was ich suche.
Einen solchen Eintrag im Kontextmenü wirst du (wahrscheinlich) vergeblich suchen, weil es unter Linux normalerweise nicht nötig ist, ein ganzes Programm als root auszuführen sondern selbst nach mehr Rechten fragen, wenn das notwendig ist. Davon abgesehen arbeitet ein sudo unter Linux völlig anders als ein "Als Administrator ausführen" unter Windows, was für dieses Thema aber keine Rolle spielt.

Um GUI-Programme als root auszuführen, bedarf es etwas mehr, als nur ein gksudo/kdesudo davorzusetzen. Das hat irgendwas mit restriktivem Zugriff auf den X (völlig zu Recht) oder nicht gesetzten Umgebungsvariablen zu tun. Da ich keine Notwendigkeit habe, sowas zu verwenden, kann ich da leider keine weiterführenden Infos geben.

Gib mal mehr Infos, was du eigentlich erreichen willst.

MfG Dalai
 
Normal mit sudo su in die root shell wechseln. Von dort aus kann man bei Ubuntu so ziehmlich alles starten. Anders bei Distris die noch extra eine Sperre für Gui Programmen und mehr drin haben.

Als ich noch ein AMD Sys hatte konnte ich mit k10ctl die Spannung senken. Kleines Skript geschrieben in /user/sbin kopiert, in die Datei Sudouser eingetragen und in den Autostart gelegt. Das war alles.
 
Hallo

@ Dalai :
Gib mal mehr Infos, was du eigentlich erreichen willst.
Zum Beispiel einen Dateimanager starten, um eine einzelne Datei
aus oder in das Homeverzeichnis des Administratorkonto zu kopieren.

@ Peet007 :

Der Befehl sudo su funktioniert zur zeit nur im Administratorkonto.

MfG
RedBaron
 
Zum Beispiel einen Dateimanager starten, um eine einzelne Datei
aus oder in das Homeverzeichnis des Administratorkonto zu kopieren.
Das sollte mit dem erwähnten (gk)sudo funktionieren.

Der Befehl sudo su funktioniert zur zeit nur im Administratorkonto.
Dann frage ich mal direkter: Hat der Nutzer, mit dem du das versuchst, überhaupt das Recht, Rootrechte zu erlangen? Standardmäßig ist das bei Ubuntu nur der erste (bei der Installation des Systems) erzeugte Nutzer. Zusätzlich angelegte Nutzer dürfen das erst, wenn sie (manuell) zum Mitglied einer bestimmten Gruppe (admin oder sudo) gemacht werden.

MfG Dalai
 
Hallo

@ Dalai :
Dann frage ich mal direkter: Hat der Nutzer, mit dem du das versuchst, überhaupt das Recht, Rootrechte zu erlangen? Standardmäßig ist das bei Ubuntu nur der erste (bei der Installation des Systems) erzeugte Nutzer. Zusätzlich angelegte Nutzer dürfen das erst, wenn sie (manuell) zum Mitglied einer bestimmten Gruppe (admin oder sudo) gemacht werden.

Ich gehe nicht davon aus, da ich nach der Installation keine Zugehörigkeit zu einer Gruppe
geändert habe.
Es geht dabei um ein Konto mit eingeschränkten Rechten auf dem gleichen Rechner
wie das erwähnte Administratorkonto, also nicht ein System im Netzwerk oder einer Domäne.

MfG
RedBaron
 
Ehrlich gesagt hatte ich noch nie mehr als einen Benutzer auf meiner Installation.

Ich denke mal das du dich mit dem root Benutzer anmelden musst und dann den Dateimanager als root startest. Das müsste funktionieren.

Auch die Rechte wirst du nur mit dem root Konto über das Benutzerkonto vergeben können.
 
Ich gehe nicht davon aus, da ich nach der Installation keine Zugehörigkeit zu einer Gruppe
geändert habe.
OK, also wird das der Fall sein. Kannst ja mal mit
Code:
id nutzername
auf einem Terminal nachprüfen, ob dieser Nutzer Mitglied einer der genannten Gruppen ist.

Nichtsdestotrotz solltest du mal ganz konkret werden und mitteilen, um welches Programm es genau geht (Dateimanager gibt's ja nun für Linux einige) und wie die Reaktion des Systems auf den eingegebenen Befehl aussieht (genaue Fehlermeldung, sofern vorhanden).

Ich denke mal das du dich mit dem root Benutzer anmelden musst und dann den Dateimanager als root startest. Das müsste funktionieren.
Müsste es nicht. Als root anmelden funktioniert bei Ubuntu nicht, weil dieser per default deaktiviert ist und alle Aktionen, die Rootrechte erfordern, via sudo & Co. erledigt werden.

Auch die Rechte wirst du nur mit dem root Konto über das Benutzerkonto vergeben können.
Nicht ganz richtig. Es genügt ein Nutzer, dem es erlaubt ist (letztlich durch /etc/sudoers), Rootrechte zu erlangen. Dass jedes mit sudo aufgerufene Programm letztlich als root läuft, ist dann eher nebensächlich. Dennoch gilt: Direkt als root ist nicht bei Ubuntu.

MfG Dalai
 
Hallo

Als Dateimanager verwende ich Nautilus.
Mit dem Befehl sudo -H administrator nautilus funktioniert es auch auf
dem Administratorkonto.

Ich habe id Benutzername für das Konto mit eingeschränkten Rechten in die bash eingegeben, mit diesem Ergebnis:

uid=1001(Benutzername) gid=1001(Benutzername) Gruppen=1001(Benutzername),127(libvirtd)

Benötigt ihr noch mehr Informationen ?

MfG
RedBaron
 
Ich habe id Benutzername für das Konto mit eingeschränkten Rechten in die bash eingegeben, mit diesem Ergebnis:

uid=1001(Benutzername) gid=1001(Benutzername) Gruppen=1001(Benutzername),127(libvirtd)
Genau das ahnte ich ja schon. Weder ist dieser Benutzer der erste im System angelegte (der erste hat - mindestens bei Debian und Ubuntu - immer die UID 1000) noch ist er überhaupt berechtigt, Rootrechte zu erlangen, denn er ist in keinerlei dafür relevanten Gruppen. Daher kann auch ein sudo nicht funktionieren (Ausnahmen in der /etc/sudoers mal weggelassen). Übrigens müssten über die Fehlversuche, Befehle mit sudo auszuführen, entsprechende Meldungen im /var/log/syslog oder /var/log/auth.log vermerkt sein.

Abhilfe kann ich keine ganz konkrete nennen, aber grundsätzlich muss der Nutzer in die Gruppe admin oder sudo aufgenommen werden. Ich bin mir beim Gruppennamen nicht sicher, weil Ubuntu im Laufe der Versionen Änderungen hieran vorgenommen hat - früher admin und nun sudo oder umgekehrt. Auf einer/einem Konsole/Terminal geht das (mit Rootrechten natürlich) mit
Code:
usermod -G admin nutzername

MfG Dalai
 
Hab jetzt kein Ubuntu zum Überprüfen da, aber traditionell ist das die Gruppe wheel.
Öhm, nö. Ein id in einem erst kürzlich installierten Ubuntu 12.04 (64 Bit) Server sagt:
Code:
uid=1000(wartung) gid=0(root) Gruppen=0(root),4(adm),24(cdrom),27(sudo),46(plugdev),111(lpadmin,112(sambashare)
wobei ich die primäre Gruppe von wartung nach root geändert habe (was die Verwaltung etwas einfacher macht, hier aber nebensächlich ist). Da ist aber trotzdem nix mit wheel. Und so, wie ich die Aussage auf dieser Seite lese, wird diese Gruppe eher bei BSD verwendet.

MfG Dalai
 
Öhm, nö. Ein id in einem erst kürzlich installierten Ubuntu 12.04 (64 Bit) Server sagt:
Code:
uid=1000(wartung) gid=0(root) Gruppen=0(root),4(adm),24(cdrom),27(sudo),46(plugdev),111(lpadmin,112(sambashare)
wobei ich die primäre Gruppe von wartung nach root geändert habe (was die Verwaltung etwas einfacher macht, hier aber nebensächlich ist). Da ist aber trotzdem nix mit wheel. Und so, wie ich die Aussage auf dieser Seite lese, wird diese Gruppe eher bei BSD verwendet.

MfG Dalai
Ich weiß, dass es Red Hat, SuSE und Debian auf jeden Fall so hatten, bei Gentoo ist es immer noch so. Deswegen meine Aussage, bei Ubuntu kann ich es nicht sagen. Dass sie da aber einen neuen (Sonder-)Weg gehen, wundert mich jetzt auch nicht. Und Wheel ist auch nicht sonderlich BSD-spezifisch, sondern älter als Unix und wurde da später übernommen. Deswegen schrieb ich auch, dass es traditionell so ist. Aber Ubuntu ist da ja eh nicht sonderlich zimperlich, etablierte System über den Haufen zu werfen. Werde mal morgen nachschauen, wie das Fedora jetzt handhabt.
 
Ich weiß, dass es Red Hat, SuSE und Debian auf jeden Fall so hatten, bei Gentoo ist es immer noch so.
Auf meinem steinalten virtuellen SuSE 7.3 gibt's die Gruppe, aber mein virtuelles Debian 5.0 (das ja auch schon ne Weile alt ist) kennt sie nicht. Das "hatten" trifft also zu ;). Aber einen Sonderweg geht Ubuntu deshalb nicht.

Und Wheel ist auch nicht sonderlich BSD-spezifisch, sondern älter als Unix und wurde da später übernommen.
Deshalb das "eher", im Sinne von: BSD nutzt diese Gruppe eher/häufiger als Linux.

Letztlich hat sich eh nur der Name der Gruppe geändert, über die man an Rootrechte gelangen kann.

MfG Dalai
 
Auf einer/einem Konsole/Terminal geht das (mit Rootrechten natürlich) mit
Code:
usermod -G admin nutzername
Vorsicht, das ist meistens eine schlechte Idee. Aus der Manpage:
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
A list of supplementary groups which the user is also a member of. Each group is separated from the next by a comma, with no intervening whitespace. The groups are subject to the same
restrictions as the group given with the -g option.

If the user is currently a member of a group which is not listed, the user will be removed from the group. This behaviour can be changed via the -a option, which appends the user to the
current supplementary group list.
Mit anderen Worten: Danach wäre der Nutzer ausschließlich Mitglied der Gruppe admin, Chaos wäre vorprogrammiert.
Man müsste eine Liste aller aktuellen Gruppen des Nutzers hinzufügen, was natürlich nicht gerade praktisch ist.
Daher lieber den Befehl gpasswd nutzen:
Code:
gpasswd -a nutzer gruppe
 
Mit anderen Worten: Danach wäre der Nutzer ausschließlich Mitglied der Gruppe admin, Chaos wäre vorprogrammiert.
Stimmt :-[. Da stolper ich immer wieder drüber.

Man müsste eine Liste aller aktuellen Gruppen des Nutzers hinzufügen, was natürlich nicht gerade praktisch ist.
Hm? Der von dir zitierte Teil der Manpage sagt doch, was man ändern muss, um den Nutzer in die Gruppe aufzunehmen, ohne die Mitgliedschaft in den anderen zu beeinflussen:
Code:
usermod -[B]a[/B]G admin nutzer
Nicht dass ich was gegen andere Kommandos hätte, aber ich nutze immer das, was ich eh schon kenne ;) (brauche bei jeder Systemeinrichtung sowieso usermod, um die primäre Gruppe zu ändern, also nehme ich das auch für ähnliche Dinge).

MfG Dalai
 
Klar, geht natürlich auch. Wichtig war an der Stelle eigentlich nur der Hinweis, dass -G alleine eine schlechte Idee ist.
 
Hallo

Das Niveau hier befindet sich hier auf LPIC1 Level ;)

Bewirkt das Kommando
Code:
usermod -aG admin nutzer

das Gleiche wie der Befehl
Code:
sudo adduser Benutzename Gruppe
?

Ich möchte nicht das die Mitgliedschaft in den anderen Gruppen negativ beeinflusst wird.
Ist es zusätzlich notwendig die Crontab Tabelle in /var/spool/cron/crontabs/ anzupassen ?

MfG
RedBaron
 
Zurück
Oben Unten