web-dev-qa-db-fra.com

Comment faire pour exécuter des applications en tant que root?

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

Je suis un débutant sous 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 faire cela? Quel est le but de tout ce qui est à la racine, même si nous devons l’utiliser si souvent, il n’est pas utilisé par défaut?

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

Pour un programme de console

Sudo <program name>

S'il s'agit d'une application graphique

gksudo <program name>
12
Goddard

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-utilisateur à partir de la base, c’est-à-dire qu’il a été conçu pour que de nombreuses personnes puissent utiliser un ordinateur sous UNIX à la fois. Parce que la plupart des utilisateurs n'ont pas besoin de pouvoir modifier le système principal, seul l'administrateur du système devrait avoir ce privilège. Cet utilisateur privilégié est traditionnellement appelé racine. (La racine ressemble beaucoup à l'administrateur dans Windows.)

Cela a du sens à plusieurs niveaux. Généralement, un serveur Web ou un autre processus exposant un port à d'autres ordinateurs (éventuellement malveillants) s'exécutera sous son propre utilisateur (Apache s'exécutant sous le nom d'utilisateur nobodyname__), de sorte que l'attaquant ne puisse pas modifier le programme du serveur Web. jeter 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 à exécuter rm -rf / (, NE l'exécutez PAS ), ils ne seront pas autorisés à supprimer tous les fichiers du système , comme ils le feraient s’il n’existait pas de séparation des privilèges.

Il existe plusieurs commandes que vous pouvez utiliser pour élever vos privilèges. La commande Sudopermet de 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 suname__. Ce dernier ne peut être utilisé que si vous connaissez le mot de passe de root et constitue une bonne option si votre compte n'est pas autorisé à utiliser Sudoname__.

L'utilisateur root peut tout faire sur un système, presque sans exception. Ainsi, même si vous demandez quelque chose par accident, cela sera effectué avec un avertissement faible ou nul, 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 lorsque vous en avez besoin, comme lorsque vous installez un programme.

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

12
thirtythreeforty

En plus de la réponse précédente, qui dit à propos de Sudo et de gksudo, oui, il est définitivement déconseillé d’exécuter un programme en tant que root, sauf s’il s’agit d’un programme administratif.

S'il vous plaît, essayez de vous trouver pourquoi les programmes se bloquent. S'il vous plaît demander l'aide des autres si vous en avez besoin.

4
Masroor

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

Sudo nano atom*

Ceci ouvrira le fichier atom.desktop, trouvera maintenant la commande Exec et ajoutera le préfixe gksudo.For, 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 vous demandera un mot de passe root.

2
Mehul