Que signifie «êtes-vous root?»?


16

C'est ce que je continue de recevoir:

ascendermedia@magic2tower:~$ sudo apt-get install flashplugin-installer
bash: sudo: command not found
ascendermedia@magic2tower:~$ sudo apt-get install flashplugin-installer
bash: sudo: command not found
ascendermedia@magic2tower:~$ apt-get install flashplugin-installer
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
ascendermedia@magic2tower:~$ sudo aptitude install flashplugin-nonfree
bash: sudo: command not found
ascendermedia@magic2tower:~$ aptitude install flashplugin-nonfree
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
ascendermedia@magic2tower:~$ 

Qu'est-ce que je fais mal?

Réponses:


29

rootest le compte superutilisateur du système - il a (fondamentalement) tous les privilèges. De nombreux systèmes sont configurés de sorte que vous pouvez utiliser la sudocommande devant une autre commande pour exécuter cette commande "en tant que root" - c'est-à-dire, comme si vous étiez l'utilisateur root, avec les mêmes privilèges.

C'est généralement le cas que vous avez besoin des privilèges root pour installer les packages système, ce qui est le apt-getcas. Donc, ça ne marche pas, la première fois parce que vous n'en avez pas sudo; la deuxième fois parce sudoque n'apparaissait pas comme par magie juste parce que vous l'avez exécuté deux fois; et la troisième (et cinquième) fois parce que apt-get(et aptitude) nécessitent vraiment des privilèges root pour installer des packages comme celui-ci.

Comme vous le voyez dans votre premier message d'erreur, sudo n'est pas installé ou n'est pas sur votre chemin, et probablement pas configuré. Vous pouvez peut-être remplacer à la su -cplace et donner le mot de passe root (le mot de passe du rootcompte) lorsque vous y êtes invité.

Si vous ne connaissez pas ce mot de passe, vous devez a) demander à la personne qui le fait d'effectuer cette tâche pour vous, si ce n'est pas votre système, ou b) trouver un moyen de le récupérer.


C'est généralement vrai, bien que je mentionnerais que sudone fait pas que lancer des commandes "comme si vous étiez root", il les exécute en fait en tant que root. Si vous regardez le processus, vous verrez qu'il s'exécute en tant que root, pas en tant que votre identifiant utilisateur. Par ailleurs, sur les machines qui ne sont pas configurées pour autoriser la connexion interactive par racine par défaut, vous pouvez simplement exécuter sudo bashpour obtenir un shell racine. :)
reirab

@reirab Je pense que sudo -ic'est préférable, car il respecte votre shell actuel.
new123456

2
@ new123456 sudo -i utilisera le shell par défaut pour root. sudo -s utilisera la valeur de $ SHELL pour l'utilisateur exécutant.
bgvaughan

@reirab Vous citez la partie où je donne une explication de ce que signifie "en tant que root" du point de vue d'un utilisateur simplifié.
mattdm

5

Vous avez besoin des privilèges root pour exécuter les mises à jour du système via apt-get.

Vous pouvez basculer vers un compte root à l'aide de su root. Il semble que le sudoprogramme ne soit pas installé.


2
L'OP ne manque pas seulement de sudoprivilèges, il n'a même pas sudoinstallé.
2015

1
Vraiment, OP devrait su rooter juste assez longtemps pour être installé et configuré sudo.
Kevin

1
@ n.st peut-être incorrect, il pourrait ne pas figurer PATH.
o11c

2
@ o11c Je dirais que ce sont les mêmes personnes qui ne rencontreraient jamais ce problème sans sudo car elles sont toujours connectées en tant que root.
Kevin

1
@ o11c Bien que cela soit possible, cela ne semble pas probable, d'autant plus que sudoet apt-getsont tous les deux installés /usr/binpar défaut (au moins sur Debian).
2015 à 7h57

5

Que signifie «êtes-vous root?»?

Pour installer des packages à l'échelle du système (qu'est apt-get- ce qui se passe), il a besoin des privilèges root, car vous allez créer et modifier des fichiers système ( rootc'est le nom habituel du compte administrateur * nix).

Le message «êtes-vous root?» Est un doux rappel que vous «devez être root» pour pouvoir exécuter apt-get install. C'est la raison la plus souvent rencontrée pour le problème rencontré (illustré ci-dessus):

/ var / lib / dpkg / lock - ouvert (13: autorisation refusée)

.

Comment devenir root?

su

La manière traditionnelle de "devenir root" est d'exécuter su(et de fournir le mot de passe de l'utilisateur root). su (1) signifie s uper u ser ou s witch u ser.

Notez qu'il peut être utilisé pour devenir n'importe quel utilisateur, vous pouvez donc exécuter su johnpour obtenir un shell en tant que john. Courir susans nom d'utilisateur est un raccourci pour su root.

Pour que cela fonctionne, le compte d'utilisateur root doit être activé et avoir un mot de passe défini. Certains systèmes sont configurés (même par défaut), avec le compte root désactivé, afin d'éviter quelqu'un -eg. un attaquant - connectez-vous avec le compte administrateur. Dans ces cas, ils offrent une autre façon d'exécuter des commandes d'administration, comme sudo.

sudo

sudo (1) est un programme qui vous permet d'exécuter une commande en tant qu'autre utilisateur (comme ci-dessus, généralement effectué pour root). Il est configuré dans /etc/sudoerset permet un contrôle plus fin, comme autoriser uniquement l'exécution d'un seul programme en tant que root, à un utilisateur spécifique (qui peut être défini pour exiger à nouveau son propre mot de passe), et fournit également des fonctionnalités de journalisation (par exemple. " john a exécuté destroy-system en tant que root ").

Il existe d'autres options pour exécuter des privilèges accrus (tels que calife ), mais leur utilisation est beaucoup plus faible.

Votre journal ci-dessus indique qu'il sudon'est pas installé sur magic2tower.


0

Ils ont déjà expliqué ce qu'est root, quand vous avez une "commande introuvable", c'est probablement parce que vous n'avez pas installé le programme que vous essayez d'exécuter, ou que vous n'avez pas le chemin dans vos variables env.

Essayez d'exécuter la commande comme ceci:

/usr/bin/sudo apt-get install flashplugin-installer

Dans certaines distributions Linux, vous ne pouvez pas passer à root, donc toutes les commandes doivent être exécutées avec sudo. =)


1
oui, si vous avez un message comme bash: sudo: command not foundla meilleure idée est de l'installer avec sudo apt-get install sudo, et s'il vous donne la même erreur, vous apprendrez ce qu'est la récursivité
pqnet

2
Vous ne pouvez pas installer sudo avec sudo.
À faire le
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.