Когда я пытаюсь переключиться на root с помощью сообщения sudo -i
об ошибке /var/tmp/sclDvf3Vx: line 8: -i: command not found
... Однако, su -
работы, которые я буду продолжать использовать. Я ни в коем случае не системный администратор Linux, поэтому среда для меня все еще довольно туманна. Я думаю, мои вопросы:
- Почему выдается ошибка?
- В чем разница между двумя командами?
- Почему вы используете один поверх другого?
Обновить:
Я использую CentOS-версию: CentOS-релиз 6.6 (Final).
Вот результаты некоторых команд, которые мне было предложено выполнить, в комментариях ниже.
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
Обновить:
Это было добавлено к моему не-root пользователю ~ / .bashrc некоторое время назад, потому что мне нужна была поддержка C ++ 11. Когда я закомментирую это, повторно сделаю ssh, я могу запустить sudo -i без ошибок.
if [ "$(gcc -dumpversion)" != "4.7.2" ]; then
scl enable devtoolset-1.1 bash
fi
linux
centos
command-line
sudo
th3v0id
источник
источник
-
это действительно (ASCII)-
?alias
для вашейsudo
команды?sudo
которая не является нормальной командой sudo. Учитывая, что он не понимает параметров sudo, это явно не стандартная вещь. Или используйте/usr/bin/sudo
или спросите своих местных администраторов (которые действительно должны были сказать вам об этом, когда они дали вам полномочия sudo).Ответы:
Из комментариев и ваших дальнейших исследований похоже, что ваш devtoolset модифицирует
PATH
. К сожалению, это включает в себя то, что кажется старой или сломанной командой sudo.Стоит попробовать изменить в вашем файле devtoolset
.bashrc
, а затем снова войти в систему:источник
Вместо того, чтобы обойти сломанную оболочку sudo SCL, я просто отключил ее.
Добавление новой строки в конец файла гарантирует, что он не будет перезаписан последующими обновлениями Yum, и тогда я просто сделаю его неисполняемым.
Я установил набор инструментов dev для получения современных версий gcc и c ++ на RHEL 6, и у меня не было проблем с компиляцией кода без поддельного sudo в миксе.
источник
У меня были похожие проблемы с
sudo -E
флагом после использования devtoolset-4. Вы не должны добавлять-E
флаг в этом случае, потому что он добавлен в/opt/rh/devtoolset-4/root/usr/bin/sudo
скрипт-обертку, вот его содержимое:источник