Szukam rozwiązania - zapis plików przez programistę w systemie bez chrootowania |
Szukam rozwiązania - zapis plików przez programistę w systemie bez chrootowania |
30.06.2011, 05:54:09
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 12.10.2010 Ostrzeżenie: (0%) |
Witam
mam serwer dedykowany, na którym firewall udostępnia jedynie port 80 i port dla ssh (niestandardowy). Poprosiłem kolegę o napisanie kilku skryptów JS. Koledze będzie łatwiej, jeśli będzie miał możliwość zapisu plików na dysku - będzie mógł na bieżąco testować. Nie chcę jednak dawać mu wglądu w pliki w systemie. Ponieważ nie mam żadnego rozwiązania, które ograniczałoby dostęp usera do jakiegoś konkretnego katalogu (to się chyba nazywa chrootowanie, tak?), nie mam sposobu na umożliwienie mu zapisu plików na dysku w taki sposób, żeby dla niego było to skuteczne, a dla mnie bezpieczne. Szukałem jakiegoś edytora on-line, który mógłbym zainstalować na serwerze i tak skonfigurować, żeby kolega mógł nim edytować tylko określone pliki - ale nie znalazłem niczego, co byłbym w stanie zainstalować :/ On zaproponował umieszczenie na serwerze pliku php o takiej treści:
No i niby mógłbym tak zadeklarować _fileSave(), żeby przyjmowało tylko określone pliki (np. z rozszrzeniem js). Wtedy miałbym pewność, że nie prześle pliku PHP, który "podejrzy" drzewo katalogów i treść innych plików, niż te, które chciałbym, żeby kolega widział. Mimo to zastanawiam się, czy mając możliwość zapisywania na serwerze plików z rozszerzeniem *.user.js jest szansa na uzyskanie treści plików zapisanych na tym serwerze. Pytania moje do Was: 1. czy możliwość zapisywania na serwerze plików *.user.js mocno ryzykuję? jest to duże zagrożenie? 2. czy znacie jakiś prosty (znaczy - do wykonania przez kogoś, kto nie jest wybitnym specem od PHP i administracji serwerami) sposób na to, żeby umożliwić komuś zapis do konkretnych plików na serwerze? dodam może jeszcze, że serwer nie uruchomi plików *.js jako plików PHP, a w katalogu, którego dotyczy problem zainstalowany jest drupal plik htaccess wygląda tak (jeśli ma to jakieś znaczenie):
|
|
|
30.06.2011, 09:31:43
Post
#2
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 18 Dołączył: 4.09.2010 Skąd: warszawa Ostrzeżenie: (0%) |
rozwiązania od d... strony.
jak już jest was dwóch, to subversion albo git, gdzie możesz określać do jakich zasobów i jakie uprawnienia nadajesz. a jak będzie potrzeba, to export gałęzi rozwojowej na developerskiego virtualhosta (z crona albo z on request, jak tam wygodniej) |
|
|
30.06.2011, 10:18:39
Post
#3
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 32 Dołączył: 9.09.2010 Skąd: Brzeg Ostrzeżenie: (0%) |
Możesz użyć subversion. Masz dostęp do Direct Admina czy coś podobnego? Tam w dodawaniu konta FTP jest funkcja, która zezwala użytkownikowi na dostęp tylko do wybranego katalogu.
|
|
|
2.07.2011, 23:31:13
Post
#4
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 12.10.2010 Ostrzeżenie: (0%) |
no wiem, wiem, od d.... strony
praktycznie - tylko do kilku plików i tylko teraz jest "problem" z dostępem do dysku, jak kolo skończy tworzyć pliki (za kilka dni), to problemu nie będzie nie chcę instalować systemu kontroli wersji, bo nie mam zielonego pojęcia o konfiguracji takiego systemu i szkoda mi trochę czasu na naukę obsługi i konfiguracji (nie zajmuję się zawodowo "developerką" ani nawet zarządzaniem projektami) rozwiązałem sprawę w ten sposób, że: - do każdego przesyłanego przez kolegę pliku dodawane jest rozszerzenie .js, więc on musi przesyłać pliki bez rozszerzenia; musiałem to zrobić, bo używam drupala i pozwolenie na przesyłanie plików PHP to już byłoby za dużo (może przecież się "podłączyć" do silnika drupala) - każdy przesyłany plik jest najpierw wysyłany mailem do mnie, potem zapisywany na dysk (ale mam świadomość, że to też pół środek, bo zanim odczytam maila on może plikiem js odczytać zawartość jakiegoś katalogu, albo próbować edytować plik PHP obsługujący wysyłkę plików) |
|
|
2.07.2011, 23:44:37
Post
#5
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 29 Dołączył: 13.12.2010 Skąd: Warszawa Ostrzeżenie: (0%) |
1) Dodanie usera z katalogiem domowym w miejscu, gdzie maja byc wrzucane pliki:
Cytat useradd -d /sciezka/do/katalogu testuser 2) Ustawienie mu hasła Cytat passwd testuser 3) Instalacja ProFTPd, przykład dla Debiana: Cytat apt-get install proftpd 4) Ustawienie dyrektywy DocumentRoot w configu w /etc/proftpd: Cytat DefaultRoot ~ 5) Podanie userowi IP serwera, nazwy uzytkownika i ustawionego hasla. 5 prostych kroków i dostęp dla usera tylko do wybranego katalogu gotowy. Ewentualne nieprzyjemności związane z prawami odczytu/zapisu dla serwera WWW i chmody pominąłem. -------------------- "Aby zrozumieć rekurencję, musisz najpierw zrozumieć rekurencję."
|
|
|
Wersja Lo-Fi | Aktualny czas: 20.04.2024 - 04:08 |