Các vùng heap java được tạo ra trong một Máy Linux (và hầu hết các máy Unix có lẽ) đều có quyền truy cập bị giới hạn. Heap chỉ có thể được đọc bởi chủ sở hữu của quá trình (mặt nạ ACL được đặt thành 600). Tôi hiểu rằng đây là vì lý do bảo mật. Tuy nhiên, tôi không thể tìm thấy bất kỳ tài liệu tham khảo hoặc giải thích hành vi. Bất cứ ai có thể chỉ cho tôi tài liệu hướng dẫn (nếu có)? Ngoài ra, có cách nào để ghi đè hành vi này không?Quyền truy cập vùng heap Java
Trả lời
Kết xuất đống được viết bởi quy trình JVM, chạy dưới dạng người dùng cụ thể. Giống như bất kỳ tệp nào được tạo bởi mọi quy trình Linux, nó sẽ được sở hữu bởi người dùng đó.
Nếu bạn muốn tài liệu thực tế, here it is. Hãy xem mô tả theo số O_CREAT
.
Tôi không tin nó giống như việc tạo bất kỳ tệp nào khác bởi cùng một người dùng. Trong môi trường của tôi, i hav umask cho người dùng được đặt thành 022. Khi tôi tạo tệp bằng cách chạm, thì quyền tệp là 644 (rw-r-r-). Trong thực tế, ngay cả các tập tin đăng nhập được tạo ra bởi quá trình java có quyền như được quyết định bởi umask. Tuy nhiên, khối đống là alwys tại 600 (rw ----). Tôi tin rằng JVM là explctly thiết lập permssns do mối quan tâm an ninh (bcos heap có thể cntain nhạy cảm dữ liệu) hoặc sử dụng một cuộc gọi hệ thống gây ra điều này. Tôi đang tìm tài liệu giải thích nó và bất kỳ phương tiện để ghi đè lên nó (chmod sau khi h-dump không phải là một optn) –
Nếu bạn quan tâm đến nội bộ JVM sâu, bạn có thể kiểm tra mã nguồn cho OpenJDK.
Dưới đây là một liên kết cho dịch vụ HeapDumper: http://hg.openjdk.java.net/jdk7/jdk7/hotspot/file/9b0ca45cd756/src/share/vm/services/heapDumper.cpp
Nếu bạn đào trong, bạn sẽ thấy JVM đang tạo ra tập tin nhị phân với S_IREAD | S_IWRITE
4373 // create binary file, rewriting existing file if required
4374 int os::create_binary_file(const char* path, bool rewrite_existing) {
4375 int oflags = O_WRONLY | O_CREAT;
4376 if (!rewrite_existing) {
4377 oflags |= O_EXCL;
4378 }
4379 return ::open64(path, oflags, S_IREAD | S_IWRITE);
4380 }
- 1. java.lang.OutOfMemoryError: Vùng heap Java
- 2. Vùng heap Java hết bộ nhớ
- 3. Vùng chứa heap Java có bao gồm ngăn xếp luồng
- 4. Không thể thực hiện dex: Vùng heap Java Không gian heap Java
- 5. Không xây dựng được java.lang.OutOfMemoryError: Vùng heap Java
- 6. Netbeans OutOfMemoryError: Vùng heap Java, định dạng mã
- 7. java.lang.OutOfMemoryError: Vùng heap Java khi đọc excel với Apache POI
- 8. JVM có hoán đổi vùng heap không?
- 9. Java Enum quyền truy cập vào instance variable tin
- 10. Quyền truy cập vào sys.dm_db_index_usage_stats
- 11. Vùng chứa STL nào cho dữ liệu đặt hàng có quyền truy cập dựa trên khóa?
- 12. Truy cập vào vùng chứa DI
- 13. trên không cho một vùng heap trống
- 14. Android phát triển vùng heap frag
- 15. Quyền thừa kế và quyền truy cập tình bạn. C++
- 16. Java.lang.OutOfMemory Java Heap Space JDeveloper
- 17. DNS nào có quyền truy cập API?
- 18. quyền truy cập div trong iframe parent
- 19. PHP ldap_modify Không đủ quyền truy cập
- 20. Github hạn chế quyền truy cập
- 21. Quyền truy cập chung vào DbContext
- 22. Đặt quyền truy cập API JavascriptToken
- 23. Bạn có thể ghi đè quyền truy cập tệp đối với vùng lưu trữ được tạo bởi -XX + HeapDumpOnOutOfMemoryError không?
- 24. IntelliJ Idea đưa ra java.lang.OutOfMemoryError: lỗi vùng heap Java ngay cả sau khi tăng kích thước heap
- 25. Làm cách nào để thay đổi quyền truy cập tệp?
- 26. constantPoolClass trong Java heap?
- 27. Ổ cứng Heap Java
- 28. Java Heap Behavior
- 29. Làm cách nào để đặt quyền truy cập cho phép kiểm soát quyền truy cập trong webrick dưới đường ray?
- 30. Truy cập toàn cầu trong Java
Không phải là một câu trả lời hoàn chỉnh, nhưng bãi sợi có thể chứa ** thực sự ** thông tin bí mật, bao gồm cả mật khẩu cơ sở dữ liệu của bạn. Vì vậy, bạn nên giữ chúng an toàn hơn. –
Ghi đè nó bằng 'chmod' ...? –