Как запустить cd от имени суперпользователя [дубликат]

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

1
задан 20 April 2018 в 16:10

2 ответа

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

2
ответ дан 7 December 2019 в 13:40

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

sudo sh -c "cd somedirectory"

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

основной вопрос - то, что, если Вы не можете cd к каталогу, Вы не можете выполнить ни одного оболочка в нем с Вашим текущим счетом.

обходное решение А должно переключиться на учетную запись пользователя, которая имеет это право, и корень является, конечно, самым простым выбором:

sudo sh -c "cd somedirectory; sh"
0
ответ дан 7 December 2019 в 13:40

Другие вопросы по тегам:

Похожие вопросы: