Lorsque j'essaie de passer en root en utilisant sudo -i
j'obtiens l'erreur /var/tmp/sclDvf3Vx: line 8: -i: command not found
... Cependant, su -
fonctionne que je continuerai à utiliser. Je ne suis en aucun cas un administrateur système Linux, donc l'environnement est encore assez brumeux pour moi. Je suppose que mes questions sont:
- Pourquoi l'erreur est-elle lancée?
- Quelle est la différence entre les deux commandes?
- Pourquoi voudriez-vous utiliser l'un sur l'autre?
Mise à jour:
J'utilise la version CentOS: CentOS version 6.6 (Final)
Voici la sortie de certaines commandes qu'on m'a demandé d'exécuter, dans les commentaires ci-dessous.
type sudo
:sudo is /opt/centos/devtoolset-1.1/root/usr/bin/sudo
sudo -V
:/var/tmp/sclIU7gkA: line 8: -V: command not found
grep'^root:' /etc/passwd
:root:x:0:0:root:/root:/bin/bash
Mise à jour:
Cela a été ajouté au ~ / .bashrc de mon utilisateur non root il y a quelque temps parce que j'avais besoin du support C ++ 11. Lorsque je le commente, le ressaisit, je peux exécuter sudo -i très bien sans aucune erreur.
if [ "$(gcc -dumpversion)" != "4.7.2" ]; then
scl enable devtoolset-1.1 bash
fi
linux
centos
command-line
sudo
th3v0id
la source
la source
-
c'est vraiment un (ASCII)-
?alias
pour votresudo
commande?sudo
qui n'est pas la commande sudo normale. Étant donné qu'il ne comprend pas les options de sudo, ce n'est clairement pas quelque chose de standard. Utilisez/usr/bin/sudo
ou demandez à vos administrateurs locaux (qui auraient vraiment dû vous en parler lorsqu'ils vous ont donné des pouvoirs sudo).Réponses:
D'après les commentaires et vos investigations, il semble que votre devtoolset modifie le
PATH
. Malheureusement, cela inclut ce qui semble être une commande sudo ancienne ou cassée.Il vaudrait la peine d'essayer de modifier le devtoolset inclure dans votre
.bashrc
comme ceci, puis de vous reconnecter:la source
Plutôt que de contourner le sudo wrapper cassé du SCL, je l'ai juste désactivé.
L'ajout d'une nouvelle ligne à la fin du fichier garantit qu'il ne sera pas écrasé par les mises à jour Yum suivantes, puis je le rendrai non exécutable.
J'ai installé le jeu d'outils de développement pour obtenir des versions modernes de gcc et c ++ sur RHEL 6, et je n'ai eu aucun problème à compiler du code sans le faux sudo dans le mix.
la source
J'ai eu des problèmes similaires avec
sudo -E
flag après avoir utilisé devtoolset-4. Vous ne devez pas ajouter d'-E
indicateur dans ce cas, car il est ajouté dans le/opt/rh/devtoolset-4/root/usr/bin/sudo
script wrapper, en voici le contenu:la source