2013-07-20 7 views

Odpowiedz

5

1), zmiany uprawnień, aby umożliwić zapis do katalogu, w komunikacie o błędzie.

2) Poprzez ustawienie python.cachedir.skip = true

można przeczytać:

http://www.jython.org/jythonbook/en/1.0/ModulesPackages.html#module-search-path-compilation-and-loading

dalszych spostrzeżeń.

+0

Chciałbym przestrzec osoby używające tę odpowiedź w środowisku produkcyjnym. Nie ustawiaj uprawnień do zapisu na całym świecie, ponieważ to zachęca każdego, kto ma lokalny dostęp do małpy z pamięcią podręczną. Wygląda na potencjalny exploit! – Carl

2

Tworzenie spisów na całym świecie niewątpliwie sprawia, że ​​problem "odejdzie", jednak wprowadza ogromną lukę bezpieczeństwa. Każdy może wprowadzić kod do katalogu, który można zapisywać na świecie, który byłby uruchamiany w środowisku jpython.

Ustawienie cachingu do pominięcia prawdopodobnie spowodowałoby spadek wydajności (po co zaimplementować schemat buforowania inny niż w celu poprawy wydajności).

Zamiast Zrobiłem następujące:

I stworzył nową grupę (w moim przypadku zaćmienia, ale mogło być jpython). Dodałem użytkowników jpython do tej grupy.

$ sudo groupadd eclipse 

Następnie zmieniłem grupę folderu wtyczek zaćmień i jej potomków na "zaćmienie".

/opt/eclipse/plugins $ sudo chgrp -R eclipse * 

Potem zmienił uprawnienia grupy następująco

/opt/eclipse/plugins $ sudo chmod -R g+w * 
/opt/eclipse/plugins $ find * -type d -print | sudo xargs chmod g+s 

Ta dodatkowa grupa zapisu i ustaw S_GID trochę na wszystkich katalogów rekurencyjnie. Ten ostatni bit powoduje, że nowe katalogi mają ten sam identyfikator grupy co ich rodzic.

Ostatnim akcentem było zmienić umask dla użytkowników zaćmienie zestaw do 007.

$ sudo vi /etc/login.def 

zmian umask na 007 (z 022). umask = 007

5

Można zmienić lokalizację katalogu pamięci podręcznej do miejsca, że ​​przeczytałeś & dostęp do zapisu przez ustawienie opcji „python.cachedir” podczas uruchamiania Jython, np

jython -Dpython.cachedir=*your cachedir directory here* 

lub:

java -jar my_standalone_jython.jar -Dpython.cachedir=*your cachedir directory here* 

Możesz przeczytać o python.Opcja cachedir tutaj: http://www.jython.org/archive/21/docs/registry.html

0

Najprostszym fix znalazłem do tej pory było to zrobić:

$ sudo chmod -R 777 /opt/jython/cachedir 
Powiązane problemy