【发布时间】:2012-12-12 16:59:47
【问题描述】:
代码:
File dir = new File(path);
boolean rc1 = dir.setExecutable(true, false);
boolean rc2 = dir.setReadable(true, false);
boolean rc3 = dir.setWritable(true, false);
if (!rc1 || !rc2 || !rc3){
logger.warn("One of the permissions set returned false: rc1="+rc1+" rc2="+rc2+" rc3="+rc3 + " [for dir '"+dir+"']");
}
在 Ubuntu 上,所有 3 个调用都返回 false。 在我的 Windows 上,只有第三次调用 setWritable 返回 false。
目标是创建文件/目录,以便用户(tomcat)和组能够读/写。
但是在 Ubuntu 上创建的文件没有该组的写入权限。
【问题讨论】:
-
你是否以 root 用户身份运行程序?
-
您是否以拥有该目录的用户身份运行程序?用户是Windows下的管理员吗?
-
@Akhil - 不,它在 Tomcat 中运行,因此它创建为“tomcat”用户。
-
@Peter - 是的,这个用户还创建了目录和文件。不,这不是 Win/Ubuntu 管理员,这是“tomcat”用户。
-
@Bhavik: -rw-rw-r-- 1 tomcat www-data 9334 Dec 15 23:40 logo_121854_201212151159.png
标签: java file permissions io file-permissions