import py_compile
if not '.pyc' in __file__:
TheNewPathGoesHear=__file__.replace('file.py', 'file.pyc')
py_compile.compile(__file__, TheNewPathGoesHear)
如果你使用的是linux(或者mac),你可以使用命令行工具chmod来编辑文件的属性,例如,要允许读取和执行www.example.com文件(但不允许写入),请使用以下命令:hello.py file (but not write access), use the following command:
6条答案
按热度按时间hgc7kmma1#
要锁定Python脚本使其无法编辑,请将PY文件编译为PYC文件。这可确保用户无法对脚本中的现有代码进行任何更改。PYC文件本质上是二进制文件,无法直接读取。以下是将PY文件编译为PYC文件的代码:
这段代码将使myscript.pyc.PYC文件运行,即使PY文件不存在。
来源:https://support.esri.com/en/technical-article/000010321
l7wslrjt2#
你不能这么做,如果你给予用户一个密码,不管你怎么隐藏,总有可能被发现。
你可以通过加密和模糊处理让密码更难找到,但这只能阻止不懂技术的用户,而且这些用户可能不会想到去读一堆代码来寻找一个明文密码。
正确的方法是让用户知道他们自己的密码也没问题。让服务器端的位阻止人们做他们不应该做的事情(如果你没有,你需要做一个)。为每个用户使用单独的帐户,这样你就可以在需要的时候单独停用他们。
gjmwrych3#
在代码中包含以下内容:
这个
if
语句确保在编译之前这不是一个pyc
,如果你编译时没有这个if
语句,那么每次你打开pyc
文件时,你都会有一个新的文件。NOTE
:新文件路径的格式中必须有一个“.pyc”,您不能定义新路径,这样会将其发送到主文件夹中的__pycache__
文件夹。daupos2t4#
一种可能性是运行一个守护进程(服务)来保存密码。这将在一个受限用户下运行,该用户已经应用了常规安全性。用户应该不能访问守护进程用户下的任何内容。
用户有一个python程序,它通过IPC机制将登录请求传递给守护进程,您可以使用套接字、命名管道等。守护进程代表用户执行任务并将结果传递回来。
这是否实用取决于用户和服务器之间的通信量。如果这是一个交互式任务,则会有性能问题。
守护进程可能必须是多线程的,具体取决于卷,因此这可能是一项繁重的工作。
类似的可能性是守护进程可以是一个Web服务器(使用Apache),然后用户使用浏览器访问。这可能更容易编程和维护,但如果可行,这取决于您的环境。
a2mppw5e5#
最好的方法是@cdarke提供的方法,但是更快的方法是将.py文件存储在一个隐藏的、受密码保护的文件夹中。
eimct9ow6#
使用chmod
如果你使用的是linux(或者mac),你可以使用命令行工具chmod来编辑文件的属性,例如,要允许读取和执行www.example.com文件(但不允许写入),请使用以下命令:hello.py file (but not write access), use the following command:
这对于共享服务器特别有用,因为您不希望用户意外地覆盖关键文件。
正在反转chmod
如果要使文件再次可编辑,请使用以下命令:
答案取自我的另一个帖子here。那边的帖子更详细,可能更有用!