-1

Эй, ребята, мне просто интересно, почему эта нижеуказанная команда не будет работать:

Nicholass-MBP:~ nicholasmaddren$ sudo cd ~/.ssh

Поэтому я запускаю эту команду в терминале, чтобы попытаться получить доступ к папке .shh, в которой есть один из моих закрытых ключей.

Затем я запускаю pwd, чтобы убедиться, что я нахожусь в этой папке:

Nicholass-MBP:~ nicholasmaddren$ pwd

Однако я остаюсь с этим результатом, что означает, что я не в этом каталоге, поэтому я не могу выбрать свой ключ SHH.

/Users/nicholasmaddren

Может ли кто-то просто пролить немного света на это для меня, я был бы очень признателен.

Спасибо ник

2 ответа2

0

Просто любопытно. Зачем вам в первую очередь захотеть зайти в папку в вашем домашнем каталоге? Sudo предназначен для доступа к папкам, не принадлежащим вам, среди прочего (Super User Do)...

0

(Ни один из этих ответов не относится к Mac OSX, но именно так работает BSD/Unix. Так как Mac OSX/Darwin основан на BSD/Unix, ожидается, что он подойдет и будет работать нормально для вас, а также будет применяться к другим Unixes.)

Ага ... результаты, о которых вы сообщаете, соответствуют ожиданиям.

Вот что случилось: вы запустили "sudo". Команда "sudo" пыталась запустить "cd ~/.ssh", что, вероятно, не удалось, потому что "cd" является внутренней командой. Чтобы заставить эту команду работать, которая не будет выполнять то, что вы пытаетесь сделать, вы можете использовать:

sudo -c $ {SHELL} "cd ~/.ssh"
Затем команда sudo завершается, и вы возвращаетесь в свой текущий каталог, давая вам нежелательные результаты, которые вы получаете.

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

sudo -c $ {SHELL} "cd ~ anotherUser/.ssh"

Тогда ваш запрос, скорее всего, изменится на # вместо $, поскольку sudo предоставил вам привилегии суперпользователя. Когда вы закончите делать свои "рутинные" вещи, наберите "exit", чтобы вернуть ваше приглашение обратно к непривилегированному, показывая $ вместо #.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .