Tôi muốn chạy nút có người dùng đặc quyền thấp, có thể không? Tôi cần sử dụng khung công tác Express.jsTôi có thể chạy Node.JS với đặc quyền thấp không?
Trả lời
Có. Có nhiều giải pháp có sẵn để thực hiện việc này, tùy thuộc vào nhu cầu chính xác của bạn.
Nếu bạn muốn chạy nút trên cổng 80, bạn có thể sử dụng nginx (không hoạt động với WebSockets) hoặc haproxy. Nhưng có lẽ nhanh nhất và bẩn nhất là sử dụng iptables để chuyển hướng cổng 80 đến cổng của sự lựa chọn của bạn:
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8003
sudo iptables -t nat -L
Khi bạn đang hạnh phúc, sau đó lưu cấu hình và chắc chắn rằng iptables đi vào lúc khởi động
sudo service iptables save
sudo chkconfig iptables on
Để tự động bắt đầu dịch vụ nodejs của bạn là không root, và khởi động lại nó nếu nó không thành công, bạn có thể sử dụng upstart với một kịch bản như thế này:
#!upstart
description "nodeapp"
author "you"
start on started mountall
stop on shutdown
# Automatically Respawn:
respawn
respawn limit 99 5
script
export HOME="/home/user/"
exec sudo -u user /usr/local/bin/node /home/user/app.js 2>&1 >> /home/user/app.log
end script
Nếu bạn đang ở trên trình cài đặt Amazon EC2, hoặc bạn nhận được một lỗi nói rằng sudo: sorry, you must have a tty to run sudo
, sau đó bạn có thể thay thế lệnh exec của bạn với điều này:
#!upstart
description "nodeapp"
author "you"
start on started mountall
stop on shutdown
# Automatically Respawn:
respawn
respawn limit 99 5
script
export HOME="/home/user/"
#amazon EC2 doesn’t allow sudo from script! so use su --session-command
exec su --session-command="/usr/local/bin/node /home/user/app.js 2>&1 >> /home/user/app.log" user &
end script
Và, bạn đã không hỏi câu hỏi này, nhưng để giữ cho nó chạy mãi mãi, hãy kiểm tra monit! Đây là a useful guide to setting up node.js with upstart and monit.
Cài đặt HOME thực sự làm gì ở đây? – blu
Tùy thuộc vào phiên bản cụ thể của nút bạn đang sử dụng, cấu trúc thư mục của bạn trông như thế nào và liệu nút đã được cài đặt bởi root hay người dùng hiện tại, câu trả lời sẽ khác nhau giữa mọi thứ và không có gì :) từ, nó có thể được bỏ qua hoàn toàn (lưu ý rằng tôi đặt không đúng '/ home/user/nodeapp' trong ví dụ của tôi, khi nó phải khớp với vị trí app.js của'/home/user/', tức là khi require() đang đi để tìm kiếm các mô-đun) – Kato
Tuyệt vời, cảm ơn thông tin – blu
- 1. Có DefaultAppPool chạy với đặc quyền nâng cao đặc biệt trên IIS?
- 2. Có thể xem các đặc quyền bảng người dùng Oracle mà không có đặc quyền DBA không?
- 3. VPS đặc tả thấp nhất để chạy Ruby on Rails
- 4. Sau khi bẻ khóa, các ứng dụng iOS có chạy với đặc quyền gốc không?
- 5. Visual Studio có chạy thử nghiệm với quy trình ít đặc quyền hơn không?
- 6. trăn không có đặc quyền ICMP
- 7. Node.js có thể chạy trong máy chủ Tomcat không?
- 8. Có thể cài đặt vào Program Files với các đặc quyền hạn chế không?
- 9. Chạy tệp Java với tư cách Quản trị viên với đầy đủ các đặc quyền
- 10. Không thể phát hiện xem người dùng có đang chạy với đặc quyền cao hay không, khi không có cửa sổ bật lên UAC
- 11. Đặc quyền nâng cao không hoạt động với UseShellExecute = false
- 12. Làm cách nào để tôi có thể xóa các đặc quyền trong Perl?
- 13. ashmem có quyền hạn đặc biệt nào?
- 14. Tôi có thể chạy tệp .coffee trực tiếp từ node.js không?
- 15. Tôi có thể cài đặt gói NPM từ javascript đang chạy trong Node.js không?
- 16. Những ngôn ngữ nào ngoài Java có các mô hình bảo mật cho mã không có đặc quyền so với đặc quyền?
- 17. Không thể tạo kích hoạt MySQL với đặc quyền TRIGGER trên 5.1.32
- 18. Chạy tập tin thực thi với các đặc quyền quản trị trên mac
- 19. ủy quyền node.js + express.js + socket.io: không có cookie
- 20. chạy jar với các đặc quyền root trên mac os x bằng một cú nhấp chuột
- 21. Đặc quyền chmod an toàn?
- 22. Giảm đặc quyền trong C++ trên Windows
- 23. Đặc quyền quy trình nâng cao có lập trình?
- 24. Làm thế nào để chạy tùy chỉnh thực thi với đặc quyền nâng cao?
- 25. Chạy Visual Studio mà không có quyền quản trị
- 26. Leo thang đặc quyền vỏ Gnome
- 27. Tại sao node.js không thể chạy trên shared hosting?
- 28. Chương trình Java có thể phát hiện rằng nó đang chạy thấp trên không gian heap?
- 29. Không thể lấy Intern để chạy Mô-đun Node.js
- 30. Có thể tích hợp node.js với php không?
Xác định "người dùng đặc quyền thấp". –
Tôi không muốn điều chỉnh node.js với các đặc quyền ROOT. – Dail
Điều gì làm bạn nghĩ bạn phải làm? Tôi chưa bao giờ cần phải làm như vậy. –