The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
запуск пользователем только одной программы, !*! Mishunja, 09-Июл-08, 16:54  [смотреть все]
Есть такая задача - пользователь test при удаленном входе в систему должен иметь право только на запуск одной программы-клиента: app.jnlp. Ничего другого пользователь на этой машине делать не должен (ну может только зайти по ftp в домашний каталог).В качестве ОС используется fedora 8.
Приложение запускается с помощью javaws и работает по сети с сервером.
Пользователь будет заходить на машину либо по ssh с редиректом X дисплея, либо с помощью nx-клиента.

Сделал так: прописал shell для пользователя test в /etc/passwd:
test:x:505:505::/home/test:/usr/share/app/app.sh

в app.sh прописал:
#!/bin/sh
/usr/bin/javaws /usr/share/app/app.jnlp

Но столкнулся с такой проблемой, что при коннекте по ssh сеанс сразу разрывается. Это происходит, вероятно, потому, что при запуске приложение, запускает дочерний процесс, который уже прорисовывает окошки, а первоначальный процесс при этом закрывается. С закрытием основного процесса закрывается и сессия. Эта догадка потверждается, если сделать локальный вход. Gnome выдает окно, что сеанс  длился меньше десяти секунд, нажмите ОК. При этом через некоторое время появляется окно проги.

Подскажите, как это обойти, или как правильно настроить то что мне нужно?

PS: чтобы смоделировать у себя такую проблему можно в app.sh написать:
#!/bin/sh
/usr/bin/gimp&

и попробовать залогинится... Не получилось? У меня тоже :)

  • запуск пользователем только одной программы, !*! angra, 05:19 , 10-Июл-08 (1)
    >PS: чтобы смоделировать у себя такую проблему можно в app.sh написать:
    >#!/bin/sh
    >/usr/bin/gimp&
    >
    >и попробовать залогинится... Не получилось? У меня тоже :)

    Ну зачем сразу с gimp, тяжеловат для тестов да и нет его у меня :)
    Попробовал прописать usr/bin/xclock в качестве shell в /etc/passwd. Работает. Ради интереса сделал через шелловую обертку, как делаете вы, и тоже работает. Проверяйте на разрешенность xforward с обоих сторон.

    • запуск пользователем только одной программы, !*! Mishunja, 10:33 , 10-Июл-08 (2)
      >
      >Ну зачем сразу с gimp?

      это второе что в голову пришло после firefox :)

      >Попробовал прописать usr/bin/xclock в качестве shell в /etc/passwd. Работает. Ради интереса сделал
      >через шелловую обертку, как делаете вы, и тоже работает. Проверяйте на
      >разрешенность xforward с обоих сторон.

      В качестве shell не показательно. Хитрость именно через "обертку", причем с указанием амперсанда в конце /usr/bin/xclock&. Так не пробовали?

      А xforward разрешен: Под другими пользователями спокойно запускают gnome и kde. Shell "обертку" использую потому, что проблемную прогу приходится запускать так: /usr/bin/javaws /usr/share/app/app.jnlp. А такую команду указать в качетве shell не получается :(

      • запуск пользователем только одной программы, !*! angra, 10:47 , 11-Июл-08 (3)
        >амперсанда в конце /usr/bin/xclock&. Так не пробовали?

        Нет, а зачем если и без него работает :)
        Проблема скорее специфическая для вашей команды, так как с простейшими приложениями типа xclock проблем не возникает. Я бы попробовал сделать перловую или сишную обертку с system(запуск дочернего, fork+exec+wait) и exec(замещение текущего), что-то из них может сработать.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру