使用Linux用户权限限制应用程序存储数据访问磁盘

时间:2012-08-08 06:22:05

标签: java linux permissions file-permissions

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

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

如何限制文件/目录访问应用程序?

2 个答案:

答案 0 :(得分:1)

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

每个程序都有uid/gideuid/egid,您的euid/egid应该与文件访问权限相匹配。


详细信息,IIRC,您应该运行Java SE程序,如java mainclassjava -jar main.jar。在脚本中编写启动命令,例如run.sh

FILE BEGIN run.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。

答案 1 :(得分:0)

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