Wenn ich versuche, mit root zu root zu wechseln, sudo -i
erhalte ich die Fehlermeldung /var/tmp/sclDvf3Vx: line 8: -i: command not found
... Funktioniert jedoch, su -
die ich weiterhin verwenden werde. Ich bin auf keinen Fall ein Linux-Systemadministrator, daher ist die Umgebung für mich immer noch ziemlich neblig. Ich denke meine Fragen sind:
- Warum wird der Fehler ausgelöst?
- Was ist der Unterschied zwischen den beiden Befehlen?
- Warum würden Sie eins über das andere verwenden?
Aktualisieren:
Ich verwende die CentOS-Version: CentOS Release 6.6 (Final)
Hier ist die Ausgabe einiger Befehle, die ich ausführen soll, in den Kommentaren unten.
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
Aktualisieren:
Dies wurde vor einiger Zeit zu ~ / .bashrc meines Nicht-Root-Benutzers hinzugefügt, da ich C ++ 11-Unterstützung benötigte. Wenn ich es auskommentiere, re-ssh in, kann ich sudo -i ohne Fehler ausführen.
if [ "$(gcc -dumpversion)" != "4.7.2" ]; then
scl enable devtoolset-1.1 bash
fi
linux
centos
command-line
sudo
th3v0id
quelle
quelle
-
wirklich ein (ASCII) ist-
?alias
für Ihrensudo
Befehl erstellt?sudo
der nicht der normale sudo-Befehl ist. Da es die Optionen von sudo nicht versteht, ist es eindeutig keine Standardsache. Verwenden Sie/usr/bin/sudo
entweder Ihre lokalen Administratoren oder fragen Sie sie (die Ihnen das wirklich hätten sagen sollen, als sie Ihnen Sudo-Befugnisse verliehen haben).Antworten:
Aus den Kommentaren und Ihren weiteren Untersuchungen geht hervor, dass Ihr devtoolset das ändert
PATH
. Leider schließt dies einen scheinbar alten oder kaputten Sudo-Befehl ein.Es lohnt sich zu versuchen, das devtoolset-Include in Ihrem
.bashrc
Beispiel so zu ändern und sich dann erneut anzumelden :quelle
Anstatt den kaputten Sudo-Wrapper der SCL zu umgehen, habe ich ihn einfach deaktiviert.
Durch Hinzufügen einer neuen Zeile am Ende der Datei wird sichergestellt, dass sie nicht durch nachfolgende Yum-Updates überschrieben wird. Dann mache ich sie einfach nicht ausführbar.
Ich habe das Dev-Toolset installiert, um moderne Versionen von gcc und c ++ auf RHEL 6 zu erhalten, und hatte keine Probleme beim Kompilieren von Code ohne das gefälschte Sudo im Mix.
quelle
Ich hatte ähnliche Probleme mit
sudo -E
Flag, nachdem ich devtoolset-4 verwendet hatte.-E
In diesem Fall sollten Sie kein Flag hinzufügen , da es im/opt/rh/devtoolset-4/root/usr/bin/sudo
Wrapper-Skript hinzugefügt wird. Hier ist der Inhalt davon:quelle