Comment exécuter des applications en tant que root?


13

J'ai un problème étrange avec Kate et Kwrite. Lorsque je clique sur Ouvrir le fichier , il se bloque avec un défaut de segmentation.

Je suis un débutant complet sur Linux, et je pense que le problème est que je n'exécute pas l'application en tant que root.

Comment exécuter des applications en tant que root dans Ubuntu? Est-ce une mauvaise pratique de le faire? Quel est le but de tout le root, où même si nous devons utiliser root si fréquemment, il n'est pas utilisé par défaut?


Vous pouvez faire des choses très dommageables lorsque vous utilisez root pour ouvrir un éditeur, alors n'allez pas de cette façon;) 2 autres solutions qui ne nécessitent pas root: essayez de réparer le segmentation faultou utilisez un autre éditeur (gedit est l'éditeur de gnome). kate et kwrite sont un programme KDE (donc pas Gnome).
Rinzwind

1
quelles choses nuisibles peuvent être faites avec l'éditeur de texte.sonne fou
l --''''''----------------- '' '' '' '' '' ''

1
@ АртёмЦарионов D'une part, en tant que root, vous pouvez éditer les fichiers que votre ordinateur utilise pour démarrer le système d'exploitation ou charger votre environnement graphique, cassant ainsi votre ordinateur.
Amanda

Réponses:


15

Il est assez simple d'exécuter un programme en tant que root.

Pour un programme console, utilisez

sudo <program name>

S'il s'agit d'une application GUI, utilisez

gksudo <program name>

13

Les systèmes d'exploitation de type UNIX (y compris Linux) utilisent un concept appelé séparation des privilèges pour garantir la sécurité du système. UNIX a été conçu comme un système multi-utilisateurs à partir de zéro - c'est-à-dire qu'il a été conçu pour que de nombreuses personnes puissent utiliser un ordinateur exécutant UNIX à la fois. Étant donné que la plupart des utilisateurs n'ont pas besoin de pouvoir modifier le système principal, seul l'administrateur système doit disposer de ce privilège. Cet utilisateur privilégié est traditionnellement appelé root . (Root ressemble beaucoup à Administrateur sous Windows.)

Cela a du sens à plusieurs niveaux. Généralement, un serveur Web ou un autre processus qui expose un port à d'autres ordinateurs (éventuellement malveillants) s'exécutera en tant que son propre utilisateur (Apache s'exécute en tant qu'utilisateur nobody), de sorte que même si le programme du serveur Web est piraté, l'attaquant ne peut pas jeter la corbeille toute la machine assez facilement. Cela a même du sens pour la plupart des machines mono-utilisateur telles que les ordinateurs de bureau: si d'autres membres de votre famille, par exemple, parviennent à s'exécuter rm -rf /( ne l'exécutez PAS ), ils n'auront pas la permission de supprimer tous les fichiers du système , comme ils le feraient s'il n'y avait pas de séparation des privilèges.

Il existe plusieurs commandes que vous pouvez utiliser pour élever vos privilèges. La sudocommande existe pour vous accorder temporairement des privilèges de niveau racine lorsque vous en avez besoin pour administrer le système. Vous pouvez également utiliser les commandes gksudoou su. Ce dernier ne peut être utilisé que si vous connaissez le mot de passe de root et est une bonne option si votre compte n'a pas la permission d'utiliser sudo.

L'utilisateur root peut faire n'importe quoi sur un système, sans presque aucune exception. Donc, même si vous demandez quelque chose par accident, cela se fera avec peu ou pas d'avertissement, même si c'est mauvais pour la santé de votre système. C'est pourquoi il est recommandé de faire la plupart de vos activités en tant qu'utilisateur normal et d'utiliser root uniquement en cas de besoin, comme lorsque vous installez un programme.

Vous ne devriez pas avoir besoin d'utiliser root pour vous débarrasser d'un défaut de segmentation. Si root est la seule chose qui corrige un défaut de segmentation, alors le programme a un bogue. Les programmes ne devraient pas échouer comme ça juste parce qu'ils n'ont pas de racine.


J'ai rencontré ce type d'erreur et, normalement, il s'agit d'une autorisation de fichier. Utiliser, rootc'est comme prendre un marteau pour casser une cacahuète. Mieux vaut identifier le fichier et décider si vous modifiez la propriété ou l'autorisation en fonction des besoins. Par exemple, j'ai un admingroupe de fichiers que les autres n'ont pas besoin de mettre à jour ou d'accéder.
sera le

5

En plus de la réponse précédente, qui dit à propos de sudo et gksudo, oui, c'est certainement une mauvaise pratique d'exécuter un programme en tant que root, sauf s'il s'agit d'un programme administratif.

Veuillez essayer de trouver pourquoi les programmes se bloquent. Veuillez demander l'aide des autres si vous en avez besoin.


2

Vous pouvez également accéder à /usr/share/applicationsin ubuntu et modifier le fichier de lancement de l'application que vous essayez d'exécuter.
Comme j'ai édité le fichier de github atom, normalement j'utilise un caractère générique pour trouver les fichiers comme celui-ci

sudo nano atom*

Cela ouvrira le atom.desktopfichier, maintenant trouvez la commande Exec et ajoutez gksudo.Par exemple.,

Avant

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

Après

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

Maintenant, chaque fois que l'application est lancée, elle demandera le mot de passe root.


eh bien je ne peux pas voir un tel fichier sur le serveur Tomcat. Je dois exécuter l'application GUI de cette manière: "sudo ./manager-linux-x64.run" tous les jours, ce que je sais n'est pas une bonne chose à faire. Mais pkexec ne fonctionne pas sur cette application.
Prabesh bhattarai
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.