我有一个应用程序将上传的文件移动到我的驱动器中的某个位置,如下所示:
def storagePathDirectory = new File(destinationPath)
if(!storagePathDirectory.exists()) {
log.info("Storage Path Directory does not exist. Creating a new directory: ${storagePathDirectory.toString()} ...")
if (storagePathDirectory.mkdirs()){
log.info("Successfully created: ${storagePathDirectory.toString()}")
} else {
log.info("Failed to create: ${storagePathDirectory.toString()}...")
}
}
我想保存在/usr/local/something/something
下。如果应用程序尝试将文件移动到不受/home/user/something
限制的文件夹中,则效果很好。我是否需要为我的应用设置权限,以便它可以在/usr/
下写入文件?我如何用grails做到这一点?
答案 0 :(得分:1)
您是对的,您需要在主机操作系统上授予目标方向的权限。这些权限应尽可能具有限制性。允许对Tomcat(或用于运行WAR的任何容器)的帐户进行读写操作。
您将遇到的问题通常是/ usr /不允许该帐户访问它。因此,您的应用程序本身无法更改权限。这必须由服务器管理员完成。
同样,尽可能限制您的权限。不要只为每个人chmod -R 777。请至少考虑770。
答案 1 :(得分:0)
在我看来,问题是操作系统许可,
你必须使用:
chmod -R 777 / usr / local / something / something
并且可能很棒,但从安全角度来看这是不合理的