Cuando intento cambiar a root usando, sudo -i
aparece el error /var/tmp/sclDvf3Vx: line 8: -i: command not found
... Sin embargo, su -
funciona y continuaré usando. De ninguna manera soy un administrador de sistemas de Linux, por lo que el entorno sigue siendo muy confuso para mí. Supongo que mis preguntas son:
- ¿Por qué se lanza el error?
- ¿Cuál es la diferencia entre los dos comandos?
- ¿Por qué usarías uno sobre el otro?
Actualizar:
Estoy usando la versión CentOS: CentOS versión 6.6 (Final)
Aquí está la salida de algunos comandos que me pidieron que ejecutara, en los comentarios a continuación.
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
Actualizar:
Esto se agregó a mi usuario no root ~ / .bashrc hace un tiempo porque necesitaba compatibilidad con C ++ 11. Cuando lo comento, re-ssh, puedo ejecutar sudo -i sin ningún error.
if [ "$(gcc -dumpversion)" != "4.7.2" ]; then
scl enable devtoolset-1.1 bash
fi
linux
centos
command-line
sudo
th3v0id
fuente
fuente
-
es realmente un (ASCII)-
?alias
para susudo
comando?sudo
que no es el comando sudo normal. Dado que no comprende las opciones de sudo, claramente no es algo estándar. Utilice/usr/bin/sudo
o pregunte a sus administradores locales (que realmente deberían haberle dicho esto cuando le dieron poderes de sudo).Respuestas:
De los comentarios y sus investigaciones posteriores, parece que su conjunto de herramientas está modificando el
PATH
. Desafortunadamente, eso incluye lo que parece ser un comando sudo viejo o roto.Valdría la pena intentar modificar el conjunto de herramientas de desarrollo incluido en su
.bashrc
estilo, y luego volver a iniciar sesión:fuente
En lugar de evitar el envoltorio de sudo roto del SCL, simplemente lo desactivé.
Agregar una nueva línea al final del archivo asegura que no se sobrescribirá con las actualizaciones posteriores de Yum, y luego lo hago no ejecutable.
Instalé el conjunto de herramientas de desarrollo para obtener versiones modernas de gcc y c ++ en RHEL 6, y no he tenido problemas para compilar código sin el sudo falso en la mezcla.
fuente
Tuve problemas similares con
sudo -E
flag después de usar devtoolset-4. No debe agregar una-E
marca en ese caso, ya que se agrega en la/opt/rh/devtoolset-4/root/usr/bin/sudo
secuencia de comandos de envoltura, aquí está el contenido de la misma:fuente