GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter une commande en tant qu'administrateur système (racine) ?

Je dois exécuter une commande avec des privilèges administratifs. Quelqu'un a dit que je devrais exécuter une commande en tant que root. Comment faire ?

Réponse acceptée :

Les deux principales possibilités de ligne de commande sont :

  • Utilisez su et entrez le mot de passe root lorsque vous y êtes invité.
  • Mettre sudo devant la commande et entrez votre mot de passe lorsque vous y êtes invité.

Exécuter une commande shell en tant que root

sudo (préféré lorsqu'il n'exécute pas d'affichage graphique)

C'est la méthode préférée sur la plupart des systèmes, y compris Ubuntu, Linux Mint, (sans doute) Debian et d'autres. Si vous ne connaissez pas de mot de passe root séparé, utilisez cette méthode.

Sudo nécessite que vous tapiez votre propre mot de passe. (Le but est de limiter les dégâts si vous laissez votre clavier sans surveillance et déverrouillé, et aussi de vous assurer que vous vraiment souhaitez exécuter cette commande et ce n'était pas par exemple une faute de frappe.) Il est souvent configuré pour ne pas redemander pendant quelques minutes afin que vous puissiez exécuter plusieurs sudo commandes successives.

Exemple :

sudo service apache restart

Si vous devez exécuter plusieurs commandes en tant que root, préfixez chacune d'elles avec sudo . Parfois, il est plus pratique d'exécuter un shell interactif en tant que root. Vous pouvez utiliser sudo -i pour cela :

$ sudo -i
# command 1
# command 2
...
# exit

Au lieu de sudo -i , vous pouvez utiliser sudo -s . La différence est que -i reje initialise l'environnement aux valeurs par défaut saines, alors que -s utilise vos fichiers de configuration pour le meilleur ou pour le pire.

Pour plus d'informations, consultez le site Web sudo ou tapez man sudo sur votre système. Sudo est très configurable; par exemple, il peut être configuré pour permettre à un certain utilisateur d'exécuter uniquement certaines commandes en tant que root. Lisez les sudoers page de manuel pour plus d'informations ; utiliser sudo visudo pour éditer le fichier sudoers.

su

Le su La commande existe sur la plupart des systèmes de type Unix. Il vous permet d'exécuter une commande en tant qu'un autre utilisateur, à condition que vous connaissiez le mot de passe de cet utilisateur. Lorsqu'il est exécuté sans utilisateur spécifié, su sera par défaut le compte root.

Exemple :

su -c 'service apache restart'

La commande à exécuter doit être passée en utilisant le -c option. Notez que vous avez besoin de guillemets pour que la commande ne soit pas analysée par votre shell, mais transmise intacte au shell racine que su s'exécute.

Pour exécuter plusieurs commandes en tant que root, il est plus pratique de démarrer un shell interactif.

$ su
# command 1
# command 2
...
# exit

Sur certains systèmes, vous devez être dans le groupe numéro 0 (appelé wheel ) pour utiliser su . (Le but est de limiter les dégâts si le mot de passe root est divulgué accidentellement à quelqu'un.)

Se connecter en tant que root

Si un mot de passe root est défini et que vous le possédez, vous pouvez simplement taper root à l'invite de connexion et entrez le mot de passe root. Soyez très prudent et évitez d'exécuter des applications complexes en tant que root, car elles pourraient faire quelque chose que vous n'aviez pas prévu. Se connecter directement en tant que root est principalement utile dans les situations d'urgence, telles que les pannes de disque ou lorsque vous vous êtes verrouillé hors de votre compte.

Mode mono-utilisateur

Le mode mono-utilisateur, ou niveau d'exécution 1, vous donne également des privilèges root. Ceci est principalement destiné aux situations de maintenance d'urgence où le démarrage dans un niveau d'exécution multi-utilisateur n'est pas possible. Vous pouvez démarrer en mode mono-utilisateur en passant single ou emergency sur la ligne de commande du noyau. Notez que démarrer en mode mono-utilisateur n'est pas la même chose que démarrer le système normalement et se connecter en tant que root. Au lieu de cela, le système ne démarrera que les services définis pour le niveau d'exécution 1. En règle générale, il s'agit du plus petit nombre de services requis pour avoir un système utilisable.

En relation :Comment créer une partition dans l'espace libre à l'aide de GNU Parted ?

Vous pouvez également accéder au mode mono-utilisateur en utilisant la commande telinit :telinit 1; cependant, cette commande nécessite que vous ayez déjà obtenu les privilèges root via une autre méthode pour pouvoir s'exécuter.

Sur de nombreux systèmes, le démarrage en mode mono-utilisateur donnera à l'utilisateur l'accès à un shell root sans demander de mot de passe. Notamment, systemd - les systèmes basés sur vous demanderont le mot de passe root lorsque vous démarrerez de cette façon.

Autres programmes

Calife

Calife vous permet d'exécuter des commandes en tant qu'autre utilisateur en tapant votre propre mot de passe, si autorisé. Il est similaire au sudo beaucoup plus répandu (voir ci-dessus). Calife est plus léger que sudo mais aussi moins configurable.

Op

Op vous permet d'exécuter des commandes en tant qu'autre utilisateur, y compris root. Ce n'est pas un outil complet pour exécuter des commandes arbitraires :vous tapez op suivi d'un mnémonique configuré par l'administrateur système pour exécuter une commande spécifique.

Super

Super vous permet d'exécuter des commandes en tant qu'autre utilisateur, y compris root. La commande doit avoir été autorisée par l'administrateur système.

Exécuter une commande graphique en tant que root

PolicyKit (préféré lors de l'utilisation de GNOME)

Préfixez simplement la commande souhaitée avec la commande pkexec . Sachez que même si cela fonctionne dans la plupart des cas, cela ne fonctionne pas universellement.

Voir man pkexec pour plus d'informations.

KdeSu, KdeSudo (préféré lors de l'utilisation de KDE)

kdesu et kdesudo sont des interfaces graphiques pour su et sudo respectivement. Ils vous permettent d'exécuter des programmes X Window en tant que root sans tracas. Ils font partie de KDE. Saisissez

kdesu -c 'command --option argument'

et entrez le mot de passe root, ou tapez

kdesudo -c 'command --option argument'

et entrez votre mot de passe (si autorisé à exécuter sudo ). Si vous cochez l'option "conserver le mot de passe" dans KdeSu, vous n'aurez qu'à taper le mot de passe root une fois par session de connexion.

Autres programmes

Ktsuss

Ktsuss ("garder le su simple, stupide") est une version graphique de su.

Besu

Beesu est une interface graphique pour la commande su qui a remplacé Gksu dans les systèmes d'exploitation basés sur Red Hat. Il a été développé principalement pour RHEL et Fedora.

Méthodes obsolètes

gksu et gksudo

gksu et gksudo sont des interfaces graphiques pour su et sudo respectivement. Ils vous permettent d'exécuter des programmes X Window en tant que root sans tracas. Ils font partie de Gnome. Saisissez

gksu command --option argument

et entrez le mot de passe root, ou tapez

gksudo command --option argument

et entrez votre mot de passe (si autorisé à exécuter sudo ).

gksu et gksudo sont obsolètes. Ils ont été remplacés par PolicyKit dans GNOME, et de nombreuses distributions (comme Ubuntu) ne les installent plus par défaut. Vous ne devez pas compter sur leur disponibilité ou leur bon fonctionnement.

Manuellement via l'une des méthodes basées sur le shell

Utilisez l'une des méthodes de la section "Exécuter une commande shell en tant que racine". Vous devrez vous assurer que ni le DISPLAY la variable d'environnement ni la XAUTHORITY l'environnement est réinitialisé lors de la transition vers root. Cela peut nécessiter une configuration supplémentaire de ces méthodes qui sort du cadre de cette question.

Dans l'ensemble, c'est une mauvaise idée, principalement parce que les applications graphiques liront et écriront les fichiers de configuration en tant que root, et lorsque vous essayez d'utiliser à nouveau ces applications en tant qu'utilisateur normal, ces applications n'auront pas la permission de lire leurs propres configurations.

Connexes :Macos - Exécuter la commande au lancement du terminal (macOS) ?

Modifier un fichier en tant que root

Voir Comment modifier un fichier en tant que root ?


Linux
  1. Comment utiliser la commande basename ?

  2. Comment exécuter une commande sans propriétés racine ?

  3. Comment installer un script pour qu'il s'exécute n'importe où à partir de la ligne de commande ?

  4. Comment exécuter la commande Vim depuis le shell ?

  5. Comment utiliser nohup pour continuer à exécuter une commande après la déconnexion de l'utilisateur ?

Comment utiliser la commande de lecture Bash

Comment utiliser la commande Linux xargs

Comment utiliser la commande Linux tee

Comment utiliser la commande top sous Linux

Comment exécuter Dolphin en tant que root ?

Comment utiliser la commande fd sur le système Linux