Форум сайта python.su
0
собсно сабж
необходимо скриптом прочитать файл (работает)
внести изменения(работает)
и сохранить(не хватает прав)
как тут можно вьікрутиться?
раздать на директорию/файл “777” не прокатит.
Отредактировано wired (Март 27, 2015 11:52:31)
Офлайн
103
chown
Офлайн
0
єто не совсем то.
cgi скрипт запускается от nobody
т.е. может только читать, что есть, или создавать свое.
пока копаю в сторону sudo
например:
сохраняю исправления во временном файле
потом под sudo запускаю вьіполение на bash скрипта копирования временного файла куда надо.
но как-то єто грубо
Офлайн
857
Опиши сервер, права на файлах, права на директориях, какой файл сохраняется.
wirednobody попадает только под other. Так что либо там не nobody, либо там всё для всех открыто.
cgi скрипт запускается от nobody
Отредактировано py.user.next (Март 28, 2015 00:29:25)
Офлайн
0
Сервер простейший:
# -*- coding: utf-8 -*- from CGIHTTPServer import CGIHTTPRequestHandler from BaseHTTPServer import HTTPServer server_address = ("", 8000) server = HTTPServer(server_address, CGIHTTPRequestHandler) print "started httpserver..." server.serve_forever()
Офлайн
857
wiredНу, там это встроенное поведение, которое не меняется. Этот сервер не следует использовать, так как он вообще не защищён.
скрипт из оттуда запускается под nobody как и описано в документации
"""HTTP server classes.
Note: BaseHTTPRequestHandler doesn't implement any HTTP request; see
SimpleHTTPRequestHandler for simple implementations of GET, HEAD and POST,
and CGIHTTPRequestHandler for CGI scripts.
It does, however, optionally implement HTTP/1.1 persistent connections,
as of version 0.3.
Notes on CGIHTTPRequestHandler
------------------------------
This class implements GET and POST requests to cgi-bin scripts.
If the os.fork() function is not present (e.g. on Windows),
subprocess.Popen() is used as a fallback, with slightly altered semantics.
In all cases, the implementation is intentionally naive -- all
requests are executed synchronously.
SECURITY WARNING: DON'T USE THIS CODE UNLESS YOU ARE INSIDE A FIREWALL
-- it may execute arbitrary Python code or external programs.
Note that status code 200 is sent prior to execution of a CGI script, so
scripts cannot send other status codes such as 302 (redirect).
XXX To do:
- log requests even later (to capture byte count)
- log user-agent header and other interesting goodies
- send error log to separate file
"""
Отредактировано py.user.next (Март 30, 2015 10:48:49)
Офлайн
0
py.user.nextта то понятно, но поднимать что-то серьезное на той плате, где и так ресурсов не очень, не хотелось.
Этот сервер не следует использовать, так как он вообще не защищён.
Офлайн