6

この場合、Ubuntuサーバーを使用しているという事実が問題になるかどうかはわかりません。File.mkdirs() メソッドを使用してフォルダーを作成しようとすると、例外がスローされず、機能しません。

特定のコード参照に関する私の問題の詳細な説明は、次の場所にあります:サーバー上にディレクトリを作成できません。許可の問題?

私が新しい質問を書いている理由は、アクセス許可のためにサーバー上にディレクトリを作成する際に問題があるかどうか疑問に思っているからです。

String path = /home/username/foldertocreate;
File file = new File(path);
file.mkdirs();

/home/username ディレクトリにフォルダを作成しようとしています。これは、開発ボックスとEclipse内のTomcatインスタンスで開発モードで実行している場合は問題なく機能しますが、サーバーでコードを実行すると失敗します。これは、開発ボックスでユーザーがログインしているため、 /home/username フォルダーへの書き込み権限が開いているためでしょうか? サーバーでは、プログラムの実行中、ユーザーは実際にはログインしていません...

書き込み可能な特定のフォルダーはありますか?

現在700に設定されているフォルダの権限を確認しました。それが問題でしょうか? このフォルダを 666 または 777 に設定しても安全ですか? このフォルダは、ユーザーがログインしていなくても書き込み可能ですか?

更新:フォルダーのアクセス許可を 755 に変更しようとしましたが、うまくいきませんでした。

4

1 に答える 1

6

ubuntu のパッケージ バージョンの tomcat を使用している場合、これは別のユーザー アカウントで実行されています。おそらく「tomcat」という名前です。再確認してくださいps aux | grep catalina- これにより、Tomcat が実行されているユーザー名が最初の列に表示されます。正確にこのユーザー アカウントは、ディレクトリ/ファイルを作成できる必要があります。

このため、任意のホーム ディレクトリを開いて誰でも書き込み可能にするのではなく、特定のディレクトリを tomcat ユーザーがアクセスできるように構成する必要があります。755 パーミッションを設定すると、所有者に読み取り/書き込み/実行パーミッションが付与され、それ以外のすべてのユーザーには読み取り/実行パーミッションが付与されます。「tomcat」が所有者でない場合、これらのディレクトリに何も作成できません。chmod 777しかし、簡単なテストでない限り、罠にはまらないでください。

于 2013-05-26T08:40:34.037 に答える