无法访问终端中的 .shh 文件夹

无法访问终端中的 .shh 文件夹

嘿伙计们,我只是想知道为什么这个下面的命令不起作用:

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

因此,我在终端内运行此命令,尝试访问包含我的一个私钥的 .shh 文件夹。

然后我运行 pwd 以确保我位于此文件夹中:

Nicholass-MBP:~ nicholasmaddren$ pwd

然而,我得到的结果是,我不在那个目录中,所以我无法选择我的 SHH 密钥。

/Users/nicholasmaddren

有人可以为我解释一下这个问题吗?我将非常感激。

谢谢,尼克

答案1

只是好奇。你为什么首先要使用 sudo 进入主目录中的文件夹?Sudo 用于访问不属于你的文件夹,以及其他用途(超级用户可执行的操作)...

答案2

(这个答案不是针对 Mac OSX 的,而是针对 BSD/Unix 的工作方式。由于 Mac OSX/Darwin 基于 BSD/Unix,因此预计这对您适用并且工作正常,也适用于其他 Unix。)

是的...您报告的结果正是预期的。

事情是这样的:你运行了“sudo”。“sudo”命令试图运行“cd ~/.ssh”,但可能失败了,因为“cd”是一个内部命令。要使该命令工作,但无法完成你试图做的事情,你可以使用:

sudo -c ${SHELL} “cd ~/.ssh”
然后,sudo 命令退出,因此您回到当前目录,并得到您不想要的结果。

您应该可以访问自己的主目录,因此您的解决方案是删除单词“sudo”,这可以帮助您获得权限。如果您尝试访问其他用户的目录,则可能需要创建一个子 shell,因此您可以使用:

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

然后,您的提示符可能会更改为 # 而不是 $,因为 sudo 赋予了您超级用户权限。当您完成“rootly”操作后,键入“exit”以将您的提示符更改回非特权,显示 $ 而不是 #。

相关内容