Cuando intento cambiar a root usando, sudo -iaparece 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/sudosudo -V:/var/tmp/sclIU7gkA: line 8: -V: command not foundgrep'^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)-?aliaspara susudocomando?sudoque no es el comando sudo normal. Dado que no comprende las opciones de sudo, claramente no es algo estándar. Utilice/usr/bin/sudoo 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
.bashrcestilo, 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 -Eflag después de usar devtoolset-4. No debe agregar una-Emarca en ese caso, ya que se agrega en la/opt/rh/devtoolset-4/root/usr/bin/sudosecuencia de comandos de envoltura, aquí está el contenido de la misma:fuente