如果我想将上传的文件保存在' / usr / local'使用我的grails应用程序,我是否需要授予权限?

时间:2014-07-13 11:16:30

标签: grails

我有一个应用程序将上传的文件移动到我的驱动器中的某个位置,如下所示:

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做到这一点?

2 个答案:

答案 0 :(得分:1)

您是对的,您需要在主机操作系统上授予目标方向的权限。这些权限应尽可能具有限制性。允许对Tomcat(或用于运行WAR的任何容器)的帐户进行读写操作。

您将遇到的问题通常是/ usr /不允许该帐户访问它。因此,您的应用程序本身无法更改权限。这必须由服务器管理员完成。

同样,尽可能限制您的权限。不要只为每个人chmod -R 777。请至少考虑770。

答案 1 :(得分:0)

在我看来,问题是操作系统许可,

你必须使用:

  

chmod -R 777 / usr / local / something / something

并且可能很棒,但从安全角度来看这是不合理的