Как запустить CD от имени суперпользователя

Я хочу перейти в каталог с терминала, но доступ запрещен, и набрав sudo cd (directory) возвращает ошибку о том, что sudo не поддерживает команду cd. я могу использовать sudo gnome-terminal запустить новое окно терминала с привилегиями root, но я хочу решение, которое я могу использовать из того же окна терминала без полномочий root. Есть ли способ сделать команду cd совместимой с sudo?

2 ответа

Я боюсь, что это невозможно использовать cd с sudo непосредственно. sudo может вызывать исполняемые файлы, например sudo ls, но cd это встроенная команда оболочки Другими словами, есть файл, который содержит исполняемый скрипт для ls (/bin/ls), но нет файла для cdтак что вы не можете использовать cd с sudo,

Ну, вы, безусловно, можете запустить следующую команду:

sudo sh -c "cd somedirectory"

и технически вы изменили текущий каталог запущенной подоболочки. Проблема в том, что subshell будет немедленно завершен, и ваша основная оболочка не изменит свой собственный каталог.

Основная проблема в том, что если вы не можете cd в каталог, вы не можете запустить оболочку внутри него с вашей текущей учетной записью.

Обходной путь - переключиться на учетную запись пользователя, которая имеет это право, и root, конечно, самый простой выбор:

sudo sh -c "cd somedirectory; sh"
Другие вопросы по тегам