簡體   English   中英

設置 CHMOD 777 后 /bin/node 權限被拒絕

[英]/bin/node permission denied after setting CHMOD 777

這是針對 Amazon EC2 linux 的。

我有一個運行 shell 腳本的 PHP 腳本。

所以在 shell 腳本里面是一個運行 node.js 的命令。

當我從命令行運行 PHP 腳本時,節點會執行。

當我從瀏覽器運行 PHP 腳本時,我在 apache 日志中收到此消息:

/home/ec2-user/.nvm/versions/node/v8.11.3/bin/node: Permission denied

這是在 /home/ec2-user/.nvm/versions/node/v8.11.3/bin/node 上執行 chmod 777 之后

我也做了 chown ec2-user:apache /home/ec2-user/.nvm/versions/node/v8.11.3/bin/node

此外,這里是結果:

$ ls -alrt /home/ec2-user/.nvm/versions/node/v8.11.3/bin/node

-rwxrwxrwx 1 ec2-user apache 34800111 Jun 12 22:40 /home/ec2-user/.nvm/versions/node/v8.11.3/bin/node

每個人都擁有完全權限,我怎么會收到“權限被拒絕”錯誤?

因此,如果我從命令行運行 PHP 腳本,這將再次完美運行。

好的,這完全是禁忌,但它暫時是一個黑客。

由於它在我的 AWS EC2 實例上運行,我只是通過安全組限制所有內容,只允許我允許的 IP 地址,因此對我來說是安全的。

您必須在 sudoers 文件中為 apache 組添加權限。

所以,首先:

$ sudo visudo

然后添加:

%apache ALL = (ALL) NOPASSWD: ALL

到文件末尾。 同樣,這很糟糕,這是一種黑客行為,但它是當前的解決方法,無論如何我都會通過安全組中的 IP 地址限制對 EC2 實例的訪問。

如果您想運行它,那么您可以轉到/etc/sudoers並將 apache 設為您的 sudo 用戶,它將擁有在瀏覽器中運行該文件的 root 權限。 您必須進行的更改是:-首先找到該行

root ALL=(ALL) ALL

然后在它下面添加一行

apache ALL=(ALL) NOPASSWD: ALL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM