После обновленной информации Вы должны сделать, чтобы они сделали частных/с открытым ключом пар и в .ssh/authorized_keys
файл установил его, чтобы только выполнить script.php файл. Вы не должны полагаться .bashrc
для защиты, тем более, что это необходимо для инициализации среды.
Можно изменить оболочку для рассматриваемого пользователя к тому, в чем Вы любите в последнем поле на соответствующей строке /etc/passwd
, например:
specialuser:x:12345:123::/home/specialuser:/usr/bin/restricted_script.php
если Вы включаете соответствующий удар хеша (например. #!/usr/bin/php
на первой строке сценария), это должно работать правильно далеко. Из соображений безопасности я рекомендовал бы не поместить сценарий в каталог, записываемый пользователем.
/etc/shells
(через его полный путь). Что говорит ssh, пытаетесь ли Вы войти в verbosely? (Кроме того, я сделал это в прошлом путем определения сценария в .ssh/authorized_keys
, поскольку @sparticvs говорит в другом ответе, а не в /etc/passwd
. Я ожидаю, что необходимо смочь заставить последний метод работать также, все же.)
– dubiousjim
07.11.2012, 00:24
Самый простой путь состоял бы в том, чтобы поместить sth как это в .bashrc
php script.php
exit
После того, как выполнение оболочки script.php выйдет из сессии.
Но трудно сказать, что точно необходимо сделать и как уровень безопасности Вам нужно.
exec php script.php
в Вашем .bashrc
. Затем bash
процесс будет заменен полностью, вместо того, чтобы сидеть без дела, поднимая ресурсы, в то время как сценарий PHP работает.
– Jim Paris
06.11.2012, 22:55
sigint
, т.е. trap "exit" 2 php script.php exit
... иначе ^C отложил бы меня в ударе (и очевидно я не могу обработать сигнал в сценарии для выхода из чего-то вне его объема). Нет такой проблемы с кодом @JimParis так, чтобы был бы лучший выбор, также рассмотрев упомянутое использование ресурсов.
– alkor
07.11.2012, 00:10
^D
(EOF). Sigint
прерывает цепочку обработки полностью, однако, таким образом, выход никогда не называют.
– alkor
07.11.2012, 15:05
authorized_keys
мог бы начаться как этоcommand="/usr/bin/php /some/path/script.php --user someone" ssh-rsa AAAAB3NzaC...
– alkor 07.11.2012, 00:54