Изменить каталог с помощью sudo

22

Как мне перейти в каталог, принадлежащий пользователю root?

Если я сделаю: sudo cd RootOwedDir

Я получил: sudo cd: command not found

Если я su root

Я получаю:, authentication failureвероятно, потому что я никогда не создавал настоящую учетную запись root.

Что я здесь не так делаю?

неизвестный пользователь Google
источник
Подводя итог, можно сказать, что обе команды cYrus "sudo su" и "sudo sh -sc" cd dir_path "(обратите внимание на дополнения '' parm) решили эту проблему. Спасибо всем за помощь.
неизвестный пользователь Google,

Ответы:

20

Вместо этого попробуйте использовать sudo -sдля запуска корневую оболочку, а затем просто cdв каталог.
Когда вы закончите как пользователь root, нажмите CtrlDили введите exit.

Важно отметить, что как пользователь root может легко нанести ущерб необходимым компонентам системы. Используйте с осторожностью!

oKtosiTe
источник
5

Это потому, что cdэто не команда, а встроенная функция оболочки; и suожидает пароль root. Просто используйте:

sudo su

запустить оболочку с правами root. Введите exitили нажмите Ctrl+, Dчтобы вернуться к предыдущей оболочке, когда вы закончите.

Кир
источник
2
sudo suэто излишне сложно. sudo -sзаставляет sudo запустить оболочку; или вы можете запустить, sudo bashили sudo zshесли вы не хотите, чтобы помнить -sопцию.
Жиль "ТАК - перестань быть злым"
3
sudo sh -c "cd dir_path"
Уэсли Райс
источник
Это не работает для меня тоже. Это может быть потому, что каталог, в который я хочу войти, имеет встроенные пробелы в имени. Я пробовал вариации на sudo sh -c "cd my \ path" без удачи. Нет сообщения об ошибке, он просто возвращает, как будто он что-то сделал, но я остаюсь в том же каталоге. sh установлен в моей системе, хотя я обычно использую bash.
неизвестный пользователь Google
@unknown - я всегда полагал, что вам придется порождать подоболочку для запуска встроенных командных оболочек от имени root, будь то bash или старая версия sh. Я полон решимости понять это.
Уэсли Райс
Добавление опции -s вместе с -c добилось цели. Спасибо за попытку.
неизвестный пользователь Google
1

Вы также можете сделать sudo vimв папке, то есть, sudo vim RootOwedDirи он покажет vim view для папок, который покажет все файлы / папки, которые находятся в этой папке. тогда вы можете просто запустить то, что вам нужно, из-за пределов папки, и sudo, как обычно.

отметка
источник
0

su -затем введите свой пароль. Теперь вы можете просто перейти в каталог. Помните, что вы теперь root, поэтому ctrl-d, прежде чем делать что-то, за что вы не хотите быть root.

Unfundednut
источник
Это приводит к ошибке аутентификации в Ubuntu.
Уэсли Райс
В самом деле? У меня никогда не было проблемы для меня.
unundednut
2
Для OP это, конечно же, так как у него нет правильной учетной записи root.
Уэсли Райс
Интересно, что я нахожусь на новой установке Ubuntu, я никогда не 'настраиваю' пользователя root, но я могу просто sudo -сказать, что я бог системы.
unundednut
Да, я просто получаю ошибку аутентификации.
неизвестный пользователь google
0

Для меня сочетание sudoи screenвыработано:

sudo -iu vagrant screen -mS npm_install bash -c 'cd /vagrant && npm install'

Эта команда сначала переключается на vagrantпользователя. Затем по мере vagrantизменения каталога на /vagrantи выполняет npm install.

czerasz
источник
-2

Самый простой способ сделать это - включить учетную запись root и использовать su, чтобы стать пользователем root. Ubuntu очень защищает корневую учетную запись из-за возможности неправильного использования, но иногда гораздо проще использовать корневую учетную запись, чем sudo в каждой строке. Просто знайте, какую учетную запись вы используете в любой момент времени.

Взято отсюда :

Откройте терминал и введите: sudo passwd root . Когда вы увидите приглашение «Введите новый пароль UNIX» , введите пароль, который вы хотите для пользователя root, и подтвердите его.

На этом этапе вы сможете перейти в корневой каталог, используя su и cd для каталога.

zcid
источник
-1. Это полно неправды. При чем тут GDM? OP хочет "cd" для директории, доступной только для пользователя root. Никто не должен входить в систему как root через GDM.
Уэсли Райс
Хорошая точка зрения. Я не полностью прочитал, что я там вставил.
zcid
Гораздо проще, чем это, включить корневую оболочку с sudo -s, как говорили другие, и гораздо лучше узнать о sudo, гораздо более гибком и детализированном инструменте, чем su, если его правильно использовать.
Адриано Вароли Пьяцца