4 votes

Pourquoi sudo bash est-il nécessaire ?

Je lisais le code suivant :

$ sudo bash
# cd /home/
# ./gitpull.sh

Pourquoi ai-je besoin de la première ligne, que fait-elle exactement ? Et si je faisais juste $ sudo au lieu de $ sudo bash ?

7voto

hvgotcodes Points 838

Il démarre un Shell bash en tant que root utilisateur de niveau. Vous en avez besoin car, en général, les utilisateurs normaux ne peuvent pas accéder à /home/

Le danger de ce que vous faites, c'est que vous êtes dans un Shell racine -- vous pouvez mettre votre machine en désordre assez facilement.

4voto

Tnilsson Points 1450

Vous feriez mieux de le faire :

$ sudo sh -c 'cd /home; ./gitpull.sh'

Parce que les commandes invoquées en tant que root seront enregistrées. L'invocation d'un Shell directement par sudo évite tous les avantages de sécurité de sudo et devrait être évitée.

2voto

Kaz Points 2554

sudo <shell> si elle fonctionne, trahit une mauvaise installation de sudo et une faiblesse de sécurité potentielle.

sudo ne doit pas être configuré pour autoriser des commandes arbitraires comme Shell ; le but de la fonction sudo est de permettre aux utilisateurs authentifiés non root d'exécuter certaines commandes en tant que root, sans connaître le mot de passe root.

Si sudo bash est autorisé à tout utilisateur, cet utilisateur est root du simple fait qu'il connaît son propre mot de passe.

Si un attaquant obtient le mot de passe de n'importe lequel des comptes qui sont en mesure de faire sudo bash l'attaquant a donc la racine.

La façon correcte de faire l'équivalent de sudo bash (obtenir une racine Shell) est su suivi de l'indication du mot de passe de l'administrateur, et non du vôtre.

2voto

nisdis Points 21

Le tristement célèbre sudo est une sorte d'acronyme pour Superuser Do.

En gros, cela fait d'un utilisateur normal un super utilisateur pendant un court moment.

Dans votre commande sudo bash, vous dites effectivement Superuser do --> un Bourne Shell ( bash ) qui ouvre un utilisateur root connecté dans Shell.

Si vous exécutez sudo, le système d'exploitation ne saura pas quoi faire. Donc, en général, sudo est suivi d'une commande unix.

0voto

suzanshakya Points 101

sudo permet aux utilisateurs d'exécuter des programmes avec les privilèges de sécurité d'un autre utilisateur (normalement le superutilisateur, ou root).
bash démarre une nouvelle bash Shell.
Donc, sudo bash démarre un nouveau bash Shell avec le privilège de sécurité de l'utilisateur root.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X