如标题中所述,在OS中,对于OS中的/ proc // pagemap,所有者是启动此应用程序的用户,权限是-r --------。 Docker应用程序中的用户是另一个无法读取此文件的用户。那么我们可以在Docker应用程序中读取它呢?
答案 0 :(得分:0)
如果我理解你的问题:你可能需要使用setuid()成为阅读文件的有效用户。如果你有一个java应用程序,那么将它包装在shell脚本中并从java调用。
以下是您可以做的,作为示例
编写一个shell脚本或c程序:说“proc_read_util”来读取和打印/ proc / self / pagemap文件
chmod u + s proc_read_util
从您的应用程序调用此程序,获取输出和处理。
答案 1 :(得分:0)
Linux 4.0版本,包括由补丁(https://lwn.net/Articles/642075/)向后移植的版本,需要CAP_SYS_ADMIN来访问/ proc / pid / pagemap。目前,使用--priviledged运行docker可以帮助解决使用Docker丢失意义的成本问题。