Модераторы: xvr

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать кто сидит в системе ? 
:(
    Опции темы
admsasha
Дата 4.2.2005, 03:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



Пишу CGI программу, как вывести всех пользователей которые подключены к системе и их ip или tts. Проще говоря, мне нужен вывод команды "/usr/bin/w". smile

Код

#include <stdio.h>

main()
{
 FILE *fp;
 char line[255];
 fp = popen("/usr/bin/w", "r");
 printf("Content-type: text/html\n\n");
 while ( fgets( line, sizeof line, fp)){
   printf("%s", line);
 }
   pclose(fp);
}


Такая программа работает в консоле, но на экран нечего не выводит.
PM MAIL WWW ICQ Jabber   Вверх
Chuck
Дата 4.2.2005, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

Репутация: 2
Всего: 9



Попробуй это
Код

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
system("w");
return 0;
}

PM MAIL WWW GTalk   Вверх
admsasha
Дата 4.2.2005, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



Так мне надо все даные занести в переменную, что бы ее отпарсить и делать некоторые с ней операции. А тут как я понимаю сразу вывод, или это просто для пробы ?
права какие ставить ? 6755 или просто 755 хватит ?
ни так и ни так не работает мой код.

Ваш код попробую чуть позже.

Это сообщение отредактировал(а) admsasha - 4.2.2005, 19:52
PM MAIL WWW ICQ Jabber   Вверх
Chuck
Дата 5.2.2005, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

Репутация: 2
Всего: 9



Цитата
права какие ставить ? 6755 или просто 755 хватит ?
ни так и ни так не работает мой код.

Код

[root@chuck crawler]# ll /usr/bin/w
-rwxr-xr-x    1 root     root         8684 Авг 22  2002 /usr/bin/w*

Видишь, исполнять могут все!
Твой, код пытается открыть на чтение, значит либо своей проге делаешь chown user:root ./proga
Либо у /usr/bin/w меняешь на chmod +r /usr/bin/w
либо себя добавляешь в группу рута ...

Это сообщение отредактировал(а) Chuck - 5.2.2005, 12:45
PM MAIL WWW GTalk   Вверх
admsasha
Дата 5.2.2005, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



пробывал даже root:root. и 6755
Добавлено @ 20:42
просто белый лист выдает и всё
PM MAIL WWW ICQ Jabber   Вверх
Chuck
Дата 5.2.2005, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

Репутация: 2
Всего: 9



Код скинь уже сюда! Блин, когда народ будет задавть вопросы и прикреплять к ним код?
Я так и не просек, ты мой пример юзаешь?
PM MAIL WWW GTalk   Вверх
Chuck
Дата 5.2.2005, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

Репутация: 2
Всего: 9



Код!
Код

#include <stdio.h>

int main(int argc, char * argv[])
{
 FILE *fp;
 char line[255];
 fp = popen("/usr/bin/w", "r");
 printf("Content-type: text/html\n\n");
printf("<html><body><pre>");
 while ( fgets( line, sizeof line, fp)){
   printf("%s", line);
 }
   pclose(fp);
 printf("</pre></body></html>");
 return 0;
}


Результат в консоли!
Код

[root@chuck crawler]# ./test
Content-type: text/html

11:25pm  up  1:28,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU  WHAT
root     pts/0    anaconda.chuck.u  9:59pm  0.00s  0.26s  0.01s  ./test

Скажи, а ты уверен, что у тебя правильно сервак настроен, чтобы скрипты такого рода исполнять?
А вот работа в браузере (ох и проблем ты мне создал с этой картинкой!)

Как на этом форуме к посту изображение прикрутить?--Resize_Images_Alt_Text--
PM MAIL WWW GTalk   Вверх
admsasha
Дата 6.2.2005, 06:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



пробывал твой последний код, в консоле всё нормально выдает, а в html
только: "<html><body><pre></pre></body></html>"

Цитата
Скажи, а ты уверен, что у тебя правильно сервак настроен, чтобы скрипты такого рода исполнять?

Код на Perl делает это без проблем.

# ll proba.cgi
-rwsr-sr-x 1 root root 11946 Фев 6 12:33 proba.cgi*

PM MAIL WWW ICQ Jabber   Вверх
Chuck
Дата 6.2.2005, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

Репутация: 2
Всего: 9



Тогда с помощью Си пиши в файл и оттуда потом читай, Но я все же не въезжаю в твою проблему с сервером! У тя он как то криво настроен!
ДА, поменяй у скрипта на Си группу и юзера apache:apache и поставь 775 ...
PM MAIL WWW GTalk   Вверх
admsasha
Дата 7.2.2005, 03:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



Может есть файл в системе, где написана эта информация ?
тогда проще будет из него читать, "w" где то же смотрит это ?
PM MAIL WWW ICQ Jabber   Вверх
Chuck
Дата 7.2.2005, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

Репутация: 2
Всего: 9



Код

/usr/bin/w > /home/admsasha/w.txt

Так сделай уже, и не морочь себе голову! Надеюсь как прочесть файл из Си ты знаешь!
PM MAIL WWW GTalk   Вверх
admsasha
Дата 8.2.2005, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



# ls -l ./proba.cgi
-rwxr-xr-x 1 root root 11994 Фев 8 11:58 ./proba.cgi*

в логах /var/log/httpd/error_log
sh: line 1: /usr/bin/w: Permission denied

куда больше то права ??, и так уже root и выполняется от root, что может еще быть ?

Цитата
Но я все же не въезжаю в твою проблему с сервером! У тя он как то криво настроен!

да, может быть... но первый раз с такой проблемой сталкиваюсь, точнее не сталкивался никогда, пока на perl писал.... от туда всё читается и получается без проблем. Но надо на С.
PM MAIL WWW ICQ Jabber   Вверх
Chuck
Дата 8.2.2005, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

Репутация: 2
Всего: 9



Проблема не Сишная, но так и быть ... флейм!
Цитата
# ls -l ./proba.cgi
-rwxr-xr-x 1 root root 11994 Фев 8 11:58 ./proba.cgi*

Смотри у тя разрешено исполнять всем!
Обычно, когда браузер запускает скрипт, он запускает от имени apache и группы apache (см. httpd.conf) А этому пользователю с такой группой нет доступа до w! Вот твой Permission denied

Еще раз повторяю, перенаправь вывод в файл, а оттуда читай!
Причем можно извратиться: пропиши в /etc/sudoers - этим ты ставишь под угрозу систему ....
Код
apache   ALL=NOPASSWD: ALL

И сделай так
Код

fp = popen("sudo /usr/bin/w", "r");


Не обещаю, что получится, проверять лень (работы много)! Но примерно так у меня работает мною написанный скрипт смены пароля пользователям! Тож из под апаче вызывается рутовски доступная прога ....
PM MAIL WWW GTalk   Вверх
admsasha
Дата 8.2.2005, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



Я делал перенапровление в файл, вот именно от туда и списал "Permission denied"

+s стоит же бит suid, поидее должен запускаться, как root, разве нет ?
PM MAIL WWW ICQ Jabber   Вверх
Chuck
Дата 8.2.2005, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

Репутация: 2
Всего: 9



Удали тот файл и в Сях сделай следующее
до того как ты читаешь файл, куда была перенаправлена инфа
Код

system ( "/usr/bin/w > t.txt");

В итоге у тя создастся файл с данными от W, потому что исполнять можно любому это прогу!
А файл создастся с правами apache:apache, потому что ты запустил скрипт из браузера (апаче сервер его запустил)
PM MAIL WWW GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0576 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.