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


22

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

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

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

Если я su root

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

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


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

Ответы:


20

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

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


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.


Это приводит к ошибке аутентификации в 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.


-2

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

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

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

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


-1. Это полно неправды. При чем тут GDM? OP хочет "cd" для директории, доступной только для пользователя root. Никто не должен входить в систему как root через GDM.
Уэсли Райс

Хорошая точка зрения. Я не полностью прочитал, что я там вставил.
zcid

Гораздо проще, чем это, включить корневую оболочку с sudo -s, как говорили другие, и гораздо лучше узнать о sudo, гораздо более гибком и детализированном инструменте, чем su, если его правильно использовать.
Адриано Вароли Пьяцца
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.