URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 6755
[ Назад ]

Исходное сообщение
"rsh и Apache"

Отправлено PVE , 03-Мрт-10 18:36 
Есть код:
<?php
system("rsh billing utm5_urfaclient -a edit_account -account_id 826 -credit 250", $arr);
echo $arr;
?>
В результате на странице выводится только число 1. Как я понял произошла ошибка и данныя команда не отработала. Апачь запускается под пользователем www, у этого пользователя есть домашняя директория /var/www, шел /sbin/nologin.
Данные:
Машина хостинга
ОС - CentOS
/var/www/.rhosts
-------------------------
127.0.0.1
xxx.x.xxx.x
billing.xxxx.ru
-------------------------
/etc/hosts
-------------------------
127.0.0.1               srv001.prov.ru srv001 localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
xxx.x.xxx.x     billing billing.xxxx.ru
-------------------------
/etc/sudores
-------------------------
www     ALL=(ALL)       NOPASSWD: SETENV: ALL
-------------------------
/etc/pam.d/rsh
-------------------------
auth            required        pam_rhosts.so           no_warn
account         required        pam_nologin.so
account         required        pam_unix.so
session         required        pam_permit.so
password        required        pam_deny.so
-------------------------
/etc/hosts.allow
-------------------------
127.0.0.1
xxx.x.xxx.x
-------------------------

На удаленной машине billing
/etc/hosts
-------------------------
xxx.xxx.x.xx            xxxx.ru - IP - адрес хостинга
-------------------------
/etc/hosts.allow
-------------------------
ALL : ALL : allow
-------------------------
/etc/hosts.qvuiv
-------------------------
xxx.xxx.x.xxx - IP адрес хостинга
xxxx.ru - домен хостинга
-------------------------
Если в шеле запускать данную команду не из под root то выводится вот это:
[pve@srv001 _engine]$ php ./inf.php
rcmd: socket: Permission denied
1 - вот и эта еденичка
А если из под root, то все выполняется нормально.
если через sudo или указывать полный путь до команд все тоже самое.
Не подскажете в чем может быть проблемма? Как права сделать на конкретного пользователя?


Содержание

Сообщения в этом обсуждении
"rsh и Apache"
Отправлено ACCA , 04-Мрт-10 09:06 
>Не подскажете в чем может быть проблемма? Как права сделать на конкретного
>пользователя?

Слава богу, дефолтную конфигурацию rsh сделали нерабочей и настроить его не так просто.

Замени
<?php
system("rsh billing utm5_urfaclient -a edit_account -account_id 826 -credit 250", $arr);
echo $arr;
?>

на

<?php
system("ssh billing utm5_urfaclient -a edit_account -account_id 826 -credit 250", $arr);
echo $arr;
?>

Сгенери ключи для юзера www на web-сервере, скопируй публичный ключ нужному юзеру в ~/.ssh/authorized_keys на billing. man ssh курить до просветления.

Если /sbin/nologin стоит для юзера www на billing, ты не зайдёшь туда ни rsh, ни ssh.


"rsh и Apache"
Отправлено PVE , 04-Мрт-10 09:48 
>Сгенери ключи для юзера www на web-сервере, скопируй публичный ключ нужному юзеру
>в ~/.ssh/authorized_keys на billing. man ssh курить до просветления.
>
>Если /sbin/nologin стоит для юзера www на billing, ты не зайдёшь туда
>ни rsh, ни ssh.

Очень заманчивая идея, на машине billing для пользователя www стоят параметры:
www:*:80:80::0:0:World Wide Web Owner:/nonexistent:/bin/sh
На машине хостинга:
www:x:48:48:Apache:/var/www:/sbin/nologin

На хостинге домашняя дериктория для пользователя www есть, а на billing нет, куда сделаные ключи нужно залить на billing и как сделать ключь специально для пользователя www, ведь когда я делаю команду ssh-keygen, то она вроде делает ключ для root или я не прав?
Извините за делетантство! =)))


"rsh и Apache"
Отправлено ACCA , 08-Мрт-10 18:32 
>www:*:80:80::0:0:World Wide Web Owner:/nonexistent:/bin/sh
>На машине хостинга:
>www:x:48:48:Apache:/var/www:/sbin/nologin
>
>На хостинге домашняя дериктория для пользователя www есть, а на billing нет,
>куда сделаные ключи нужно залить на billing и как сделать ключь
>специально для пользователя www, ведь когда я делаю команду ssh-keygen, то
>она вроде делает ключ для root или я не прав?

Прав, поэтому нужно сделать домашний каталог пользователю www и дать права на него. ssh-keygen обязателен только на хостинге. Чтобы запустить ssh-keygen от www, сделай либо sudo -u www ssh-keygen, либо su -c ssh-keygen www