2017-08-29 9 views
0

私はいくつかの異なるユーザーによって実行されるPythonスクリプトをたくさん持っています。スクリプトはWindowsサーバー環境に置かれます。Windowsサーバー上のPythonスクリプトを保護する

私が達成したいのは、これらのスクリプトを標準ユーザーが実行できるように保護することですが、そのスクリプトの読み取り/変更/移動の権限はありません。

これも可能ですか、もしそうなら、最適な戦略は何ですか?

ありがとうございます。

答えて

0

あなたはそれを配布することを考えることができます - それを実行可能なバイナリファイルに変換します。 PyInstallerを使用して実行可能ファイルを作成するのは簡単です。これはPyPi経由でインストールできます。 pyInstallerの程度

pip install pyinstaller

一つの良いところは、あなたがあなたの実行可能配分を行うために、Windowsのバッチスクリプトを書くことができるということです。

例:

@echo off 
mkdir dist 
mkdir dist/build 

pyinstaller^
--onefile^
--windowed^
--workpath=dist\build^
--distpath=dist^
--icon="gui\icon.ico"^
--name="The_Greatest_Prog"^
the_greatest_script.py 

rmdir /S /Q dist\build 

cd dist 
The_Greatest_Prog 
PAUSE 

ここで何が起こるのpyInstallerのは、GUIを表示し、指定されたアイコンを持っています1つの実行可能ファイルにあなたのPythonスクリプトに変換ということです。引数--onefile--windowedが残っていると、DLLのようなファイルと実行可能なファイルがコンソールに表示されます。 documentation、特にsection about usageを読んでください。

このバッチスクリプトはPythonスクリプトのフォルダ内にある必要があり、実行するだけで結果は "dist"というサブフォルダ内の "The_Greatest_Prog.exe"というファイルになります。この実行可能ファイルは、コードを壊さずに友人に与えることができます。

[EDIT]

ます。また、標準パッケージpy_compileを使用することができます。出力は拡張子 ".pyc"のファイルになります。作業ディレクトリがあなたのsciptのパスに設定されていることを確認し、このコンパイラをPythonコンソールから呼び出します。

>>> import py_compile 
>>> py_compile.compile("the_greatest_script.py") 

その後、あなたは他のPythonスクリプトで配布してインポートすることができ、あなたのフォルダにファイル「the_greatest_script.pyc」を参照してくださいます。

+0

これは有望だが、このアプローチについて読んだ後、pyinstallerによって生成された.exeファイルは比較的簡単にPythonコードに戻っているようだ。これは正しいのではないですか? – user3170354

+0

exeについては分かりませんが、pycファイルは簡単にpyに逆コンパイルできます –

+0

実行ファイルからPythonへの復帰についてはどこでお読みになりましたか? PyInstallerのドキュメントでは、SHAなどを使用する[PyCrypto](https://pypi.python.org/pypi/pycrypto)で実行ファイルを暗号化することもできます。 –

0

読み込み不可能で実行可能にする方法はありません。

1

CythonでPythonモジュールをネイティブライブラリにコンパイルし、コンパイル済みのファイルのみを提供できます。それは多くの面倒を含み、場合によっては機能しません。それらはまだCコードに逆コンパイルできますが、ほとんど読むことができません。

長所:1.コンパイルされたライブラリは、通常のPythonモジュールとしてインポートできます。

短所:1.追加設定が必要です。いくつかのケースでは機能しません。セロリのタスクはコンパイルされたモジュールに常駐できません:3.あなたはイントロスペクション能力を失います。 4.トレースバックは基本的に読めません。

関連する問題