Я хочу записать cd в каталог с терминала, но доступ запрещен, и ввод sudo cd (directory)
возвращает ошибку о том, что sudo не поддерживает команду cd. Я могу использовать sudo gnome-terminal
для запуска нового окна терминала с привилегиями root, но мне нужно решение, которое я могу использовать из того же окна терминала без полномочий root. Есть ли способ сделать команду cd совместимой с sudo?
Я боюсь, что не возможно использовать cd
с sudo
непосредственно. sudo
может назвать исполняемые файлы, например sudo ls
, но cd
встроенная команда оболочки. Другими словами, существует файл, который содержит исполняемый сценарий для ls
(/bin/ls
), но нет никакого файла для cd
, таким образом, Вы не можете использовать cd
с sudo
.
Ну, конечно, можно выполнить следующую команду:
sudo sh -c "cd somedirectory"
и технически, Вы измените текущий каталог запущенной подоболочки. Проблема - то, что подоболочка сразу выйдет, и Вашей основной оболочке не изменили бы ее собственный каталог.
основной вопрос - то, что, если Вы не можете cd
к каталогу, Вы не можете выполнить ни одного оболочка в нем с Вашим текущим счетом.
обходное решение А должно переключиться на учетную запись пользователя, которая имеет это право, и корень является, конечно, самым простым выбором:
sudo sh -c "cd somedirectory; sh"