0

我正在开发一个将在 Linux 上运行的 Java SE 应用程序。该应用程序将一些文件和目录存储在磁盘上。

我只需要应用程序本身能够读取/写入这些文件/目录(即当前登录的用户不应该能够使用 OS 文件管理器读取/写入/复制这些文件)。
我试图创建一个用户和一个用户组,并将文件的权限更改为 600,将目录的权限更改为 700。
问题是应用程序以当前登录用户身份运行,因此它以当前用户身份存储文件作为所有者。
如果我chown对文件进行操作,那么应用程序将无法再读取文件!

我应该怎么做才能限制对应用程序的文件/目录访问?

4

2 回答 2

1

我认为setuid是你的选择。有关详细信息,请参见手册页。这是wikipage,也是一个很好的参考。

每个程序都有一个uid/gidand euid/egid,你应该有它euid/egid匹配的文件访问权限。


详细地说,IIRC,你应该运行你的 Java SE 程序,比如java mainclassjava -jar main.jar. 在脚本中编写启动命令,例如run.sh.

文件开始运行.sh

java mainclass # or java -jar main.jar choose one appropriate to you

文件结束

然后sudo chown root run.sh然后sudo chmod ug+s run.sh

这假设您在 sudoer 列表中。如果没有,您必须向 SA 寻求帮助。

于 2012-08-08T06:27:50.637 回答
0

那是不可能的。用户和他们运行的程序之间的权限没有区别。

于 2012-08-08T06:23:56.363 回答