nixp.ru v3.0

27 мая 2017,
суббота,
13:07:09 MSK

DevOps с компанией «Флант»
Аватар пользователя Master
Master написал 17 марта 2005 года в 18:57 (318 просмотров) Ведет себя неопределенно; открыл 133 темы в форуме, оставил 1230 комментариев на сайте.

На FreeBSD 5.x apach 2.5x php 4.3.10

php-функция phpinfo()

выдает очень много в разделе Environment переменных, включаяя например,

USER

FTP_PASSIVE_MODE

Как это убрать и оставить только HOME и PATH?

ЗЫ: и вообще причем тут root

(выдает USER root)

Genie

перед запуском сервиса очищать переменные окружения.

либо, смотреть, как запустить сразу с пустым окружением.

типа вот такого:

# (unset `set|sed 's/=.*//'|tr '\n' ' '` 2>/dev/null; PATH=/bin:/usr/bin:/sbin:/usr/sbin apachectl start)

конечно, можно сделать это как скрипт:

$ cat /usr/bin/service
#!/bin/sh
service=$1
action=$2
shift && shift
help()
{
        [ "$1" ] && echo "$1" && echo
        cat <<- EOF
Usage:
        service (--help|--list)
        service ServiceName Action
Where:
    ServiceName - name of service from /etc/init.d/
    Action - is one of
        start
        stop
        restart
        reload
        (...whatever else service needs)
Example:
[user@host:~]$ service iptables save active
Savinging iptables ruleset: save "active" with counters.
[user@host:~]$
EOF
        exit 0
}
list()
{
        [ "$1" ] && echo "$1" && echo
        echo "Avaible services to control:"
        find /etc/init.d -type f -perm -0100|sed 's/.*\//    /g'|grep -v '\.'|sort
        exit 0
}
[ -z "$service" ] && help ""
[ "x$service" = x--help ] && help ""
[ "x$service" = x--list ] && list ""
service="/etc/init.d/$service"
[ ! -f "$service" ] && list "ERR: Unknow service!"
exec sudo /bin/bash -c $0_run $service $action "$@"
$ cat /usr/bin/service_run
#!/bin/sh
unset `set|/bin/sed "s/=.*//g" 2>/dev/null
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
cd /tmp
(PWD=. $@)

(ну, что-то типа этого)

Genie
Master
ЗЫ: и вообще причем тут root

(выдает USER root)

запускается при запуске системы, когда uid=0.

вот и берёт USER=root

Master

Понятно.

Вроде доступность этих переменных не представляет большой угрозы для безопасности системы.

Другой вопрос. Как сделать чтобы при выполнении php-скриптов в директории одного virtual host’a в apache отключить возможность читения файлов из /etc ?

Genie
Вроде доступность этих переменных не представляет большой угрозы для безопасности системы.

не всегда.

к примеру, если ты зашёл удалённо по ssh, под своим аккаунтом, и, при помощи, скажем, sudo, поднял сервис — то в переменных окружения ооочень много лишнего.

и, кстати, тогда, когда, по запарке у тебя на это нет особого времени, поднял, что говорится, «левой пяткой правой ноги», мимоходом…

ну, проблемой может стать. :)

Другой вопрос. Как сделать чтобы при выполнении php-скриптов в директории одного virtual host’a в apache отключить возможность читения файлов из /etc ?

кажется, это в настройках php.ini скрывается. ограничение на возможность доступа к файловой системе.

хотя сходу я что-то не нахожу оного в конфиге…

Master
Genie
кажется, это в настройках php.ini скрывается. ограничение на возможность доступа к файловой системе.

хотя сходу я что-то не нахожу оного в конфиге…

Нашел, например так в конфиге apache:

php_admin_value open_basedir "/var/www"