Wie führe ich Anwendungen als root aus?

13

Ich habe ein seltsames Problem mit Kate und Kwrite. Wenn ich auf Open File klicke , stürzt es mit einem Segmentierungsfehler ab.

Ich bin ein absoluter Linux-Neuling, und ich denke, das Problem ist, dass ich die Anwendung nicht als Root ausführe.

Wie führe ich Anwendungen als root in Ubuntu aus? Ist es eine schlechte Übung, dies zu tun? Was ist der Zweck der gesamten Root-Sache, obwohl wir root so häufig verwenden müssen, wird es nicht als Standard verwendet?

l --''''''--------- '' '' '' '' '' '
quelle
Sie können einige sehr schädliche Dinge tun, wenn Sie root zum Öffnen eines Editors verwenden. Gehen Sie also nicht so vor segmentation fault. kate en kwrite sind KDE-Programme (also nicht Gnome).
Rinzwind
1
Welche schädlichen Dinge können mit dem Texteditor getan werden? Klingt verrückt
l - '' '' '' '' '' '' '' '' '29.
1
@ Артёмёарионов Zum einen können Sie als Root-Benutzer Dateien bearbeiten, die Ihr Computer zum Starten des Betriebssystems oder Laden Ihrer grafischen Umgebung verwendet, wodurch Ihr Computer effektiv beschädigt wird.
Amanda

Antworten:

15

Es ist ziemlich einfach, ein Programm als root auszuführen.

Für ein Konsolenprogramm verwenden

sudo <program name>

Wenn es sich um eine GUI-Anwendung handelt, verwenden Sie

gksudo <program name>
Goddard
quelle
13

UNIX-ähnliche Betriebssysteme (einschließlich Linux) verwenden ein Konzept, das als Berechtigungstrennung bezeichnet wird, um sicherzustellen, dass das System sicher bleibt. UNIX wurde von Grund auf als Mehrbenutzersystem konzipiert - das heißt, es wurde so konzipiert, dass viele Benutzer einen Computer mit UNIX gleichzeitig verwenden können. Da die meisten Benutzer nicht in der Lage sein müssen, das Kernsystem zu ändern, sollte nur der Systemadministrator über diese Berechtigung verfügen. Dieser privilegierte Benutzer wird traditionell als root bezeichnet . (Root ähnelt weitgehend Administrator in Windows.)

Dies ist auf mehreren Ebenen sinnvoll. In der Regel wird ein Webserver oder ein anderer Prozess, der einen Port anderen (möglicherweise böswilligen) Computern aussetzt, als eigener Benutzer ausgeführt (Apache wird als Benutzer ausgeführt nobody), sodass der Angreifer auch dann keinen Papierkorb werfen kann, wenn das Webserverprogramm gehackt wird die gesamte maschine ganz einfach. Es ist sogar für die meisten Einzelbenutzer-Computer wie Desktops sinnvoll: Wenn andere Mitglieder Ihrer Familie es beispielsweise schaffen, ausgeführt zu werden rm -rf /( führen Sie das NICHT aus ), haben sie nicht die Berechtigung, alle Dateien auf dem System zu löschen , z Sie würden es tun, wenn es keine Privilegientrennung gäbe.

Es gibt verschiedene Befehle, mit denen Sie Ihre Berechtigungen erhöhen können. Der sudoBefehl ist vorhanden, um Ihnen vorübergehend Berechtigungen auf Stammebene zu erteilen, wenn Sie diese zur Verwaltung des Systems benötigen. Sie können auch die Befehle gksudooder verwenden su. Letzteres kann nur verwendet werden, wenn Sie das root-Passwort kennen, und ist eine gute Option, wenn Ihr Konto keine Berechtigung zur Verwendung hat sudo.

Der Root-Benutzer kann fast ausnahmslos alles auf einem System ausführen. Selbst wenn Sie versehentlich etwas anfordern, wird dies ohne oder mit geringer Warnung ausgeführt, auch wenn es sich negativ auf die Gesundheit Ihres Systems auswirkt. Aus diesem Grund empfiehlt es sich, die meisten Ihrer Aktivitäten als normaler Benutzer auszuführen und root nur bei Bedarf zu verwenden, z. B. wenn Sie ein Programm installieren.

Sie sollten root nicht benötigen, um einen Segmentierungsfehler zu beseitigen. Wenn root das einzige ist, was einen Segfault behebt, dann hat das Programm einen Fehler. Programme sollten nicht so scheitern, nur weil sie kein root haben.

dreißigunddreißig
quelle
Ich habe diese Art von Fehler erlebt und normalerweise handelte es sich um eine Dateiberechtigung. Verwenden rootist wie ein Vorschlaghammer, um eine Erdnuss zu knacken. Identifizieren Sie die Datei besser und entscheiden Sie, ob Sie den Eigentümer oder die Berechtigung nach Bedarf ändern. Zum Beispiel habe ich eine adminGruppe für Dateien, auf die andere nicht aktualisieren oder zugreifen müssen.
wird
5

Zusätzlich zu der vorherigen Antwort, die über sudo und gksudo sagt, ist es definitiv eine schlechte Praxis, ein Programm als root auszuführen, es sei denn, es handelt sich um ein administratives Programm.

Bitte versuchen Sie herauszufinden, warum die Programme abstürzen. Bitten Sie gegebenenfalls andere um Hilfe.

Masroor
quelle
2

Sie können auch /usr/share/applicationsin Ubuntu die Startdatei der Anwendung bearbeiten, die Sie ausführen möchten.
Wie ich die Datei von bearbeitete github atom, verwende ich normalerweise einen Platzhalter, um die Dateien so zu finden

sudo nano atom*

Dies öffnet die atom.desktopDatei, sucht den Exec-Befehl und stellt gksudo voran.

Vor

Exec=/usr/share/atom/atom %U  

Nach

Exec=gksudo -k -u root /usr/share/atom/atom %U

Wenn die Anwendung jetzt gestartet wird, werden Sie nach dem root-Passwort gefragt.

Mehul
quelle
Nun, ich kann eine solche Datei auf dem Tomcat-Server nicht sehen. Ich muss die GUI-App auf folgende Weise ausführen: "sudo ./manager-linux-x64.run" jeden Tag, von dem ich weiß, dass es keine gute Sache ist, dies zu tun. Aber pkexec arbeitet nicht an dieser App.
Prabesh Bhattarai