Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: tomcat6 + проект на java + bash скрипт  (Прочитано 1440 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ii343hbka

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1048
    • Просмотр профиля
tomcat6 + проект на java + bash скрипт
« : 17 Мая 2011, 16:41:39 »
Может немного ошибся разделом, но мне кажется это ближе к программированию, нежели к администрированию.
Так вот.
Такая проблема.
Есть тачка с линуксом, на ней томкат, проект на яве и скрипт на баше.
Проект - некая система контоля успеваемости студентов.
Как часть проекта - выделение студентам своей БД в mysql, фтп папка, etc.
Фтп на базе vsftpd и авторизацией через mysql сервер.

Проблема в следующем:
есть скрипт, который добавляет имя пользователя и пасс в базу фтп, создает для него папку и отдельный файл конфигурации с указанимем разрешенных действий с фтп и путем к домашней папке. Скрипт написан на баше и естественно должен выполняться от рута, так как есть chown и chmod. Для этого пользователю tomcat6 в sudoers разрешено выполнять скрипт,/bin/chmod,/bin/chown,/usr/bin/tee от рута и без паса, а в скрите эти команды выглядят типа: /bin/chown vsftpd:nogroup /home/ftp/...
и если выполнять из консоли типа: sudo -u tomcat /bin/bash -c '/etc/vsftpd.conf.d/add_user.sh username pass', то скрипт отрабатывает на ура и пароль не спрашивает, но если вызывать в java через Runtime.GetRuntime().exec("/bin/bash -c '...'");(имхо так, уже точно не помню), то ничего не отрабатывает, хотя ошибки никакой не возникает.

Так вот вопрос: где может быть подвох?
Есть подозрение, что скрипт вызывается не от имени tomcat6, а ява-машиной. И если так, то как быть?
Конечно, создать папку, файл, запись в БД можно и в яве, но вот chown и chmod там нету.
Вот думаю на счет питона.
ж)
ммм... Убунточка

andrey_p

  • Гость
Re: tomcat6 + проект на java + bash скрипт
« Ответ #1 : 17 Мая 2011, 17:04:20 »
Хм...

А почему не сделать add_user.ch исполняемым (с первой строчкой !/bin/bash) и не запускать напрямую? А в Java попробовать
Runtime.GetRuntime().exec("sudo -u add_user.sh username pass"). Может сработает?

А мысли насчет Питона - это правильные мысли. :)

Оффлайн ii343hbka

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1048
    • Просмотр профиля
Re: tomcat6 + проект на java + bash скрипт
« Ответ #2 : 17 Мая 2011, 23:31:13 »
Вы написали в точности, как оно есть.
Скрипт исполняемый, права на него 755, tomcat6 его может исполнять, но не исполняет(
ж)
ммм... Убунточка

 

Страница сгенерирована за 0.071 секунд. Запросов: 25.