我不确定在这种情况下我使用 Ubuntu Server 是否重要。当我尝试使用 File.mkdirs() 方法创建文件夹时,它不会抛出异常,只是永远不会工作。
可以在这里找到我的问题的具体代码参考的详细解释:无法在服务器上创建目录。权限问题?
我写一个新问题的原因是因为我想知道是否由于权限原因在服务器上创建目录时遇到问题。
String path = /home/username/foldertocreate;
File file = new File(path);
file.mkdirs();
所以我试图在 /home/username 目录中创建一个文件夹。当我在开发盒和 Eclipse 内的 tomcat 实例上以开发模式运行时,这工作得很好,但当代码在服务器上运行时,它会失败。这可能是因为在开发盒上用户已登录,因此打开了写入 /home/username 文件夹的权限?在服务器上,程序运行时用户实际上并未登录......
有我可以写入的特定文件夹吗?
我检查了当前设置为 700 的文件夹的权限。这可能是问题所在吗?将此文件夹设置为 666 或 777 安全吗?即使用户未登录,该文件夹是否可写?
Update:尝试将文件夹权限更改为 755,但没有成功。
如果您使用 ubuntu 的打包版 tomcat,则它在不同的用户帐户下运行 - 最有可能名为“tomcat”。仔细检查ps aux | grep catalina
- 这将显示 tomcat 正在运行的用户名,如第一列中所示。正是这个用户帐户需要能够创建目录/文件。
出于这个原因,您可能不想打开任意主目录以供所有人写入,而是在某处配置特定目录以供 tomcat 用户访问。设置 755 权限为所有者提供读/写/执行权限,而其他人则获得读/执行权限。如果“tomcat”不是所有者,它将无法在这些目录中创建任何内容。但不要落入陷阱chmod 777
- 除非是为了快速测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)