无法为其他用户 cd 到 AWS EC2 实例中的目录

Posted

技术标签:

【中文标题】无法为其他用户 cd 到 AWS EC2 实例中的目录【英文标题】:Cannot cd into directory in AWS EC2 instance for another user 【发布时间】:2018-05-12 12:52:11 【问题描述】:

不确定这是否是发布此问题的最佳地点,如果不是,请指出正确的方向。

按照这些说明 - https://aws.amazon.com/blogs/big-data/running-r-on-aws/ - 我已在 AWS EC2 (Amazon Linux AMI) 实例上成功启动了 R、RStudio Server 和 Shiny Server。在初始化实例时,我按照说明通过在用户数据中添加代码行来创建用户和密码。

从我的主目录通过 ssh 进入我的实例后,我有以下内容:

[ec2-user@ip-012-34-56-78 home]$ ls
ec2-user  johndoe  shiny

我可以 cd 进入 ec2-user 目录,但是当我尝试 cd 进入 johndoe 目录时,我收到以下错误:

[ec2-user@ip-012-34-56-78 home]$ cd johndoe/
-bash: cd: johndoe/: Permission denied

有人知道我如何 cd 进入这个目录吗?我链接的文章没有提到它。

谢谢!

【问题讨论】:

【参考方案1】:

ec2-user 没有该目录的权限。所以你有两个(或三个)选择:

    sudo su - 成为 root。然后您就可以进入该目录并按照您认为合适的方式进行操作。 sudo chmod 755 /home/johndoe 这将使该目录在全世界都可读。 如果johndoe 用户是真实用户(即在/etc/passwd 中有一个条目),那么您可以sudo su - johndoe 成为该操作系统用户。

答案的相对优点取决于您希望系统中的安全性。如果您只需要查看,那么第一个或第三个答案可能是最好的,因为它们不是持久的变化。但是,如果您真的想通过ec2-user 使用该目录,那么您可能需要使用第二个答案。

【讨论】:

谢谢。我是这个 EC2 实例的唯一用户,我制作了 johndoe,以便我可以登录到 RStudio Server 并编写闪亮的应用程序。我不希望世界其他人能够看到或访问我保存在 johndoe 文件夹中的代码。听起来第一个答案对我来说应该足够了,谢谢! 我可以问一个后续问题吗 - 在我的 ec2-user 目录中有一个 ShinyApps 目录,在该目录中是我所有不同的闪亮应用程序。当我在 RStudio Server 中保存我的应用程序时,它们会保存到 home/johndoe/,然后我将它们移动到 home/ec2-user/ShinyApps,以便人们可以在线访问仪表板。我在 home/ec2-user/ShinyApps 中的代码安全吗? @Canovic - 我对环境的了解还不够,无法正确回答这个问题。您能否发布一个新问题,以便可能更熟悉 RStudio 的人回答? 正是我想要的。

以上是关于无法为其他用户 cd 到 AWS EC2 实例中的目录的主要内容,如果未能解决你的问题,请参考以下文章

AWS EC2 启动/停止实例的 IAM 策略

AWS - 自定义拒绝消息

为啥我无法在对等互连后从另一个 VPC 中的 EC2 实例连接 AWS RDS 实例

AWS 仅允许用户访问弹性 beanstalk 实例和存储

无法访问 AWS ECS EC2 实例中的端口

无法从 S3 读取 csv 到 AWS 上 EC2 实例上的 pyspark 数据帧