LINUX.ORG.RU

[php]system()

 


0

1

выдает ответ в 1 строку, например

system('ls -la /etc |grep gr');

-rw-r--r-- 1 root root 531 Mar 14 16:30 group -rw------- 1 root root 513 Mar 14 16:30 group- -rw-r--r-- 1 root root 599 Mar 7 2010 logrotate.conf drwxr-xr-x 2 root root 4096 Mar 14 16:30 logrotate.d 

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

Deleted

вызывать из system() python, вестимо.

anonymous
()
Ответ на: комментарий от anonymous

спасибо, я как всегда о самом простом пути забыл.

Deleted
()
Ответ на: комментарий от Deleted

> там весь вывод в 1 строку без символов конца строки.

Как такое может быть, если работает <pre>?

VirRaa ★★★
()

Где ты вообще нашел упоротый хостинг, на котором тебе команды разрешат из пхп выполнять? :)

pekmop1024 ★★★★★
()
Ответ на: комментарий от pekmop1024

свои сервера

только не спрашивай, зачем мне понадобилось такое извращение, не скажу =)

да, я знаю что это криво и неправильно.

Deleted
()
Ответ на: комментарий от Deleted

> да, я знаю что это криво и неправильно.

Это не криво и неправильно, это лютый северный пушной зверек.
Если сервер похачат, то смогут сделать rm -rf /*, или если просто доступ не только тебя будет, тоже смогут.

pekmop1024 ★★★★★
()
Ответ на: комментарий от Deleted

Да откуда я знаю, что там у тебя на серверах. Если похачат через пхп, то что угодно сделать смогут при определенных обстоятельствах.

pekmop1024 ★★★★★
()

Что, неужто залил шелл на сервер бразильской школы и балуешься? Делом займись лучше.

mclaudt
()
Ответ на: комментарий от pekmop1024

у тебя никто акк от лора не украл? :)

по сабжу, еще раз, с безопасностью все нормально

доступ к апачу только с моего ip и он на нестандартном порту

разве что жена меня взломает

Deleted
()
Ответ на: комментарий от boombick

> У апача рутовые права????? оО А пацаны-то и не знают

Родительский процесс у него много где от рута пускается. Я для тебя Америку открыл? :)

pekmop1024 ★★★★★
()
Ответ на: комментарий от mclaudt

не

боюсь тебя разочаровать, но system() я например использую в своих целях, вполне легальных, по крайне мере скрипты работают на моих серверах

да, это криво, это неправильно, это ОЧЕНЬ небезопасно, однако я свою задачу решил за минуты и повторюсь, безопасность меня не волнует, ибо доступ туда никто кроме меня не имеет и иметь не будет.

Deleted
()
Ответ на: комментарий от Deleted

> разве что жена меня взломает

Ну разве что так :)

pekmop1024 ★★★★★
()
Ответ на: комментарий от Deleted

Это на правильно настроенных серверах, да. В большинстве дефолтных случаев же о безопасности можно даже не заикаться

pekmop1024 ★★★★★
()

я кстати когда задавал этот вопрос, изначально знал чем все закончится, но ответ пришел неожиданно быстро

кстати тред давно уже солвед

Deleted
()
Ответ на: комментарий от pekmop1024

Не, не открыл :) Но вот только не все, что с рутовыми правами запускается, с ними же и работает :) Учите матчасть

boombick ★★★★★
()
Ответ на: комментарий от pekmop1024

> Если сервер похачат, то смогут сделать rm -rf /*

Апач от рута?

geekless ★★
()
Ответ на: комментарий от pekmop1024

а еще есть мнение что под чрутом запускать безопасно. лично я этим не заморачиваюсь, у меня оно запущено просто от имени nobody:nogroup :3

anonymous
()

Чо только люди не придумают, лишь бы веб-сервер в контейнере не пускать. В нормальных системах этих средств контейниризации - выбирай-не-хочу.

anonymous
()
Ответ на: комментарий от boombick

> Не пролезет. Рекомендую попробовать, прежде чем чушь нести

бесполезно спорить с «УМВР, ЧЯДНТ» пятизвездочного человека, не ходившего дальше пары привычных selinux'овых дистров :)

pekmop1024 ★★★★★
()
Ответ на: комментарий от pekmop1024

Блин, и вправду упоротый админ локалхоста :)))) Если у тебя апач имеет рутовые привелегии, то ты ССЗБ

root@boombick-laptop:~# ps aux | grep apache
root      2848  1.7  0.8  59040 24324 ?        Ss   14:27   0:00 /usr/sbin/apache2 -k start
www-data  2850  0.0  0.0  31472  2452 ?        S    14:27   0:00 /usr/sbin/apache2 -k start
www-data  2852  0.0  0.1  59040  5484 ?        S    14:27   0:00 /usr/sbin/apache2 -k start
www-data  2853  0.0  0.1  59040  5484 ?        S    14:27   0:00 /usr/sbin/apache2 -k start
www-data  2854  0.0  0.1  59040  5484 ?        S    14:27   0:00 /usr/sbin/apache2 -k start
www-data  2855  0.0  0.1  59040  5484 ?        S    14:27   0:00 /usr/sbin/apache2 -k start
www-data  2856  0.0  0.1  59040  5484 ?        S    14:27   0:00 /usr/sbin/apache2 -k start
root      2858  0.0  0.0   3344   820 pts/0    S+   14:27   0:00 grep --color=auto apache
root@boombick-laptop:~# su www-data
$ killall -9 apache2
apache2(2848): Операция не позволяется
$ id
uid=33(www-data) gid=33(www-data) группы=33(www-data)
$ 

Ты бы хоть теорию почитал чтоль, перед тем, как на весь ЛОР позориться ) Если б апач имел рутовые привелегии, то любой залитый шелл в любой дырявый движок (коих тысячи!!) сразу бы клал на лопатки хостинг-сервер. И да, у меня, как правило, все работает.

boombick ★★★★★
()
Ответ на: комментарий от pekmop1024

> httpd.itk.

Процесс при запросе свитчится на юзера, указанного в конфиге виртуалхоста.

Whenever a request is served by a child process, the child process determines what user credentials are needed for a particular VirtualHost (based on your config file, of course), then the child process sets effective user ID and group ID on itself to these credentials, completes the request and sets them back.


Поймешь или перевести? Если ты полный идиот (а у меня уже нет в этом сомнений) и оставляешь такой софт работать с рутовыми правами, то не хакнуть тебя - просто преступление против совести. Все равно, что ты рута по ssh будешь без пароля пускать и потом всем кричать, что sshd дырявый и юзать его не надо. Опять-таки - itk это решение, скорей, для shared hosting, коий нормальные люди уже давно не пользуют.

boombick ★★★★★
()
Ответ на: комментарий от boombick

Хорош метанировать, давай

ps aux | grep apache
для httpd.itk. Мы все с нетерпением ждем упадка твоего ЧСВ ниже плинтуса после такого слива.

pekmop1024 ★★★★★
()
Ответ на: комментарий от pekmop1024

Объясню для нубов: чайлды httpd.itk тоже живут под рутом, именно чтобы «child process sets effective user ID and group ID on itself to these credentials, completes the request and sets them back».

pekmop1024 ★★★★★
()
Ответ на: комментарий от pekmop1024

Бля, дай мне свой айпишник и пароль от рута и наблюдай как ты теряешь контроль над сервером. Еще раз для упоротых: я в курсе, что чайлды itk работают под рутом, но при каждом реквесте они свитчатся на юзера. который указан в конфиге виртуалхоста. Пхп начинает работать как бэ после реквеста, который принял апач и который запустил интерпретатор уже под юзером, указанном в конфиге.

[code]
[root@centos-host22-1 html]# pwd
/var/www/html
[root@centos-host22-1 html]# ls
test.php
[root@centos-host22-1 html]# cat test.php
<?php


system('/usr/bin/id');

?>
[root@centos-host22-1 html]# ps aux | grep httpd
root 2761 0.0 2.3 16832 5944 ? Ss 15:28 0:00 /usr/sbin/httpd.itk
root 2763 0.0 1.1 16832 2952 ? S 15:28 0:00 /usr/sbin/httpd.itk
root 2764 0.0 1.1 16832 2952 ? S 15:28 0:00 /usr/sbin/httpd.itk
root 2765 0.0 1.1 16832 2952 ? S 15:28 0:00 /usr/sbin/httpd.itk
root 2766 0.0 1.1 16832 2932 ? S 15:28 0:00 /usr/sbin/httpd.itk
root 2767 0.0 1.1 16832 2932 ? S 15:28 0:00 /usr/sbin/httpd.itk
root 2768 0.0 1.1 16832 2932 ? S 15:28 0:00 /usr/sbin/httpd.itk
root 2769 0.0 1.1 16832 2932 ? S 15:28 0:00 /usr/sbin/httpd.itk
root 2770 0.0 1.1 16832 2932 ? S 15:28 0:00 /usr/sbin/httpd.itk
root 2796 0.0 0.2 3948 752 pts/0 R+ 15:31 0:00 grep httpd
[root@centos_host22-1 html]# wget -q -O - http://localhost/test.php
uid=48(apache) gid=48(apache) groups=48(apache)
[root@centos_host22-1 html]#
[/code]
Специально для тебя не поленился и поставил этот несчастный itk на тестовую площадку. Как ты получишь рута здесь через system()? Расскажи, мы все с удовольствием послушаем

boombick ★★★★★
()
Ответ на: комментарий от boombick

Ах да, специально для нубов.

Родительский процесс апача тоже рутовый, как ты можешь увидеть в выхлопе, который я приводил выше. Однако все его потомки работают уже от www-data. itk дает возможность прицепить любой виртуалхост к любому юзеру и именно для этого и чайлды его тоже рутовые. Но реквест обрабатывается уже под тем юзером, который указан в конфиге и имеет все привелегии, доступные этому юзеру. Более того, если юзер таки в конфиге не прописан (как и было в моем последнем примере), то процесс все равно свитчится на юзера apache. Ну не обрабатывает апач кдиентов с рутовыми правами, хоть голову себе разбей об кейборду. А если ты таки заставишь его это сделать, то это уже будет напоминать те идеальные условия, которые необходимы для запуска вирусов в линуксе.

boombick ★★★★★
()
Ответ на: комментарий от boombick

> Как ты получишь рута здесь через system()? Расскажи, мы все с удовольствием послушаем

Никак не получу. Но ты тут с пеной у рта доказывал, что нигде апач под рутом не работает - а я тебе показываю обратное. Для чего, зачем и как - уже другой момент, но апач работает под рутом. И в случае httpd.itk это его штатный режим, единственно возможный.

pekmop1024 ★★★★★
()
Ответ на: комментарий от boombick

Более того, в ОП-посте про itk нет ни слова, однако мой неуважаемый оппонент зачем-то приплел его сюда и начал активно рассказывать про принципы его работы. Однако тоже облажался.

Быть может ты еще и nginx вспомнишь, и расскажешь всем, что вот мастер-процесс у него от рута, а вот чайлды - уже не рутовые. Однако это все дырища и можно добраться до мастера и через него запустить rm -Rf /*

boombick ★★★★★
()
Ответ на: комментарий от pekmop1024

Твои слова чуть выше по тексту:

При хреново настроенном сервере права у пыха те же, что и у апача, а у него они обычно рутовые.


Я тебе убедительно доказал, что у пыха при запуске его от веб-сервера рутовых прав нет и быть не может.

boombick ★★★★★
()
Ответ на: комментарий от boombick

Повторюсь: бесполезно спорить с «УМВР, ЧЯДНТ» пятизвездочного человека, не ходившего дальше пары привычных selinux'овых дистров.
ЧСВ зашкаливает. Выпей корвалольчику.

pekmop1024 ★★★★★
()
Ответ на: комментарий от pekmop1024

Более того, itk сюда ты притянул за уши, про него вообще никто не говорил.

boombick ★★★★★
()
Ответ на: комментарий от pekmop1024

Ты реально чтоли упоротый? Я тебе привел твою цитату, доказал, что ты неправ, а ты мне чешешь про корвалольчик? :) Или ты мне расскажешь, что ты и этого не говорил? Ответь, зачем ты приплел itk в тред и отчего ты решил, что у пыха будут рутовые права, с помощью которых можно нагнуть сервак?

boombick ★★★★★
()
Ответ на: комментарий от anonymous

а причем тут контейнеры вообще?

Deleted
()
Ответ на: комментарий от pekmop1024

> Где ты вообще нашел упоротый хостинг, на котором тебе команды разрешат из пхп выполнять? :)

а чо делать, если веб-интерфейс должен управлять серверами? ;)

stevejobs ★★★★☆
()
Ответ на: комментарий от boombick

забей на itk :) Конпеляем PHP, смотрим какие тесты у него отвалились с ошибкой. Идем на сервак и ищем скрипты, которые валятся с этой ошибкой. Много думаем ;)

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

> а чо делать, если веб-интерфейс должен управлять серверами? ;)

такое традиционно пишется либо в клиент-серверной архитектуре (демон на сях/пистоне/брейнфаке/etc + морда на пыхе), либо вообще сразу на перле или пистоне.

pekmop1024 ★★★★★
()

а все началось с закрытого веб сервера на пару клиентов.

Но нет, шило в попе зудит и нужно обязательно возваять костыли там, где и без них хорошо живется.

пекмок и бумбик и прочие - зачем усугублять?

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.