2013-05-26 1 views
6

Я не уверен, что в этом случае имеет значение тот факт, что я использую сервер Ubuntu. Когда я пытаюсь создать папку с помощью метода File.mkdirs(), она не генерирует исключение, просто никогда не работает.Какая папка Может ли приложение Tomcat записывать на сервер Ubuntu

Большее объяснение моей проблемы с конкретными ссылками кода можно найти здесь: Cannot Create Directory On Server. Permission Issue?

Причины я пишу новый вопрос, потому что мне интересно, если у меня возникает проблемы создания каталогов на сервере из-за разрешений.

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

Так что я пытаюсь создать папку в каталоге/home/username. Это отлично работает, когда я запускаюсь в режиме dev в моем блоке dev и в экземпляре tomcat внутри Eclipse, но не работает, когда код запускается на сервере. Может ли это быть из-за того, что в блоке dev пользователь вошел в систему, и поэтому разрешено открывать папку/home/username? На сервере пользователь фактически не вошел в систему во время работы программы ...

Есть ли конкретная папка, в которую я могу писать?

Я проверил разрешения папки, которые в настоящее время установлены на 700. Может быть, проблема? Безопасно ли установить эту папку на 666 или 777? Доступна ли эта папка, даже если пользователь не вошел в систему?

Обновление: Попытка изменить права доступа к папке 755 без везения.

ответ

6

Если вы используете упакованную версию tomcat ubuntu, это работает под другой учетной записью пользователя - скорее всего, с именем «tomcat». Двойная проверка с помощью ps aux | grep catalina - здесь будет отображаться имя пользователя, которое работает tomcat, как в первом столбце. Именно эта учетная запись пользователя должна иметь возможность создавать каталоги/файлы.

По этой причине вы, вероятно, не хотите открывать произвольные домашние каталоги для записи в мире, а скорее настраивать определенные каталоги где-то для доступа к пользователю tomcat. Установка разрешения 755 дает владельцам права на чтение/запись/выполнение, в то время как все остальные получают разрешение на чтение/выполнение. Если «tomcat» не является владельцем, он не сможет ничего создать в этих каталогах. Но не попадайте в ловушку до chmod 777 - если это не для быстрого теста.

+0

Извините, это мой первый запуск рабочего сервера, но это было потрясающее учебное задание, и я был доволен, что я немного свежий по этой теме. Итак, если я создаю каталог под названием appdata или что-то в папке home/username и 755, это не угроза безопасности? – ryandlf

+0

PS. Вы были абсолютно правы, имя пользователя - tomcat7. Я понятия не имел, что это изменило имя пользователя. Желаю, чтобы мое исключение упомянуло об этом ... – ryandlf

+0

Также, как использовать имя пользователя в команде create folder? Есть ли пароль, который мне нужно установить где-нибудь? – ryandlf

Смежные вопросы