-bash: sudo: commande non trouvée

63

J'essaie de déployer l'application Django. Quand j'imprime apt-get update je vois

W: Unable to read /etc/apt/apt.conf.d/ - DirectoryExists (13: Permission denied)
W: Unable to read /etc/apt/sources.list.d/ - DirectoryExists (13: Permission denied)
W: Unable to read /etc/apt/sources.list - RealFileExists (13: Permission denied)
E: List directory /var/lib/apt/lists/partial is missing. - Acquire (13: Permission denied)
E: Unable to read /var/cache/apt/ - opendir (13: Permission denied)
E: Unable to read /var/cache/apt/ - opendir (13: Permission denied)
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?

Quand j'imprime sudo apt-get update je vois

-bash: sudo: command not found

J'ai essayé d'utiliser suau lieu de sudo. Mais c'est étrange. Par exemple, j'imprime su apt-get update et rien ne se passe, je vois juste une nouvelle ligne,

(uiserver):u78600811:~$ su apt-get update
(uiserver):u78600811:~$

La même chose si j'essaye d'installer des paquets. Que fais-je?

S'il s'agit d'informations utiles, j'utilise Debian

(uiserver):u87600811:~$ uname -a
Linux infong1559 3.14.0-ui16294-uiabi1-infong-amd64 #1 SMP Debian 3.14.79-2~ui80+4 (2016-10-20) x86_64 GNU/Linux
utilisateur2950593
la source
Est-ce un compte client sur un serveur commercial?
Tomasz
@tomas yeah ////
user2950593 Le
1
Si vous ne possédez pas le serveur, qu'est-ce qui vous fait penser que vous avez le droit d'installer ou de supprimer des logiciels? demander à l'administrateur
Shadur
Qu'est-ce qui se passe si vous courez apt-cache policy sudo? Toutes les distributions Linux n'installent pas sudo par défaut (Debian, par exemple, installera sudo si et seulement si vous ne spécifiez pas de mot de passe root lors de l'installation). Vous pouvez exécuter apt-cache sans les privilèges root.
rosuav

Réponses:

79

Par défaut, sudo n'est pas installé sur Debian, mais vous pouvez l'installer. Activez d'abord le mode su:
su -

Installez sudo en lançant:
apt-get install sudo -y

Après cela, vous devrez jouer avec les utilisateurs et les autorisations. Donnez à sudo le droit à votre propre utilisateur.

usermod -aG sudo yourusername

Assurez-vous que votre fichier sudoers a un groupe sudo ajouté. Exécuter:
visudopour modifier le fichier sudoers et y ajouter la ligne suivante (s'il est manquant):

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

Vous devez reconnecter ou redémarrer complètement le périphérique pour que les modifications prennent effet.

Maksim Luzik
la source
3
Cela devrait être accepté, cela a résolu mon problème
Callat
Je reçois "su: Impossible de déterminer votre nom d'utilisateur". à faire su -
user674669
@ user674669 avez-vous vérifié ce post: serverfault.com/questions/816969/… ?
Maksim Luzik
Merci @MaksimLuzik. Le mien est un conteneur de docker. Les idées sur cette page ne me sont pas utiles. Peut-être que je devrais poser une question séparée.
user674669
19

Comme il s’agit d’un serveur commercial, vous n’avez pas accès au compte root ni au fonctionnement avec les privilèges root. Cela signifie que vous ne pourrez sudoni exécuter ni installer de paquets. Ce que vous pouvez essayer de faire est:

  • Vérifiez si vous avez accès à un compilateur et compilez ce que vous voulez pour vous et chez vous.

  • Vérifiez si vous pouvez exécuter une machine virtuelle. Cela pourrait vous permettre d’exécuter votre instance privée d’un système d’exploitation sur laquelle vous installeriez des packages.

Tomasz
la source
12

suet sudosont deux commandes différentes, mais liées. Il est inhabituel de sudone pas être installé, mais il se peut simplement que ce ne soit pas dans votre chemin. Essayez /usr/bin/sudo command.

Si en effet sudon’est pas disponible, vous devez utiliser ce que vous avez supposé su, mais cela ne fonctionne pas de la même manière que sudo. La façon la plus simple de l'utiliser est simplement de lancer:

su -

Cela vous demandera rootle mot de passe de l' utilisateur. Vous devrez alors probablement vous apt install sudodéconnecter du shell racine et procéder normalement.

Attention, contrairement à sudoce qui se passe, qui vous demande votre mot de passe, suvous demandera le mot de passe root .

DopeGhoti
la source
quand j'écris su - rien ne se passe - juste une nouvelle ligne
user2950593
3
Alors vous êtes probablement déjà root. Vérifiez avec whoami. Si vous êtes root, apt install sudocomme décrit.
DopeGhoti
(uiserver): u78600811: ~ $ apt install sudo
user2950593
1
W: Impossible de lire /etc/apt/apt.conf.d/ - DirectoryExists (13: Autorisation refusée) E: Impossible d'ouvrir le fichier verrou / var / lib / dpkg / lock - open (13: Autorisation refusée) E: Impossible pour verrouiller le répertoire d’administration (/ var / lib / dpkg /), êtes-vous root?
user2950593
1
En fonction de ce qui PS1est défini sur.
DopeGhoti